我一直在阅读有关使用 Java、Eclipse 等进行 Web 服务编程的内容,并且发现了一个特定的示例,该示例通过执行以下操作创建了 Web 服务和客户端:
- 定义 Web 服务 java 类(接口 + 实现)
- 使用Endpoint.publish部署Web 服务
- 从 Web 服务的 url 中获取wsdl(例如,localhost://greeting?wsdl)
- 使用wsimport生成存根
- 使用生成的存根创建客户端类
是否有另一种方法来生成wsdl而无需发布 Web 服务并下载它?也许是一个自动生成 wsdl 和客户端存根的 maven 插件?
更新:而不是创建一个新问题,我只是要捎带这个问题。
我通过定义一个接口创建了我的 Web 服务:
@WebService
public interface HelloWorldWs {
@WebMethod
public String sayHello(String name);
}
和一个 impl 类:
@WebService(endpointInterface = "com.me.helloworldws.HelloWorldWs")
public class HelloWorldWsImpl implements HelloWorldWs {
@Override
@WebMethod
public String sayHello(String name) {
return "Hello World Ws, " + name;
}
}
当我运行wsgen时,出现以下错误:
The @javax.jws.WebMethod annotation cannot be used in with @javax.jws.WebService.endpointInterface element.
Eclipse 似乎没问题。
知道为什么吗?
请注意,我最初没有注释,但是当我尝试调用我的 web 服务时,出现以下错误:
com.me.helloworldws.HelloWorldWsImpl is not an interface