如何解决在 Spring Boot 的 SOAP 客户端的 MarshallerConfig 中添加 2 个端点时没有编组器注册错误
我正在尝试在 Spring Boot 中为 SOAP 客户端的 MarshallerConfig 配置类中添加 2 个端点。
以下是我在我的 MarshallerConfig 和 SOAPConnector 项目中尝试的代码。
MarshallerConfig.java
@Configuration
public class MarshallerConfig {
@Value("${external.endpoint1}")
String url1;
@Value("${external.endpoint2}")
String url2;
@Autowired
WebServiceMessageSenderBasicAuth wsmsba;
@Bean
public Jaxb2Marshaller marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("*.*.soapclient.schemas");
return marshaller;
}
@Bean
public Jaxb2Marshaller url2Marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("*.*.soapclient.url2.schemas");
return marshaller;
}
@Bean
public SOAPConnector soapConnector(Jaxb2Marshaller marshaller) {
SOAPConnector client = new SOAPConnector();
client.setDefaultUri(url1);
client.setMarshaller(marshaller);
client.setUnmarshaller(marshaller);
WebServiceTemplate template = client.getWebServiceTemplate();
template.setMessageSender(wsmsba);
return client;
}
@Bean
public SOAPConnector2 soapConnector2(Jaxb2Marshaller url2Marshaller) {
SOAPConnector2 client = new SOAPConnector2();
client.setDefaultUri(url2);
client.setMarshaller(url2Marshaller);
client.setUnmarshaller(url2Marshaller);
WebServiceTemplate template = client.getWebServiceTemplate();
template.setMessageSender(wsmsba);
return client;
}
}
SOAPConnector.java
@Service
public class SOAPConnector extends WebServiceGatewaySupport {
@Value("${external.endpoint1}")
String url1;
public Object callWebService(Object request) {
return getWebServiceTemplate().marshalSendAndReceive(url1,request);
}
}
SOAPConnector2.java
@Service
public class SOAPConnector2 extends WebServiceGatewaySupport {
@Value("${external.endpoint2}")
String url2;
public Object callWebService(Object request) {
return getWebServiceTemplate().marshalSendAndReceive(url2,request);
}
}
因此在调用端点 2 的soap 操作时出现以下错误。
错误为 java.lang.IllegalStateException: No marshaller registered. Check configuration of WebServiceTemplate.
谁能检查并建议如何在 Spring Boot 的 MarshallerConfig 中为 soap 客户端配置 2 个端点?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。