Wenn ich versuche, meine soap
Client-Anwendung, die App gibt diese Fehlermeldung auszuführen:Nr WS-Security-Header Frühjahr Boot und Frühling mit Sicherheit
Exception in thread "main" org.springframework.ws.soap.client.SoapFaultClientException: No WS-Security header found
at org.springframework.ws.soap.client.core.SoapFaultMessageResolver.resolveFault(SoapFaultMessageResolver.java:38)
at org.springframework.ws.client.core.WebServiceTemplate.handleFault(WebServiceTemplate.java:830)
at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:624)
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:555)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:390)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:383)
at com.mike.serverManagementSoap.StudentClient.getStudentById(StudentClient.java:14)
at com.mike.serverManagementSoap.RunSoapClient.main(RunSoapClient.java:14)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Dies ist der Hauptcode meines App:
@Configuration
public class ClientAppConfig {
@Bean
public Wss4jSecurityInterceptor securityInterceptor(){
Wss4jSecurityInterceptor wss4jSecurityInterceptor = new Wss4jSecurityInterceptor();
wss4jSecurityInterceptor.setSecurementActions("Timestamp UsernameToken");
wss4jSecurityInterceptor.setSecurementUsername("admin");
wss4jSecurityInterceptor.setSecurementPassword("secret");
return wss4jSecurityInterceptor;
}
@Bean
public Jaxb2Marshaller marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("com.mike.serverManagementSoap.wsdl");
return marshaller;
}
@Bean
public StudentClient studentClient(Jaxb2Marshaller marshaller) {
StudentClient client = new StudentClient();
client.setDefaultUri("http://localhost:8080/ServerManagementSoapProducer-1.0-SNAPSHOT/soapws/students.wsdl");
client.setMarshaller(marshaller);
client.setUnmarshaller(marshaller);
return client;
}
}
public class RunSoapClient {
public static void main(String[] args) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.register(ClientAppConfig.class);
ctx.refresh();
StudentClient studentClient = ctx.getBean(StudentClient.class);
System.out.println("For Student Id: 1");
GetStudentResponse response = studentClient.getStudentById(1);
System.out.println("Name:"+response.getStudent().getName());
System.out.println("Age:"+response.getStudent().getAge());
System.out.println("Class:"+response.getStudent().getClazz());
}
}
public class StudentClient extends WebServiceGatewaySupport {
public GetStudentResponse getStudentById(int studentId) {
GetStudentRequest request = new GetStudentRequest();
request.setStudentId(studentId);
GetStudentResponse response = (GetStudentResponse) getWebServiceTemplate().marshalSendAndReceive(
request, new SoapActionCallback("http://localhost:8080/ServerManagementSoapProducer-1.0-SNAPSHOT/soapws/students.wsdl"));
return response;
}
}
Wenn diese Abfrage gelöst ist, fügen Sie bitte eine Antwort unten hinzu. In der Zwischenzeit bitten Sie bitte nicht um die Dringlichkeit von Freiwilligen hier - sie werden zu Fragen kommen, die ihnen gefällt, in ihrer eigenen guten Zeit. – halfer