Hi utworzyć kod zużywają usługi SOAP,SOAP WS-Addressing nieruchomość Wss4jSecurityInterceptor z Java
Dla Authentication Header użyłem Wss4jSecurityInterceptor zestaw do informacji nagłówka.
Dostaję odpowiedź nie jak poniżej
Exception in thread "main" org.springframework.ws.soap.client.SoapFaultClientException: Required element {http://www.w3.org/2005/08/addressing}Action is missing
Mój kod konfiguracji jak poniżej
@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;
}
}
Czy ktoś może zasugerować mi, co mi brakuje?
Jeśli spróbuję od SOAPUI, działa dobrze. Jeśli ustawię WS-Addressing = false z SOAPUI, podając ten sam błąd, So Issue z ustawioną właściwością WS-Addressing z powyższym kodem. Jak mogę?
Mam rozwiązanie powyższego problemu tutaj ... https://stackoverflow.com/questions/43974784/remote-soap-web-service-keeps-breaking-connection/44154445#44154445 –