1

我在 JAX-WS Web 服务中遇到了 axis2-client 的问题。此 JAX-WS Web 服务位于 Tomcat 容器内。Keystorefile 是从数据库中动态检索的。当我启动 Tomcat 时,我可以正常使用 ws-client 并且它工作正常,但是如果我更改密钥库,它会失败并显示如下所示的堆栈跟踪。如果我重新启动 Tomcat,它工作正常。壁垒或 tomcat 是否有一些静态变量在 Tomcat 重新启动之前不会刷新?我使用 armart-module 1.3 为安全 Web 服务签署消息。我认为流入和流出配置是正确的,因为我一直在日志中打印它们。

Tomcat Catalina 日志中的 Stacktrace:

 org.apache.axis2.AxisFault: Error during Signature: ; nested exception is:
        org.apache.ws.security.WSSecurityException: General security error (No certificates for user user1 were found for signature)
        at org.apache.rampart.handler.WSDoAllSender.processMessage(WSDoAllSender.java:67)
        at org.apache.rampart.handler.WSDoAllHandler.invoke(WSDoAllHandler.java:72)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
        at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:416)
        at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
        at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
        at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
4

1 回答 1

1

好的,我找到了解决方案。诀窍是使用基于策略的配置。我使用的是旧的 ParameterBased 配置。这是 Thilina 的精彩博客的链接:

如何以编程方式构建壁垒配置..

请记住在学习本教程时定义 policy.xml 文件。这是我第一次忘记做的事情:)

于 2009-12-29T12:30:03.287 回答