3

我正在使用轴 2 Web 服务客户端。

对 web 服务的第一次 https 调用会引发异常,并显示以下消息:“消息不包含有效的安全元素”。

我认为问题可能出在安全模式上:也许它必须是消息级别的安全性。在这种情况下,如何在轴上配置它?

编码:

System.setProperty("javax.net.ssl.keyStore", jksFile);
System.setProperty("javax.net.ssl.keyStorePassword", jksPassword);

MyServicePortProxy proxy = new MyServicePortProxy();
Stub stub = (Stub) proxy.getMyServicePort();

proxy.setEndpoint(endpoint);
stub.setUsername(username);
stub.setPassword(password);

// throws exception with the above message:
proxy.serviceMethod(...);
4

3 回答 3

1

在您的 XML 服务定义中,您可能需要创建一个服务策略 - [ http://schemas.xmlsoap.org/ws/2004/09/policy/]

看看这些文章:

http://www.javaranch.com/journal/200603/Journal200603.jsp#a2 http://www.javaranch.com/journal/200709/web-services-authentication-axis2.html

于 2008-11-10T15:13:25.183 回答
1

看看http://ws.apache.org/wss4j/package.html我们必须定义一个 client-config.wsdd 告诉轴包括用户名/密码(如果你使用的是 ws-security)。我对不同的标准以及它们之间的区别有点弱。

于 2008-11-10T15:03:35.843 回答
1

注意你的时钟偏差。如果从服务器的角度来看,客户端提供的安全元素中的时间戳离过去或未来太远,它可能会拒绝它并使用此消息。

于 2008-11-11T20:43:08.700 回答