我正在使用Spring WebServiceTemplate使用Soap WebService &下面是Bean创建和Bean类,但不知道为什么我无法获得默认URI的值。有人能帮助解决这个问题吗?
ServiceContext.java
@Bean
public Jaxb2Marshaller marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("com.canaldigital.tsi.schema.psd.psd_managecustomer.v2");
return marshaller;
}
@Bean
public SaajSoapMessageFactory messageFactory() {
SaajSoapMessageFactory factory=new SaajSoapMessageFactory();
factory.setSoapVersion(SoapVersion.SOAP_12);
return factory;
}
@Bean
public ManageService voucherService(Jaxb2Marshaller marshaller,SaajSoapMessageFactory messageFactory) {
ManageService service = new ManageService();
service.setDefaultUri("http://localhost:7001/CustomerService?WSDL");
service.setMarshaller(marshaller);
service.setUnmarshaller(marshaller);
service.setMessageFactory(messageFactory);
return service;
}
ManageService.java
public class ManageService extends WebServiceGatewaySupport {
try{
System.out.println("Finalyy calllingggg service: "+getWebServiceTemplate());
System.out.println("WebService template URI is: ---- "+getWebServiceTemplate().getDefaultUri());
JAXBElement<GetCustomerInfoRequestType> mustangRequst=new createGetCustomerInfoRequest(customer);
(JAXBElement<GetCustomerInfoResponseType>) getWebServiceTemplate().marshalSendAndReceive(mustangRequst);
}catch(Exception e){
e.printStackTrace();
}
}
2条答案
按热度按时间nwwlzxa71#
当您调用扩展WebServiceGatewaySupport的客户端时,应该使用@Autowired
8oomwypt2#
检查服务上是否没有@Service注解。