我在 MULE 3.3.0 CE 中通过 https/ssl 使用 .NET Web 服务时遇到了这个问题。我希望有人有一个好主意来解决这个问题。这在 Mule 之外运行良好,使用 CXF 库 (2.5.1) 和相同的 JRE (7) Mule 使用。然后我想 Mule 还使用我安装了信任证书的 jre 密钥库。
我已经用 wsdl2java 生成了代理类。该服务使用 Web 服务安全用户名令牌,配置文件 1.1。服务和服务器不在我的控制范围内(这是一项公共服务)。
我知道我不使用 mule 出站传输连接到服务。我只是想从 java 类内部创建和使用服务。尝试过其他骡子配置,但没有运气。
这是我的骡子配置:
<flow name="flow1" >
<http:inbound-endpoint exchange-pattern="request-response" address="http://localhost:8080/server" doc:name="HTTP endpoint"/>
<jersey:resources doc:name="ServerResources RESTful service">
<component class="my.code.ServerResourceImpl"/>
</jersey:resources>
</flow>
Innside ServerResourceImpl 类我这样做:
service = new xWebService();
port = service.getBasicHttpBindingBalanseWebService();
Map<String, Object> reqContext = ((BindingProvider)port).getRequestContext();
reqContext.put("ws-security.username", "username");
reqContext.put("ws-security.password", "password");
String s = port.test();
我可以成功创建服务,但是我对测试方法的调用失败并出现以下错误:
javax.xml.ws.soap.SOAPFaultException: An error occurred when verifying security for the message
非常感谢任何有用的提示或想法。谢谢