使用注释定义了 Java 接口@网络服务编译了代码,一切顺利
Example:
@WebService
public interface HelloWorldIfc{
现在我尝试将端点接口定义为
@WebService (endpointInterface = "com.ws.HelloWorldIfc")
public interface HelloWorldIfc{
这也编译得很好
那么 - 我应该在接口上还是在实现类上定义端点接口?
这个属性有什么用处吗?它的目的是什么?
如果我不定义它会发生什么 - 我会失去什么?
Thanks,
satish
JAX-WS 规范 http://jcp.org/aboutJava/communityprocess/final/jsr224/index.html在第 30 页第 3.3 节中对此进行了澄清:
您可以使用endpointInterface
属性来区分实现类和接口。基本上,这决定了将映射到您的内容wsdl:portType
当您部署服务和wsdl:definition
被生成。
If you do not定义endpointInterface
带注释的类的所有公共方法都将映射到wsdl:operation
(只要你不影响这种行为@WebMethod
注释)。
If you do定义endpointInterface
,它必须指向带注释的类实现的某种类型(或者,正如您的问题中所演示的那样,它本身)。然后,该类型的公共方法用于映射wsdl:portType
,而不是带注释的类的方法。
总结一下: 的定义endpointInterface
仅当您使用时才有意义@WebService
位于实现类上,并希望根据它实现的接口生成 WSDL。在您当前的设置中,您在界面上使用注释com.ws.HelloWorldIfc
,确实没有什么区别。因此,跳过它不会造成任何损失。如果您希望实现类提供不应进入生成的 WSDL 的公共方法,则该注释非常有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)