2010-01-22 262 views
5

我正在使用帶有軸的web服務。我從我調用的任何webservice方法中獲取NoEndpointException。Java Axis Webservice存根拋出NoEndPointException

它來自此生成的代碼。

if (super.cachedEndpoint == null) { 
    throw new org.apache.axis.NoEndPointException(); 
} 

所以它似乎暗示我沒有正確設置端點。

這是怎麼了,我實例化存根:

MyService_ServiceLocator myService_ServiceLocator = new MyService_ServiceLocator(); 
MyService_PortType webservice = new MYServiceSOAPStub(myService_ServiceLocator); 

我承擔的東西是不對的。我是否需要傳入網絡服務地址?它似乎已經被集成到存根中。

回答

7

它可能取決於Axis版本(我使用1.4版本),但我建議您使用locator的getYourPortType()方法。您不必提供您的Web服務URL(因爲它存儲在生成的文件中)。

使用您的樣本也會是這樣的:

MyService_ServiceLocator myService_ServiceLocator = new MyService_ServiceLocator(); 
MyService_PortType webservice = myService_ServiceLocator.getMyService_PortType(); 
+1

是有關於如何從WSDL創建Java文件後,訪問任何網絡服務的任何教程。 ? – 2012-12-05 16:55:32