我试图通过wso2 esb使用代理服务来保护Web服务(不安全)。
OrderServiceStub stub = new OrderServiceStub("https://localhost:8243/services/OPSecureService");
System.setProperty("javax.net.ssl.trustStore", "resources/wso2carbon.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "wso2carbon");
HttpTransportProperties.Authenticator authenticator = new HttpTransportProperties.Authenticator();
authenticator.setUsername(username);
authenticator.setPassword(password);
Options options = stub._getServiceClient().getOptions();
options.setProperty(HTTPConstants.AUTHENTICATE, authenticator);
System.out.println(stub.getCatlog(new GetCatlog()));
但我得到了
org.apache.axis2.AxisFault: Transport error: 401 Error: Unauthorized
在ESB日志中,它说
Caused by: org.apache.axiom.soap.SOAPProcessingException: SOAP Envelope can not have children other than SOAP Header and Body
我可以使用用户名和密码通过esb管理控制台中的tryit服务访问该服务。
答案 0 :(得分:0)
我能够通过将以下属性设置为true来解决问题。
options.setProperty(Constants.Configuration.ENABLE_REST, Constants.VALUE_TRUE);
但有人可以告诉我为什么在没有启用REST通信的情况下我无法运行客户端