2010-01-22 265 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