服务器
依赖jar包
<!-- webservice cxf -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
spring-cxf.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<jaxws:endpoint address="/demoService" implementor="com.idp.web.webservice.DemoServiceImpl"></jaxws:endpoint>
</beans>
web.xml
<servlet>
<servlet-name>CXFService</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFService</servlet-name>
<url-pattern>/webService/*</url-pattern>
</servlet-mapping>
接口写法
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface DemoService {
@WebMethod
public String demo(@WebParam(name="param") String param);
}
实现类写法:
import javax.jws.WebService;
@WebService(endpointInterface="com.idp.web.webservice.DemoService")
public class DemoServiceImpl implements DemoService {
@Override
public String demo(String param) {
return param;
}
}
客户端
依赖jar包
cxf-core-3.1.12.jar
cxf-rt-bindings-soap-3.1.12.jar
cxf-rt-databinding-jaxb-3.1.12.jar
cxf-rt-frontend-jaxws-3.1.12.jar
cxf-rt-frontend-simple-3.1.12.jar
cxf-rt-transports-http-3.1.12.jar
cxf-rt-transports-udp-3.1.12.jar
cxf-rt-ws-addr-3.1.12.jar
cxf-rt-wsdl-3.1.12.jar
neethi-3.0.3.jar
slf4j-api-1.7.24.jar
stax2-api-3.1.4.jar
woodstox-core-asl-4.4.1.jar
wsdl4j-1.6.3.jar
xmlschema-core-2.2.2.jar
访问接口写法
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
public class WebServiceClient {
public static void main(String[] args) throws Exception {
JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
Client client = factory.createClient("http://localhost:8082/jeeidp/webService/demoService?wsdl");
Object[] params = {"aaaaaaaaaaaa"};
Object[] results = client.invoke("demo", params);
System.out.println(results[0]);
}
}