异常笔记(2)--object is not an instance of declaring class while invoking public abstract java.lang.Long

    xiaoxiao2021-03-25  60

    在spring结合cxf时,客户端出现如下的异常,浪费了一天多的时间,最终搞定了,太高兴了。嘻嘻……

    crawlerConfigureService:ws.cxf.crawler.configure.ICrawlerConfigureService@6a469846

    crawlerConfigure:JAX-WS RI 2.2.4-b01: Stub for http://localhost:8080/ir23/cxf/crawlerConfigureWebservice Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: object is not an instance of declaring class while invoking public abstract java.lang.Long ws.cxf.crawler.configure.ICrawlerConfigure.getCounts() with params []. at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178) at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:111) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78) at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:135) at com.sun.proxy.$Proxy29.getCounts(Unknown Source) at www.skiff.com.webservice.client.TestClient.main(TestClient.java:31)

    解决方案:主要是服务端配置错误,与客户端无关。

           <!-- author:一叶扁舟  爬虫网址配置的对外接口 -->         <jaxws:server id="crawlerConfigureWebservice" serviceClass="ws.cxf.crawler.configure.ICrawlerConfigure"  address="/crawlerConfigureWebservice"> <jaxws:serviceBean > <ref bean="crawlerConfigureService"/> </jaxws:serviceBean> </jaxws:server>

    我将这个配置<jaxws:serviceBean > <ref bean="crawlerConfigureService"/> </jaxws:serviceBean>理解为实现类中要引入的方法,真实的情况这个要<ref bean=""/>需要写的是对外发布接口ICrawlerConfigure的实现类的bean方法,而在实现类中才写系统中的crawlerConfigureService

    这个方法。因此改为:

         <bean id="crawlerConfigureWS" class="ws.cxf.crawler.configure.impl.CrawlerConfigureImpl">     <property name="crawlerConfigureService" ref="crawlerConfigureService"/>     </bean>       <!-- author:一叶扁舟  爬虫网址配置的对外接口 -->    <jaxws:server id="crawlerConfigureWebservice" serviceClass="ws.cxf.crawler.configure.ICrawlerConfigure"  address="/crawlerConfigureWebservice"> <jaxws:serviceBean > <ref bean="crawlerConfigureWS"/> </jaxws:serviceBean> </jaxws:server>

    所以这个问题处在对webservice在spring中配置的理解上不清楚,之后我会将整个服务端的配置给整理出来。解决了问题,太高兴……

    转载请注明原文地址: https://ju.6miu.com/read-39659.html

    最新回复(0)