项目说明
MAVEN集成
maven集成cxf的jar包,我的项目用的spring4.x版本,所以找的cxf版本为3.1.8
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.8</version>
</dependency>
<!--web service 以下都是cxf必备的 -->
<!--org.apache.cxf.transport.servlet.CXFServlet -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.8</version>
</dependency>
<!--不加这个包会报错Unable to locate spring NamespaceHandler for XML schema namespace
[http://cxf.apache.org/jaxws] -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.8</version>
</dependency>
<!--java实现webservice,不部署到tomcat,需要jetty包支持 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.1.8</version>
</dependency>
服务端配置
配置spring-webservice.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://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd\"
default-lazy-init=\"true\">
<bean id=\"webserviceServer\" class=\"cn.com.jd.credit.pbccr.service.impl.OrderWebServiceImpl\" />
<jaxws:endpoint id=\"myService\" implementor=\"#webserviceServer\"
address=\"/web-publish\">
</jaxws:endpoint>
</beans>
配置web.xml
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/server/*</url-pattern>
</servlet-mapping>
服务端测试代码
- OrderWebServiceImpl类
//实现类
import javax.jws.WebService;
import cn.com.jd.credit.pbccr.service.OrderWebService;
@WebService(endpointInterface = \"cn.com.jd.credit.pbccr.service.OrderWebService\", serviceName = \"OrderWebService\")
public class OrderWebServiceImpl implements OrderWebService {
@Override
public int add(int a, int b) {
System.out.println(a + \"+\" + b + \"=\" + (a + b));
return a + b;
}
@Override
public int minus(int a, int b) {
System.out.println(a + \"-\" + b + \"=\" + (a - b));
return a - b;
}
}
- OrderWebService接口类
import javax.jws.WebService;
@WebService
public interface OrderWebService {
int add(int a, int b);
int minus(int a, int b);
}
客户端测试代码
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import cn.com.jd.credit.pbccr.service.OrderWebService;
public class ClientForCXF {
public static OrderWebService getInterFace() {
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
factoryBean.setServiceClass(OrderWebService.class);
factoryBean.setAddress(\"http://localhost:11200/server/web-publish\");
return (OrderWebService) factoryBean.create();
}
public static void main(String[] args) {
OrderWebService myWebService = getInterFace();
System.out.println(\"client: \" + myWebService.add(1, 3));
}
}
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。



