背景:生成CXF使用WSDL2Java的Web服務的服務器實現
我以前的經驗對消費的Apache CXF Web服務的工作,但我是一個有點新的生成服務端點接口(SEI)和使用Apache CXF分發版附帶的wsdl2java工具的服務實現。
任務:
我目前的工作將由外部系統消耗的SOAP基於Web的服務的實現。我已經定義了消息(XSD)和WSDL文件。我曾嘗試使用Apache CXF的wsdl2java工具生成SEI。使用JAXB類型作爲輸入參數並將返回類型返回到Web服務方法時,SEI會正確生成。
當我看看爲服務實現類生成的代碼時,我發現它擴展了javax.xml.ws.Service類。此外,還會生成許多重載的方法,它們與方法名稱中附加的「Soap12Http」的服務端點接口中的方法名稱相同。其中一些方法採用類型WebServiceFeature ...特性的參數,而其他方法不採用任何參數。例如:
public class Query extends Service {
@WebEndpoint(name = "product_query-soap12-http")
public IQuery getProductsSoap12Http(WebServiceFeature... features) {
return super.getPort(getProductsSoap12Http, IQuery.class,features);
}
}
*其中IQUERY是服務端點接口
問題:
- 我期待的服務實現類來實現服務端點接口,而不是擴展的javax。 xml.ws.Service。這是一個有效的期望嗎?
- 我在等待服務實現類實現服務端點接口中的方法。這是一個有效的期望嗎?
- 我也想知道是否可以要求wsdl2java命令爲JAXB POJOS生成一個jar,而不是生成它們作爲類文件。
這是否意味着我需要手動編寫自己的名爲Query的類來實現IQuery並定義Web服務方法,或者是否應該將生成的服務實現類直接用作我的Web服務實現? – CKing 2013-03-11 13:20:06