新手请教:java调用webservice报错

Jack0801 2012-07-13 12:49:53
我用Axis调用webservice ,报出这样一个错误: faultString: 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。
详细错误如下:
Exception in thread "main" AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
faultSubcode:
faultString: 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)


import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class Test5 {
public static void main(String[] args) throws ServiceException, RemoteException{
System.getProperties().setProperty("http.proxyHost", "proxy1.bj.petrochina");
System.getProperties().setProperty("http.proxyPort", "8080");
String endPoint = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";

Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endPoint);
call.setReturnClass(java.lang.String[].class);

call.addParameter("theCityName", org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);

call.setOperationName("getWeatherbyCityName");

call.setUseSOAPAction(true);
call.setSOAPActionURI("http://WebXml.com.cn/getWeatherbyCityName");

String[] results = (String[]) call.invoke(new Object[]{"58367"});
for(String res : results){
System.out.println("result:"+res);
}


}

}
...全文
268 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
乐宠乐 2012-10-24
  • 打赏
  • 举报
回复
try{

String endPoint = "http://202.102.36.242:8080/CSB/services/ImsService";
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endPoint));
call.setOperationName(new
QName("http://com.linkage.ims","GET_IMS_USER_INFO"));
String res = (String)call.invoke(new Object[]{"512","68284124"});
System.out.println("入参:512,68284124, 返回结果:res"+res);
}catch(Exception e){
System.out.println("出错:"+e.toString());
e.printStackTrace();
}

用这个 试试
丫头嗳 2012-10-11
  • 打赏
  • 举报
回复
兄弟,这个问题该怎么解决?
有始有终1 2012-10-11
  • 打赏
  • 举报
回复
call.setTargetEndpointAddress(new java.net.URL("服务地址"));


call.setOperationName(new QName("命名空间","服务名称"));
玉女 2012-10-11
  • 打赏
  • 举报
回复
http://blog.csdn.net/a1000005a/article/details/4770052
一定要设置Action.否则服务器无法处理请求,不知道你引用的是哪个方法,所以报出未将对象引用设置到对象的实例
default_ch 2012-10-11
  • 打赏
  • 举报
回复
同问,怎么解决这一问题?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧