传输错误:401错误:尝试访问安全代理wso2 esb时未经授权

时间:2015-02-02 03:08:45

标签: java ssl wso2esb

我试图通过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服务访问该服务。

1 个答案:

答案 0 :(得分:0)

我能够通过将以下属性设置为true来解决问题。

options.setProperty(Constants.Configuration.ENABLE_REST, Constants.VALUE_TRUE);

但有人可以告诉我为什么在没有启用REST通信的情况下我无法运行客户端