在 IntelliJ 10.0.3 中
我使用菜单选项“新的 Web 服务”,这会生成一个类文件并添加到 sun-jaxws.xml - 这很好 - 它正在工作。
现在,如果我尝试为此 Web 服务编写 Java 客户端,我会得到 IllegalArgumentException TestWebService 不是接口
这是我的客户代码:
public class WebServiceTest {
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost/services/TestWebService?wsdl");
//1st argument service URI, refer to wsdl document above
//2nd argument is service name, refer to wsdl document above
QName qname = new QName("http://ws.mydomain.com/", "TestWebServiceService");
Service service = Service.create(url, qname);
TestWebService test = service.getPort(TestWebService.class); // fails here
System.out.println(test.sayHelloWorldFrom("TESTING...."));
}
}
我应该如何实施?我应该有一个接口和一个类吗? 有一个很好的例子吗?最佳实践?
这是我在 sun-jaxws.xml 中的端点定义
<endpoint
name='TestWebService'
implementation='com.allscripts.ws.TestWebService'
url-pattern='/services/TestWebService'/>
我搞砸了,因为我试图使用相同的类路径在我的应用程序中使用 Web 服务。 在不同的 java 项目中运行测试效果很好。