首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Apache CXF实战之二 集成Sping与Web器皿

2013-07-01 
Apache CXF实战之二 集成Sping与Web容器书接上文,下面看看CXF怎样和spring集成。1.创建HelloWorld 接口类?[

Apache CXF实战之二 集成Sping与Web容器

书接上文,下面看看CXF怎样和spring集成。

1.创建HelloWorld 接口类

?

[java] view plaincopyprint?
  1. package?com.googlecode.garbagecan.cxfstudy.helloworld;????
  2. import?javax.jws.WebMethod;??import?javax.jws.WebParam;??
  3. import?javax.jws.WebResult;??import?javax.jws.WebService;??
  4. ??@WebService??
  5. public?interface?HelloWorld?{??????@WebMethod??
  6. ????@WebResult?String?sayHi(@WebParam?String?text);??}??

2.创建HelloWorld实现类?

[java] view plaincopyprint?
  1. package?com.googlecode.garbagecan.cxfstudy.helloworld;????
  2. public?class?HelloWorldImpl?implements?HelloWorld?{????
  3. ????public?String?sayHi(String?name)?{??????????String?msg?=?"Hello?"?+?name?+?"!";??
  4. ????????return?msg;??????}??
  5. }??

3.修改web.xml文件

?

?

[html] view plaincopyprint?
  1. <!DOCTYPE?web-app?PUBLIC???"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"??
  2. ?"http://java.sun.com/dtd/web-app_2_3.dtd"?>????
  3. <web-app>????
  4. ????<display-name>cxfstudy</display-name>????
  5. ????<servlet>??????????<servlet-name>cxf</servlet-name>??
  6. ????????<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>??????????<load-on-startup>1</load-on-startup>??
  7. ????</servlet>????
  8. ????<servlet-mapping>??????????<servlet-name>cxf</servlet-name>??
  9. ????????<url-pattern>/ws/*</url-pattern>??????</servlet-mapping>??
  10. ??????<listener>??
  11. ????????<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>??????</listener>??
  12. ??????????<context-param>??
  13. ????????<param-name>contextConfigLocation</param-name>??????????<param-value>classpath*:**/spring.xml</param-value>??
  14. ????</context-param>????????
  15. </web-app>??

4.创建spring配置文件并放在classpath路径下

?

?

[html] view plaincopyprint?
  1. <?xml?version="1.0"?encoding="UTF-8"?>??<beans?xmlns="http://www.springframework.org/schema/beans"??
  2. ????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??????
  3. http://cxf.apache.org/jaxws?http://cxf.apache.org/schemas/jaxws.xsd">??????<import?resource="classpath:META-INF/cxf/cxf.xml"?/>??
  4. ????<import?resource="classpath:META-INF/cxf/cxf-extension-soap.xml"?/>??????<import?resource="classpath:META-INF/cxf/cxf-servlet.xml"?/>??
  5. ????<jaxws:endpoint?id="helloworld"?implementor="com.googlecode.garbagecan.cxfstudy.helloworld.HelloWorldImpl"?address="/HelloWorld"?/>????????
  6. ????<!--?For?client?test?-->??????<jaxws:client?id="helloworldClient"?address="http://localhost:9000/ws/HelloWorld"?serviceClass="com.googlecode.garbagecan.cxfstudy.helloworld.HelloWorld"?/>?????
  7. </beans>??

5.创建测试类

?

?

[java] view plaincopyprint?
  1. package?com.googlecode.garbagecan.cxfstudy.helloworld;????
  2. import?org.springframework.context.ApplicationContext;??import?org.springframework.context.support.ClassPathXmlApplicationContext;??
  3. ??public?class?SpringClient?{??
  4. ????public?static?void?main(String[]?args)?{??????????ApplicationContext?context?=?new?ClassPathXmlApplicationContext("spring.xml");??
  5. ????????HelloWorld?helloworld?=?(HelloWorld)context.getBean("helloworldClient");??????????System.out.println(helloworld.sayHi("kongxx"));??
  6. ????}??}??

6.测试

?

6.1 首先启动tomcat或者使用maven的jetty,并访问http://localhost:9000/ws/HelloWorld?wsdl来验证web service已经启动并且生效;

6.2 然后运行测试类来验证web service。

热点排行