2009-12-02 4 views
1

У меня проблема с сервером axis2 внутри веб-службы JAX-WS. Этот веб-сервис JAX-WS находится внутри контейнера Tomcat. Keystorefile извлекается динамически из базы данных. Когда я запускаю Tomcat, я могу нормально использовать ws-client, и он работает нормально, но если я изменил хранилище ключей, это не с помощью stacktrace, показанного ниже. Если я перезапущу Tomcat, он отлично работает. У rampart или tomcat есть статические переменные, которые не сбрасываются до тех пор, пока Tomcat не будет перезапущен? Я использую rampart-модуль 1.3 для подписывания сообщения для безопасного веб-сервиса. Я думаю, что конфигурации притока и оттока верны, так как я печатал их в журнале.Почему ошибка Tomcat при изменении хранилища ключей?

StackTrace в Tomcat Каталина войти:

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) 

ответ

1

Ok я узнал решение. Хитрость заключалась в использовании конфигурации PolicyBased. Я использовал старую конфигурацию ParameterBased. Вот ссылка на большой блог, Thilina:

How to build rampart-config programmatically..

Не забудьте определить файл policy.xml, когда после этого учебника. Это было то, что я впервые забыл сделать :)