本人最近遇到一个问题,在JAVA调用WEBSERVICE的时候,报错:Server was unable to process request. ---> Object reference not set to an instance of an object,但是WEBSERVICE端是好的,不知道哪位大侠能指点一下,具体的代码如下
public static void main(String[] args) { try {
System.out.println("====begin====");
String endpoint = "http://ip:port/IctService.asmx?wsdl";//恕不方便透露IP // 直接引用远程的wsdl文件 // 以下都是套路
Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://tempuri.org/", "IfService")); call.addParameter("ifCode",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.addParameter("ifPass",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.addParameter("ifCode",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.addParameter("ifEvent",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.addParameter("info",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/IfService");
String result = (String) call.invoke(new Object[] { null,null,"bbb",null,"aaa" });
// 给方法传递参数,并且调用方法 System.out.println("result is " + result); } catch (Exception e) {
e.printStackTrace();
} }
public static void main(String[] args) { try {
System.out.println("====begin====");
String endpoint = "http://ip:port/IctService.asmx?wsdl";//恕不方便透露IP // 直接引用远程的wsdl文件 // 以下都是套路
Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://tempuri.org/", "IfService")); call.addParameter("ifCode",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.addParameter("ifPass",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.addParameter("ifCode",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.addParameter("ifEvent",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数
call.addParameter("info",
org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);// 接口的参数 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 设置返回类型
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/IfService");
String result = (String) call.invoke(new Object[] { null,null,"bbb",null,"aaa" });
// 给方法传递参数,并且调用方法 System.out.println("result is " + result); } catch (Exception e) {
e.printStackTrace();
} }
解决方案 »
- ajax动态生成table,需要对列排序、可拖动
- 莫名其妙的错,求助!!
- 关于Hibernate查询的问题
- 关于Strust2的路径处理问题
- windows 身份认证 求助安全安全高手!!!
- SourceForge上的插件怎么安装? 我下来来一个ZIP包,解压后是两个目录,features和plugins后面怎么办呢?
- 跪求:网页链接看过的显示灰色问题
- jsp 访问统计问题
- 老题新问:JSP图片上传显示问题?(在线急等)
- Java监听器怎么才能无限触发?
- 急急急!!!在线等,又报There is no Action mapped for namespace / and action name login.
- 一段总是报错的JSP
如果不懂请搜索xfire
暴露像这样@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
@Service("ServiceName")
@WebService(serviceName = "WebServiceName", endpointInterface = "包名)然后web.xml加上spring,xfire配置 <!-- Spring3 Xfire配置 -->
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping> <servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>最后在spring配置文件加上<!-- 支持webService注解 -->
<bean id="webAnnotations"
class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations" />
<bean id="jsr181HandlerMapping" class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping">
<property name="xfire" ref="xfire" />
<property name="webAnnotations" ref="webAnnotations" />
</bean>
感觉这样写webService太轻松了正常的写你的service层需要暴露加上@WebService url给调用方生成调用代码完事