使用注释 @WebService 定义了Java接口 编译好的代码
示例:
@WebService
public interface HelloWorldIfc{
现在我尝试将端点接口定义为
@WebService (endpointInterface = "com.ws.HelloWorldIfc")
public interface HelloWorldIfc{
此编译也很好
那么 - 我应该在界面上定义端点接口还是实现类?
这是任何用途的属性 - 它的目的是什么?
如果我不定义它会发生什么 - 我会失去什么?
谢谢,
萨蒂什南比亚
答案 0 :(得分:20)
The JAX-WS Specification在第30页第3.3节中进行了此清除:
您可以使用endpointInterface
属性在实现类和接口之间进行分隔。基本上,这决定了在部署服务并生成wsdl:portType
时将映射到wsdl:definition
的内容。
如果您不定义endpointInterface
注释类的所有公共方法都将映射到wsdl:operation
(只要您不使用{{{{}}影响此行为1}}注释)。
如果你做定义@WebMethod
,它必须指向带注释的类实现的某种类型(或者,如你的问题所示,它本身)。然后,此类型的公共方法用于映射endpointInterface
,而不是注释类的方法。
总结:如果在实现类上使用wsdl:portType
并希望基于它实现的接口生成WSDL,则endpointInterface
的定义才有意义。在您使用界面@WebService
上的注释的当前设置中,确实没有任何区别。所以你只是跳过它就不会失去任何东西。如果希望实现类提供不应该生成的WSDL的公共方法,那么注释很有用。
答案 1 :(得分:0)
定义endpointInterface非常有用,因为接口方法的@WebParam注释无需在实现类中再次定义它们。