日期:2014-05-20  浏览次数:21169 次

java webservice怎么用soap传递XML对象,求代码!
留下QQ联系方法,帮我看下我的soap怎么报错呢

1.求soap怎么传XML对象

2.下面代码错在哪里,怎么解决?

客户端代码:

public static void main(String[] args) {
try {
URL url=new URL("http://localhost:8888/soap_webservice/services/HelloWorld");
Call call=new Call();
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
Response resp=null;
call.setMethodName("setName");
Vector params=new Vector();
params.addElement(new Parameter("test",String.class,"kevin",null));
call.setParams(params);
resp=call.invoke(url, "");

call.setMethodName("echo");
params.clear();
params.addElement(new Parameter("test",String.class,"kevin echo",null));
call.setParams(params);
resp=call.invoke(url, "");
if(resp!=null&&!resp.generatedFault()){
Parameter ret=resp.getReturnValue();
Object value=ret.getValue();
System.out.println("setName:"+value);
}else{
Fault fault=resp.getFault();
System.err.print("Generated fault echo");
System.out.println("Fault Code="+fault.getFaultCode());
System.out.println("Fault String="+fault.getFaultString());
}
call.setMethodName("sayHello");
call.setParams(null);
resp=null;
resp=call.invoke(url, "");
if(resp!=null&&!resp.generatedFault()){
Parameter ret=resp.getReturnValue();
Object value=ret.getValue();
System.out.println("sayHello:"+value);
}else{
Fault fault=resp.getFault();
System.err.println("Generated fault sayHello:");
System.out.println("Fault Code="+fault.getFaultCode());;
System.out.println("Fault String="+fault.getFaultString());
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SOAPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


异常:

2009-8-7 16:40:41 org.codehaus.xfire.handler.DefaultFaultHandler invoke
信息: Fault occurred!
com.ctc.wstx.exc.WstxParsingException: Non-default namespace can not map to empty URI (as per Namespace 1.0 # 2) in XML 1.0 documents
 at [row,col {unknown-source}]: [4,25]

------解决方案--------------------
webservice不能传对象.只能传xml
------解决方案--------------------
看我的文章吧,保证对你有用。