xfire-all-1.2.6jar<>xfire-core-1.2.6.jar,该怎么处理

xfire-all-1.2.6jar<--->xfire-core-1.2.6.jar
我用xfire调用webservice接口,
        Client client = new Client(new URL(soapUrl));
        Object[] results = client.invoke("queryReport",new Object[]{userName, passWord, queryInfo, "xml"});
如果用xfire-core-1.2.6.jar的话,它就调用不成功,用xfire-all-1.2.6.jar可以搞定,但是问题是项目中另一个方法会抛出这个异常,初始化xfire-all-1.2.6.jar中一些东西不成功,导致,该怎么办,重新打个jar吗,求大神指点
play.exceptions.JavaExecutionException: Could not initialize Service.
        at play.mvc.ActionInvoker.invoke(ActionInvoker.java:237)
        at play.server.ServletWrapper$ServletInvocation.execute(ServletWrapper.java:574)
        at play.Invoker$Invocation.run(Invoker.java:278)
        at play.server.ServletWrapper$ServletInvocation.run(ServletWrapper.java:565)
        at play.Invoker.invokeInThread(Invoker.java:68)
        at play.server.ServletWrapper.service(ServletWrapper.java:143)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.IllegalStateException: Could not initialize Service.
        at org.codehaus.xfire.jaxws.ServiceDelegate.<init>(ServiceDelegate.java:77)
        at org.codehaus.xfire.jaxws.Provider.createServiceDelegate(Provider.java:32)
        at javax.xml.ws.Service.<init>(Service.java:77)
        at com.shove.gateway.sms.eims.SmsGateway.<init>(SmsGateway.java:50)
        at com.shove.gateway.sms.EimsSMS.send(EimsSMS.java:42)
        at utils.SMSUtil.sendCode(SMSUtil.java:68)
        at controllers.front.account.LoginAndRegisterAction.verifyMobile(LoginAndRegisterAction.java:934)
        at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:557)
        at play.mvc.ActionInvoker.invoke(ActionInvoker.java:508)
        at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:484)
        at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:479)
        at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)
        ... 18 more
Caused by: java.lang.NoSuchMethodException: com.shove.gateway.sms.eims.SmsGateway.getPortClassMap()
        at java.lang.Class.getMethod(Class.java:1665)
        at org.codehaus.xfire.jaxws.ServiceDelegate.<init>(ServiceDelegate.java:60)
        ... 29 more
------解决思路----------------------
Caused by: java.lang.NoSuchMethodException: com.shove.gateway.sms.eims.SmsGateway.getPortClassMap()
这个方法在两个jar中比对下,看是否all 和 core 包中这个方法的传参有差异,替换jar后导致系统启动时找不到方法了
如果jar中耦合低的话,可以尝试将两个class替换下,或者将all 中的这个class反编译一下,将参数略作修改再替换进去
或者 修改下本地的调用getPortClassMap 方法的代码,修改下相应的传参
------解决思路----------------------
不建议直接改jar包,xfire用xfire-core.jar没有问题,你报的什么错。
------解决思路----------------------
看上去是版本冲突了
------解决思路----------------------
引用:
这个文件给删掉可以吗,反正没多大的用,jar中删除class和替换class有简单的方法吗,难道非要反编译之后修改后再打jar包吗

如果没有大的问题,可以直接将class文件替换
具体还是要看你的问题,你的jar包中配套的其他class文件的引用问题
可以直接反编译修改,也可以直接替换class文件
------解决思路----------------------
“如果用xfire-core-1.2.6.jar的话,它就调用不成功,用xfire-all-1.2.6.jar可以搞定,但是问题是项目中另一个方法会抛出这个异常,初始化xfire-all-1.2.6.jar中一些东西不成功”
---你原来项目用的xfire版本跟现在你开发的代码用的版本不一致? 要么改用原来的xfire-core-1.2.6.jar支持的调webservice的客户端方法,要么直接把原来的代码改成新的xfire-all-1.2.6.jar兼容的,没必要改xfire的开源包,动作太大
java里面jar包就是个压缩文件,你改了jar里面的内容再jar -cvf ./* 打包即可
------解决思路----------------------
引用:
Quote: 引用:

不建议直接改jar包,xfire用xfire-core.jar没有问题,你报的什么错。
用xfire-core.jar时请求发不出去,后台日志不报错。


一直等着,默认600秒超时,看看超时时候的报错。