我一直在阅读有关使用Java,Eclipse等的Web服务编程的一些内容。我找到了一个特定的例子,其中该人通过执行以下操作来创建Web服务和客户端:
是否有其他方法可以生成 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似乎没问题。
知道为什么吗?
注意,我最初没有注释但是当我尝试调用我的webservice时出现以下错误:
com.me.helloworldws.HelloWorldWsImpl is not an interface
答案 0 :(得分:1)
JSR 224在3.1节中说:
SEI是一个符合以下所有条件的Java界面:
- 它的任何方法都可以带有
javax.jws.WebMethod
注释(见7.11.2)。javax.jws.WebMethod
如果使用,则不得将exclude
元素设置为true
。
如果实现类包含javax.jws.WebMethod
,那么根据规范,您无法放置@WebMethod(exclude=true)
,而这是不可能的。
取决于Eclipse的自定义版本,显示此警告。例如Rational Application Developer for Websphere显示:
JSR-181, 3.1: WebMethod cannot be used with the endpointInterface
property of WebService
答案 1 :(得分:0)
在编程/构建项目(使用一些高级IDE)时,通常您应该能够在自动生成的东西之间找到它 - IDE应该生成它。请仔细检查。