Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

319
Visualizações
Propiedad SOAP WS-Addressing con Wss4jSecurityInterceptor con Java

Hola, creo un código para consumir el servicio SOAP,

Para el encabezado de autenticación, utilicé Wss4jSecurityInterceptor para establecer la información del encabezado.

Recibo una respuesta fallida como la siguiente

 Exception in thread "main" org.springframework.ws.soap.client.SoapFaultClientException: Required element {http://www.w3.org/2005/08/addressing}Action is missing

Mi código de configuración como se muestra a continuación

 @Configuration public class SoapClientConfig { @Bean public Jaxb2Marshaller marshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setContextPath("com.xyz.client"); marshaller.setCheckForXmlRootElement(false); return marshaller; } @Bean public MyClient myClient(Jaxb2Marshaller marshaller) throws Exception { MyClient client = new MyClient(); client.setDefaultUri("https://localhost:8080/ws/service"); client.setMarshaller(marshaller); client.setUnmarshaller(marshaller); ClientInterceptor[] interceptors = new ClientInterceptor[] {securityInterceptor()}; client.setInterceptors(interceptors); return client; } @Bean public Wss4jSecurityInterceptor securityInterceptor() { Wss4jSecurityInterceptor wss4jSecurityInterceptor = new Wss4jSecurityInterceptor(); wss4jSecurityInterceptor.setSecurementActions("UsernameToken"); wss4jSecurityInterceptor.setSecurementMustUnderstand(true); wss4jSecurityInterceptor.setSecurementPasswordType("PasswordText"); wss4jSecurityInterceptor.setSecurementUsername("XXXXXXXXXXX"); wss4jSecurityInterceptor.setSecurementPassword("XXXXXXXX"); return wss4jSecurityInterceptor; } }

¿Alguien puede sugerirme lo que me estoy perdiendo?

Si lo intento desde SOAPUI, funciona bien. Si configuro WS-Addressing=false desde SOAPUI y también me da el mismo error, entonces emita con la propiedad WS-Addressing establecida con el código anterior. ¿Cómo puedo?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

¿Utiliza WebServiceTemplate para enviar la solicitud? Si es así, puedes hacer algo como:

 ActionCallback callback = new ActionCallback( new URI("action uri"));

Aquí debe proporcionar la ubicación de acción de uri real en lugar de "uri de acción". Entonces hazlo

 getWebServiceTemplate().marshalSendAndReceive(request, callback)
about 4 years ago · Santiago Trujillo Relatório

0

Mucho tiempo antes trabajé en llenar el encabezado SOAP con valor dinámico, para eso necesita trabajar en la construcción de los nodos xml usando el objeto de devolución de llamada ... WebServiceMessageCallback

http://docs.spring.io/spring-ws/site/reference/html/client.html#d5e1848

En mi escenario, necesito construir el nodo usando QName (Java) Node by Node.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda