使用Apache CXF和Spring集成创建Web Service
1.创建HelloWorld 接口类
1 |
package com.googlecode.garbagecan.cxfstudy.helloworld; |
2 |
import javax.jws.WebParam; |
3 |
import javax.jws.WebResult; |
4 |
import javax.jws.WebService; |
6 |
public interface HelloWorld { |
7 |
public @WebResult(name="String")String sayHi(@WebParam(name="text") String text); |
2.创建HelloWorld实现类
1 |
package com.googlecode.garbagecan.cxfstudy.helloworld; |
2 |
public class HelloWorldImpl implements HelloWorld { |
3 |
public String sayHi(String name) { |
4 |
String msg = "Hello " + name + "!"; |
5 |
System.out.println("Server: " + msg); |
3.修改web.xml文件
01 |
<!DOCTYPE web-app PUBLIC |
02 |
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" |
03 |
"http://java.sun.com/dtd/web-app_2_3.dtd" > |
05 |
<display-name>cxfstudy</display-name> |
07 |
<servlet-name>cxf</servlet-name> |
08 |
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> |
09 |
<load-on-startup>1</load-on-startup> |
12 |
<servlet-name>cxf</servlet-name> |
13 |
<url-pattern>/ws/*</url-pattern> |
16 |
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> |
20 |
<param-name>contextConfigLocation</param-name> |
21 |
<param-value>classpath*:**/spring.xml</param-value> |
4.创建spring配置文件并放在classpath路径下
01 |
<?xml version="1.0" encoding="UTF-8"?> |
02 |
<beans xmlns="http://www.springframework.org/schema/beans" |
03 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:jaxws="http://cxf.apache.org/jaxws" |
04 |
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd |
05 |
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> |
06 |
<import resource="classpath:META-INF/cxf/cxf.xml" /> |
07 |
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> |
08 |
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> |
09 |
<jaxws:endpoint id="helloworld"implementor="com.googlecode.garbagecan.cxfstudy.helloworld.HelloWorldImpl"address="/HelloWorld" /> |
12 |
<jaxws:client id="helloworldClient" address="http://localhost:9000/ws/HelloWorld"serviceClass="com.googlecode.garbagecan.cxfstudy.helloworld.HelloWorld" /> |
5.创建测试类
01 |
package com.googlecode.garbagecan.cxfstudy.helloworld; |
02 |
import org.springframework.context.ApplicationContext; |
03 |
import org.springframework.context.support.ClassPathXmlApplicationContext; |
04 |
public class SpringClient { |
05 |
public static void main(String[] args) { |
06 |
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); |
07 |
HelloWorld helloworld = (HelloWorld)context.getBean("helloworldClient"); |
08 |
System.out.println(helloworld.sayHi("kongxx")); |
6.测试
6. 1.首先启动tomcat或者使用maven的jetty,并访问http://localhost:9000/ws/HelloWorld?wsdl来验证web service已经启动并且生效;
6. 2.然后运行测试类来验证web service。