日期:2014-05-17  浏览次数:21554 次

Java使用XFire调用WebService接口(菜鸟就别进来了……)
public class TestWebService {

public static void main(String[] args) {

String endpoint = "http://localhost:8080/BTVMonitorSystem/webservice/IBtvMonitor?wsdl";
Service service = new Service();
Client client=null;
String strxmlString="<RecordSet><channel><id>60</id><channelName>tt</channelName><state>1</state></channel></RecordSet>";
try {
client = new Client(new URL(endpoint));
Object[] result= client.invoke("saveChannel", new Object[] {strxmlString});
if (result!=null) {
System.out.println(result[0]+"=================");
}else {
}
} catch (Exception e) {
e.printStackTrace();
}

}

}
目的是调用远程的接口,现在是在本地做试验。所以就这样写了。就是想在一个普通类里调用另一个工程里的一个接口。可是执行的时候却报出异常如下:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.ws.commons.schema.XmlSchemaComplexType.getAttributes()Lorg/apache/ws/commons/schema/XmlSchemaObjectCollection;
at org.codehaus.xfire.wsdl11.parser.WSDLServiceBuilder.hasAttributes(WSDLServiceBuilder.java:662)
at org.codehaus.xfire.wsdl11.parser.WSDLServiceBuilder.isWrapped(WSDLServiceBuilder.java:582)
at org.codehaus.xfire.wsdl11.parser.WSDLServiceBuilder.visit(WSDLServiceBuilder.java:392)
at org.codehaus.xfire.wsdl11.parser.WSDLServiceBuilder.build(WSDLServiceBuilder.java:195)
at org.codehaus.xfire.client.Client.initFromDefinition(Client.java:264)
at org.codehaus.xfire.client.Client.<init>(Client.java:236)
at org.codehaus.xfire.client.Client.<init>(Client.java:246)
at com.jetsen.TestWebService.main(TestWebService.java:17)
webservice java xfire

------解决方案--------------------
XmlSchema.jar,换个最新的jar包试试
------解决方案--------------------
看下包是否冲突了