我在调用SOAP服务时遇到问题

时间:2019-12-04 13:55:10

标签: java spring soap jaxb wsdl

配置:

@Bean
    public Jaxb2Marshaller marshaller() {
        Jaxb2Marshaller marshaller=new Jaxb2Marshaller();

        String[] packagesToScan = {"com.roytuts.jaxb", };
        marshaller.setPackagesToScan(packagesToScan);
        return marshaller;
    }

服务:

    @PayloadRoot(namespace = NAMESPACE_URI, localPart = "patientDateRequest")
    @ResponsePayload
    public GetMedicationPlanDTOResponse getMedicationPlanDTOResponse(@RequestPayload PatientDateRequest patientDateRequest){
        GetMedicationPlanDTOResponse getMedicationPlanDTOResponse = new GetMedicationPlanDTOResponse();
        List<MedicationPlanDTO> medicationPlanDTOS;

        medicationPlanDTOS = medicationPlanService.readMedicationNotTakeAtTime(patientDateRequest.getPatientId(), xgcToLocalDateTime(patientDateRequest.getDate()));
        for(MedicationPlanDTO medicationPlanDTO: medicationPlanDTOS){
            getMedicationPlanDTOResponse.getResponseMedicationPlanDTO().add(medicationPlanDTOResponseDTO(medicationPlanDTO));
        }

        return getMedicationPlanDTOResponse;
    }

控制器:

 @Autowired
    private Jaxb2Marshaller marshaller;

    private WebServiceTemplate template;

 @GetMapping("/{patientId}")
    public GetActivitiesDTOResponse getPatientActivities(@PathVariable long patientId){
        String uri;
        PatientIdRequest request = new PatientIdRequest();
        GetActivitiesDTOResponse response;
        template = new WebServiceTemplate(marshaller);

        System.out.println("getPatientActivities");

        uri = "http://localhost:8080/ws";
        request.setPatientId(patientId);
        response = (GetActivitiesDTOResponse) template.marshalSendAndReceive(uri, request);

        return response;
    }

2019-12-04 16:03:04.005警告35072 --- [nio-8080-exec-5] o.s.ws.server.EndpointNotFound:未找到[SaajSoapMessage {http://www.florin.com/gen} PatientIdRequest]的端点映射 2019-12-04 16:03:04.023错误35072-[nio-8080-exec-3] oaccC [。[。[/]。[dispatcherServlet]:Servlet [dispatcherServlet]的Servlet.service()路径[]引发异常[请求处理失败;嵌套的异常是org.springframework.ws.client.WebServiceTransportException:[404]],其根本原因是

org.springframework.ws.client.WebServiceTransportException:[404]     在org.springframework.ws.client.core.WebServiceTemplate.handleError(WebServiceTemplate.java:699)〜[spring-ws-core-3.0.7.RELEASE.jar:na]     在org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:609)〜[spring-ws-core-3.0.7.RELEASE.jar:na]     在org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:555)〜[spring-ws-core-3.0.7.RELEASE.jar:na]     在org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:390)〜[spring-ws-core-3.0.7.RELEASE.jar:na]     在org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:378)〜[spring-ws-core-3.0.7.RELEASE.jar:na]     在onlineMedicationPlatform.controller.ActivityController.getPatientActivities(ActivityController.java:38)〜[classes /:na]     在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)〜[na:1.8.0_211]     在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_211]     在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_211]     在java.lang.reflect.Method.invoke(Method.java:498)〜[na:1.8.0_211]     在org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)〜[spring-web-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)〜[spring-web-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)〜[spring-webmvc-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)〜[spring-webmvc-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)〜[spring-webmvc-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)〜[spring-webmvc-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)〜[spring-webmvc-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)〜[spring-webmvc-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)〜[spring-webmvc-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)〜[spring-webmvc-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在javax.servlet.http.HttpServlet.service(HttpServlet.java:634)〜[tomcat-embed-core-9.0.27.jar:9.0.27]     在org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)〜[spring-webmvc-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在javax.servlet.http.HttpServlet.service(HttpServlet.java:741)〜[tomcat-embed-core-9.0.27.jar:9.0.27]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)〜[tomcat-embed-core-9.0.27.jar:9.0.27]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-9.0.27.jar:9.0.27]     在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)〜[tomcat-embed-websocket-9.0.27.jar:9.0.27]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-core-9.0.27.jar:9.0.27]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-9.0.27.jar:9.0.27]     在org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)〜[spring-security-web-5.2.0.RELEASE.jar:5.2.0.RELEASE]     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-core-9.0.27.jar:9.0.27]     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-9.0.27.jar:9.0.27]

0 个答案:

没有答案