SpringBoot调用WebService的实践
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.ws.client.core.WebServiceTemplate;
@SpringBootApplication
public class Application {
@Bean
public Jaxb2Marshaller marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
// 设置WebService的包名,应与WSDL生成的包名一致
marshaller.setContextPath("com.example.generated");
return marshaller;
}
@Bean
public WebServiceTemplate webServiceTemplate(Jaxb2Marshaller marshaller) {
WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
webServiceTemplate.setMarshaller(marshaller);
webServiceTemplate.setUnmarshaller(marshaller);
// 设置WebService地址
webServiceTemplate.setDefaultUri("http://localhost:8080/ws");
return webServiceTemplate;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
在这个例子中,我们创建了一个Spring Boot应用程序,并配置了WebServiceTemplate
bean,该bean使用JAXB来序列化和反序列化SOAP消息。我们设置了marshaller的上下文路径,以便它知道从哪个包中查找对应的类。然后,我们设置了WebService的默认URI,这样WebServiceTemplate
就知道要调用哪个服务。这个配置是在Spring Boot应用程序的主类中完成的,是Spring Boot与WebService集成的一个简单示例。
评论已关闭