好吧,我有我通過axis2java創建存根使用以下命令web方法WSDL:無法得到標準的SSL客戶端與Axis Web服務工作
wsdl2java -uri https://path/to/service?wsdl -p com.my.java.package
它生成所有必需的存根,但我實際上很難使用它們。我有兩個網址都是HTTPS,但是其中一個網址使用了壘手信息加密。我已經能夠得到更加困難的消息加密的URL工作正常。
我初始化我的加密存根象如下:
ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem("repository", null);
NetWS_0Stub stub = new NetWS_0Stub(ctx, aEndPoint);
ServiceClient client = stub._getServiceClient();
Options options = new Options();
options.setTo(new EndpointReference(aEndPoint));
options.setProperty(RampartMessageData.KEY_RAMPART_POLICY, this.loadPolicy("repository/policy/HTTPS_Policy.xml"));
client.setOptions(options);
client.engageModule("rampart");
return stub;
對於我的未加密(HTTPS ONLY)我已經嘗試的存根初始化以及以下的上述方法:
ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem("repository", null);
NetWS_0Stub stub = new NetWS_0Stub(ctx, aEndPoint);
ServiceClient client = stub._getServiceClient();
Options options = new Options();
options.setTo(new EndpointReference(aEndPoint));
client.setOptions(options);
普通的HTTPS存根無效。充其量我得到一個肥皂頭丟失異常。但是,我可以通過SOAPui使用這些Web方法。所以我知道URL/WSDL/web方法運行良好。我更熟悉wsimport而不是axis2 .... axis2似乎更難做到這麼簡單的事情。
我該如何設置調用非消息加密Web服務的存根?爲什麼axis2這麼痛苦呢?這只是一個問題,我沒有理解的東西。如果SOAPui可以立即生成Web請求/響應,那麼我覺得axis2工具應該能夠做到這一點,特別是因爲web方法是通過glassfish中的axis2創建和訪問的。我沒有設置任何密鑰庫/信任庫的SOAPui,它只是在我給它使用wsdl時才起作用。
如果有人需要特定的代碼示例,讓我知道我不確定什麼信息甚至可以幫助別人幫我。