Создать SOAP клиент с помощью Spring Boot - PullRequest
0 голосов
/ 12 апреля 2020

Мне нужно написать клиент для вызова службы SOAP с использованием весенней загрузки. Я попробовал около 6-7 учебных пособий по net, включая https://spring.io/guides/gs/consuming-web-service/ и многие другие. В общем, я получаю общую ошибку:

java.lang.IllegalStateException: No marshaller registered. Check configuration of WebServiceTemplate.

Служба SOAP развернута на http://server.test.net:1234/SOAPTest/WebService/DeployedSvc

Мое текущее состояние кода после следующих многочисленных онлайн-ссылок:

My SOAPConfig ниже:

@Configuration
public class SOAPConfig {

    @Bean
    public Jaxb2Marshaller marshaller() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        marshaller.setContextPath("com.test.soap.wsdl");
        return marshaller;
    }

    @Bean
    public SOAPClient soapConnector(Jaxb2Marshaller marshaller) {
        SOAPClient client = new SOAPClient();
        client.setDefaultUri("http://server.test.net:1234/SOAPTest/WebService/DeployedSvc");
        client.setMarshaller(marshaller);
        client.setUnmarshaller(marshaller);
        return client;
    }

}

Пакет com.test.soap.wsdl содержит ObjectFactory, который я сгенерировал, используя:

<artifactId>maven-jaxb2-plugin</artifactId><version>0.13.2</version>

My SOAPClient ниже:

import javax.xml.bind.JAXBElement;
import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
import com.test.soap.wsdl.InfoResponse;

public class SOAPClient extends WebServiceGatewaySupport {

    public InfoResponse getInfo(String url, Object request){
        JAXBElement res = (JAXBElement) getWebServiceTemplate().marshalSendAndReceive(url, request);
        return (InfoResponse) res.getValue();
    }
}

Когда я запускаю отладчик, значение marshaller, возвращаемое SOAPConfig, полностью заполнено нулевыми значениями, то есть adapters=null, beanClassLoader=null, jaxbContext=null, marshallerListener=null, unmarshallerListerner=null и так далее.

Что я упускаю из этих многочисленных ссылок и делаю неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...