У меня проблема с axis2-client внутри веб-службы JAX-WS. Этот веб-сервис JAX-WS находится внутри контейнера Tomcat. Keystorefile извлекается динамически из базы данных. Когда я запускаю Tomcat, я могу нормально использовать ws-client, и он работает нормально, но если я изменю хранилище ключей, то произойдет сбой с помощью трассировки стека, показанной ниже. Если я перезагружаю Tomcat, он работает нормально. Есть ли в rampart или tomcat статические переменные, которые не сбрасываются до перезапуска Tomcat? Я использую rampart-module 1.3, чтобы подписать сообщение для безопасного веб-сервиса. Я думаю, что конфигурации притока и оттока правильны, так как я печатал их в журнале.
Stacktrace в Tomcat Catalina log:
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)