Pergunta

Eu tenho um problema com eixo2-cliente dentro de serviço Web JAX-WS. Este serviço da Web JAX-WS está dentro de contêiner Tomcat. KeyStoreFile é recuperado dinamicamente a partir de banco de dados. Quando eu começar Tomcat posso usar ws-cliente normalmente e ele funciona muito bem, mas se eu mudar o keystore ele falha com stacktrace mostrado abaixo. Se eu reiniciar o Tomcat ele funciona bem. Será muralha ou tomcat têm algumas variáveis ??estáticas que não são liberadas até Tomcat é reiniciado? Eu uso muralha-módulo 1.3 a assinar mensagem para um serviço web seguro. Acho entrada e saída configurações estão corretas desde que eu tenha sido imprimi-los no log.

O Stacktrace no log Catalina 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)
Foi útil?

Solução

Ok eu descobri a solução. O truque era usar a configuração PolicyBased. Eu estava usando a configuração ParameterBased idade. Aqui está um link para grande blog por Thilina:

como construir muralha-config programaticamente ..

Lembre-se de definir arquivo policy.xml ao seguir este tutorial. Isso era algo que eu primeira esqueceu de fazer:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top