[英]Multiple @WebService annotations in JAX-WS / CXF
我正在嘗試在JAX-WS中實現次要版本,如下所示:
@WebService(targetNamespace="http://mycompany.com/api/Service/v1_0")
public interface ServiceRev0 {
public void initialMethod();
}
@WebService(targetNamespace="http://mycompany.com/api/Service/v1_1")
public interface ServiceRev1 {
public void newMethod();
}
public class Service implements ServiceRev0, ServiceRev1 {
...
}
Endpoint.publish("api", new Service());
不幸的是,CXF似乎只能“看到”第一個接口及其相關方法。 是否可以做我想做的事情,還是應該采取另一種方法?
邏輯上似乎是錯誤的,如果在類上添加@WebService批注,則表示它是Web服務實現;如果在接口上,則表示定義Web Service接口。
您的上述定義導致其中具有不同操作的兩個不同的WSDL,最好定義兩個不同的Webservice接口並提供適當的實現。
我在使用cxf 3時遇到了相同的問題。
解決方案/解決方法是創建第三個接口,以擴展需要公開的接口 。
@WebService(targetNamespace="http://mycompany.com/api/Service/v2")
public interface ServiceRev extends ServiceRev1, ServiceRev2
{
}
暴露:
public class ServiceRevImpl implements ServiceRev
{
....
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.