0
我使用CXF
自動生成soap webservice類。結果將包含在WSDL/XSD
文件中找到的硬編碼URL。爲CXF自動生成的webservice動態提供WebMethod操作?
@WebService(...)
@XmlSeeAlso(...)
@SOAPBinding(...)
public interface AutoGeneratedPortType {
@WebResult(...)
@WebMethod(action = "http://localhost:8080/TheService") //that's the problem
public MyRsp service(
@WebParam(...)
MyReq parameters
) throws FaultMessage;
}
因此,我首先要經過所有WSDL
文件,並與生產URL
更換localhosts(工作正常用記事本++過的所有文件,但仍有許多工作要做)。 問題:每次獲取WSDL的API提供更新的文件時,我都必須重複這些步驟。
我寧願以某種方式「覆蓋」將WebMethod動作參數調用服務方法時:
AutoGeneratedPortType port = new MyService().geAutoGeneratedPort();
port.service(req);
但是,這可能嗎?我可以動態提供生成的@WebMethod
網址嗎?
如果您正在使用CXF maven的代碼生成插件'CXF-CODEGEN-plugin'您可以通過下面的配置'指定WSDL位置 classpath:wsdl/kp.wsdl wsdlLocation>'在這裏我爲wsdlLocations配置類路徑。這可能有點不相關,但你可以嘗試這樣的事情。但我還沒有看到按照你的方式配置動作。 –
我使用maven配置wsdl位置。請注意,我要求指定enpoint,因爲我提供的所有wsdl都包含localhost作爲URL! – membersound