org.apache.axis2.AxisFault: Service class XXXXX must have public as access Modifier解決方案

使用Axis2工具生成客戶端調用輔助類後,編寫客戶端調用代碼運行時報錯,完整錯誤信息如下:

log4j:WARN No appenders could be found for logger (org.apache.axiom.locator.DefaultOMMetaFactoryLocator).
log4j:WARN Please initialize the log4j system properly.
org.apache.axis2.AxisFault: Service class com.csdn.ws.axis2.recipe01.HelloWorld must have public as access Modifier
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:508)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:368)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:414)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:150)
    at com.csdn.ws.axis2.recipe01.HelloWorldStub.sayHello(HelloWorldStub.java:162)
    at com.csdn.ws.axis2.recipe01.client.Client.main(Client.java:15)

乍一看錯誤信息好像是說web服務接口和實現類必須定義爲public,檢查代碼發現就是public,真正的原因是在services.xml中描述WebService時

<parameter name="ServiceClass">
        com.csdn.ws.axis2.recipe01.HelloWorldImpl
</parameter>

ServiceClass屬性應該指定Web服務實現類,而不是接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章