我在JAX- web服务中的axis2-client有一个问题。此JAX- web服务位于Tomcat容器中。Keystorefile是从数据库中动态检索的。当我启动Tomcat时,我可以正常使用ws-client,它工作得很好,但如果我更改密钥库,它将失败,并显示如下所示的堆栈跟踪。如果我重新启动Tomcat,它可以正常工作。rampart或tomcat是否有一些在Tomcat重启之前不会刷新的静态变量?我使用rampart-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)发布于 2009-12-29 20:30:03
好了,我找到了解决方案。诀窍是使用PolicyBased配置。我使用的是旧的ParameterBased配置。下面是Thilina写的博客的链接:
How to build rampart-config programmatically..
在学习本教程时,请记住定义policy.xml文件。这是我第一次忘记做的事情:)
https://stackoverflow.com/questions/1831619
复制相似问题