使用cxf生成webservice客户端调用异常解决

 

在cmd下执行命令,生成客户端
apache-cxf-2.2.12\bin>wsdl2java.bat -client http://172.17.252.63:6868/GlfilCurrentTaskQueryService?WSDL

 

异常一:在eclipse的工程显示以下异常

The method getPort(QName, Class) in the type Service is not applicable for the arguments (QName, Class, WebServiceFeature[])

解决方法:将导入的jar包重新加载

工程名右击-->Properties-->Java Build Path-->Libraries选项卡-->移除所有.jar包(jre system library[jre6]除外)-->点击OK
工程重新编译完之后,重新按刚在的做法将移除的.jar包加入!
问题解决!

 

异常二:调用webserice出现异常

java.lang.IllegalStateException: Could not initialize Service.
        at org.codehaus.xfire.jaxws.ServiceDelegate.(ServiceDelegate.java:77)
        at org.codehaus.xfire.jaxws.Provider.createServiceDelegate(Provider.java:32)
        at javax.xml.ws.Service.(Service.java:56)
        at com.cup.glfil.portal.servlet.GlfilCurrentTaskQueryService.(GlfilCurrentTaskQueryService.java:48)
        at com.cup.glfil.portal.servlet.GlfilCurrentTaskQueryClient.query(GlfilCurrentTaskQueryClient.java:46)
        at com.ulane.ulink.unionPay.twicesys.filrevfwd.action.QueryFileReceiveFowardAction.doSend(QueryFileReceiveFowardAction.java:90)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
       
Caused by: java.lang.NoSuchMethodException: com.cup.glfil.portal.servlet.GlfilCurrentTaskQueryService.getPortClassMap()
        at java.lang.Class.getMethod(Class.java:1605)
        at org.codehaus.xfire.jaxws.ServiceDelegate.(ServiceDelegate.java:60)
        ... 71 more   

解决方法:这个应该是由于jar包重突产生的

将xfire-jaxws-1.2.6.jar从工程中移出,重新部署至tomcat,注意部署完之后需要检查tomcat下工程中jar包是否为移除,如果没有则手动删除。

你可能感兴趣的:(java,webservice,cxf)