我有很多端点都带有@WebService(targetNamespace = "mynamespace")
注释。每个@WebResult
和@WebParam
都具有targetNamespace = "mynamespace"
相同的定义。
有没有一种方法可以将JAX-WS(地铁实现)配置为默认使用"mynamespace"
作为targetNamespace?
我想使用没有任何属性的注释,并摆脱重复的声明,就像约定优于配置一样。
最佳答案
只将targetNamespace
放在服务端点接口(interface)或服务实现中
bean 。
/**
* Annotated Implementation Object
*/
@WebService(
name = "CustomerService",
targetNamespace = "http://org.company.services"
)
public class CustomerService {
@WebMethod
@WebResult(name="CustomerRecord")
public CustomerRecord locateCustomer(
@WebParam(name="FirstName") String firstName,
@WebParam(name="LastName") String lastName,
@WebParam(name="Address") USAddress addr) {
...
}
};
如果
@WebResult
或@WebParam
没有targetNamespace
,则默认值为的
targetNamespace
Web服务。另一方面,您可以避免所有注释,仅在不需要使用JAX-B进行自定义的情况下才使用
@WebService
。在JSR-181 Web Services Metadata for the JavaTM Platform中查看更多