maven是这样的
<dependencies>
.....
.....
.....
<!-- web service 相关 -->
<dependency>
<groupId></groupId>
<artifactId>spring-ws-security</artifactId>
<version>3.0.</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>spring-ws-core</artifactId>
<version>3.0.</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>spring-ws-support</artifactId>
<version>3.0.</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId></groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.14.0</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaLanguage>WSDL</schemaLanguage>
<generatePackage></generatePackage>
<schemas>
<schema>
<url>file:///D:/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/</url>
</schema>
</schemas>
</configuration>
</plugin>
</plugins>
</build>
相关调用代码是这样的:
public class CountryClient extends WebServiceGatewaySupport {
private static final Logger log = ();
public GetCountryResponse getCountry(String country) {
GetCountryRequest request = new GetCountryRequest();
(country);
("Requesting location for " + country);
GetCountryResponse response = (GetCountryResponse) getWebServiceTemplate()
.marshalSendAndReceive("http://localhost:8080/ws/countries", request,
new SoapActionCallback(
"/guides/gs-producing-web-service/GetCountryRequest"));
return response;
}
}
改成这样即可:
public class CountryClient extends WebServiceGatewaySupport {
private static final Logger log = ();
public GetCountryResponse getCountry(String country) {
GetCountryRequest request = new GetCountryRequest();
(country);
("Requesting location for " + country);
JAXBElement<GetFileRequestResponse> response = (JAXBElement<GetFileRequestResponse>) getWebServiceTemplate()
.marshalSendAndReceive("http://localhost:8080/ws/countries", request,
new SoapActionCallback(
"/guides/gs-producing-web-service/GetCountryRequest"));
return ();
}
}