Apache CXF实战之二 集成Sping与Web器皿
Apache CXF实战之二 集成Sping与Web容器书接上文,下面看看CXF怎样和spring集成。1.创建HelloWorld 接口类?[
Apache CXF实战之二 集成Sping与Web容器
书接上文,下面看看CXF怎样和spring集成。
1.创建HelloWorld 接口类
?
[java] view plaincopyprint?
- package?com.googlecode.garbagecan.cxfstudy.helloworld;????
- import?javax.jws.WebMethod;??import?javax.jws.WebParam;??
- import?javax.jws.WebResult;??import?javax.jws.WebService;??
- ??@WebService??
- public?interface?HelloWorld?{??????@WebMethod??
- ????@WebResult?String?sayHi(@WebParam?String?text);??}??
2.创建HelloWorld实现类?
[java] view plaincopyprint?
- package?com.googlecode.garbagecan.cxfstudy.helloworld;????
- public?class?HelloWorldImpl?implements?HelloWorld?{????
- ????public?String?sayHi(String?name)?{??????????String?msg?=?"Hello?"?+?name?+?"!";??
- ????????return?msg;??????}??
- }??
3.修改web.xml文件
?
?
[html] view plaincopyprint?
- <!DOCTYPE?web-app?PUBLIC???"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"??
- ?"http://java.sun.com/dtd/web-app_2_3.dtd"?>????
- <web-app>????
- ????<display-name>cxfstudy</display-name>????
- ????<servlet>??????????<servlet-name>cxf</servlet-name>??
- ????????<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>??????????<load-on-startup>1</load-on-startup>??
- ????</servlet>????
- ????<servlet-mapping>??????????<servlet-name>cxf</servlet-name>??
- ????????<url-pattern>/ws/*</url-pattern>??????</servlet-mapping>??
- ??????<listener>??
- ????????<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>??????</listener>??
- ??????????<context-param>??
- ????????<param-name>contextConfigLocation</param-name>??????????<param-value>classpath*:**/spring.xml</param-value>??
- ????</context-param>????????
- </web-app>??
4.创建spring配置文件并放在classpath路径下
?
?
[html] view plaincopyprint?
- <?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"?/>??
- ????<import?resource="classpath:META-INF/cxf/cxf-extension-soap.xml"?/>??????<import?resource="classpath:META-INF/cxf/cxf-servlet.xml"?/>??
- ????<jaxws:endpoint?id="helloworld"?implementor="com.googlecode.garbagecan.cxfstudy.helloworld.HelloWorldImpl"?address="/HelloWorld"?/>????????
- ????<!--?For?client?test?-->??????<jaxws:client?id="helloworldClient"?address="http://localhost:9000/ws/HelloWorld"?serviceClass="com.googlecode.garbagecan.cxfstudy.helloworld.HelloWorld"?/>?????
- </beans>??
5.创建测试类
?
?
[java] view plaincopyprint?
- package?com.googlecode.garbagecan.cxfstudy.helloworld;????
- import?org.springframework.context.ApplicationContext;??import?org.springframework.context.support.ClassPathXmlApplicationContext;??
- ??public?class?SpringClient?{??
- ????public?static?void?main(String[]?args)?{??????????ApplicationContext?context?=?new?ClassPathXmlApplicationContext("spring.xml");??
- ????????HelloWorld?helloworld?=?(HelloWorld)context.getBean("helloworldClient");??????????System.out.println(helloworld.sayHi("kongxx"));??
- ????}??}??
6.测试
?
6.1 首先启动tomcat或者使用maven的jetty,并访问http://localhost:9000/ws/HelloWorld?wsdl来验证web service已经启动并且生效;
6.2 然后运行测试类来验证web service。