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

CXF 2.0 学习笔记-一(服务端)

2014-01-03 
CXF 2.0 学习笔记-1(服务端)从网络上找了很多入门的例子,但大部分都是有这样或那样的问题,搞的头大。?? 这

CXF 2.0 学习笔记-1(服务端)

从网络上找了很多入门的例子,但大部分都是有这样或那样的问题,搞的头大。
?? 这里根据自己搭建的过程,整理出一个实际例子。
?? 环境:jdk1.5+,eclipse3.4,Tomcat5.5,cxf-2.1.4
???以下没有用到任何插件来生成
?? 服务端
?????一、server 端:?
??????????接口:WebServiceSample
?????????

CXF 2.0 学习笔记-一(服务端)import?hs.cxf.bean.ReqBean;
CXF 2.0 学习笔记-一(服务端)import?hs.cxf.bean.RespBean;
CXF 2.0 学习笔记-一(服务端)import?hs.cxf.bean.UserDTO;
CXF 2.0 学习笔记-一(服务端)import?javax.jws.WebParam;
CXF 2.0 学习笔记-一(服务端)import?javax.jws.WebResult;
CXF 2.0 学习笔记-一(服务端)import?javax.jws.WebService;
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)/**
CXF 2.0 学习笔记-一(服务端)?*?WebService接口定义类.
CXF 2.0 学习笔记-一(服务端)?*?
CXF 2.0 学习笔记-一(服务端)?*?使用@WebService将接口中的所有方法输出为Web?Service.?
CXF 2.0 学习笔记-一(服务端)?*?可用annotation对设置方法、参数和返回值在WSDL中的定义.
CXF 2.0 学习笔记-一(服务端)?*/
CXF 2.0 学习笔记-一(服务端)@WebService
CXF 2.0 学习笔记-一(服务端)public?interface?WebServiceSample?{
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)????/**
CXF 2.0 学习笔记-一(服务端)?????*?一个简单的方法,返回一个字符串
CXF 2.0 学习笔记-一(服务端)?????*?
CXF 2.0 学习笔记-一(服务端)?????*?@param?hello
CXF 2.0 学习笔记-一(服务端)?????*?@return
CXF 2.0 学习笔记-一(服务端)?????*/
CXF 2.0 学习笔记-一(服务端)????String?say(String?hello);
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)????/**
CXF 2.0 学习笔记-一(服务端)?????*?稍微复杂一些的方法,传递一个对象给服务端处理
CXF 2.0 学习笔记-一(服务端)?????*?
CXF 2.0 学习笔记-一(服务端)?????*?@param?user
CXF 2.0 学习笔记-一(服务端)?????*?@return
CXF 2.0 学习笔记-一(服务端)?????*/
CXF 2.0 学习笔记-一(服务端)????String?sayUserName(@WebParam(name?=?"user")?UserDTO?user);
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)????/**
CXF 2.0 学习笔记-一(服务端)?????*?通过对象来交互
CXF 2.0 学习笔记-一(服务端)?????*/
CXF 2.0 学习笔记-一(服务端)????@WebResult(name?=?"RespBean")
CXF 2.0 学习笔记-一(服务端)????RespBean?action(@WebParam(name?=?"ReqBean")?ReqBean?req);
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)}


?? 实现类:WebServiceSampleImpl
??

CXF 2.0 学习笔记-一(服务端)import?javax.jws.WebService;
CXF 2.0 学习笔记-一(服务端)import?hs.cxf.bean.ReqBean;
CXF 2.0 学习笔记-一(服务端)import?hs.cxf.bean.RespBean;
CXF 2.0 学习笔记-一(服务端)import?hs.cxf.bean.UserDTO;
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)/**
CXF 2.0 学习笔记-一(服务端)?*?@Title:
CXF 2.0 学习笔记-一(服务端)?*?
CXF 2.0 学习笔记-一(服务端)?*?@Description:
CXF 2.0 学习笔记-一(服务端)?*?
CXF 2.0 学习笔记-一(服务端)?*?@Copyright:?Copyright?(c)?2009?FFCS?All?Rights?Reserved
CXF 2.0 学习笔记-一(服务端)?*?
CXF 2.0 学习笔记-一(服务端)?*?@author?zhengzhi?2009-3-16?上午11:22:23
CXF 2.0 学习笔记-一(服务端)?*?@version?1.00.000
CXF 2.0 学习笔记-一(服务端)?*?
CXF 2.0 学习笔记-一(服务端)?*/
CXF 2.0 学习笔记-一(服务端)@WebService(endpointInterface="hs.cxf.server.WebServiceSample")
CXF 2.0 学习笔记-一(服务端)public?class?WebServiceSampleImpl?implements?WebServiceSample?{
CXF 2.0 学习笔记-一(服务端)????public?String?sayUserName(UserDTO?user)?{
CXF 2.0 学习笔记-一(服务端)????????return?"hello?"?+?user.getName();
CXF 2.0 学习笔记-一(服务端)????}
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)????public?String?say(String?hello)?{
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)????????return?"hello?"?+?hello;
CXF 2.0 学习笔记-一(服务端)????}
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)????public?RespBean?action(ReqBean?req)?{
CXF 2.0 学习笔记-一(服务端)????????RespBean?respBean?=?new?RespBean();
CXF 2.0 学习笔记-一(服务端)????????respBean.setExp(req.getExp());
CXF 2.0 学习笔记-一(服务端)????????respBean.setRespId(req.getSeqId());
CXF 2.0 学习笔记-一(服务端)????????return?respBean;
CXF 2.0 学习笔记-一(服务端)????}
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)}


? 实体类:UserDTO,ReqBean,RespBean
?

CXF 2.0 学习笔记-一(服务端)UserDTO
CXF 2.0 学习笔记-一(服务端)@XmlAccessorType(XmlAccessType.FIELD)???
CXF 2.0 学习笔记-一(服务端)@XmlType(name?=?"User")???
CXF 2.0 学习笔记-一(服务端)public?class?UserDTO?{???
CXF 2.0 学习笔记-一(服务端)??
CXF 2.0 学习笔记-一(服务端)????protected?Integer?id;???
CXF 2.0 学习笔记-一(服务端)??
CXF 2.0 学习笔记-一(服务端)????protected?String?name;???
CXF 2.0 学习笔记-一(服务端)????//get和set方法,这里不写出
CXF 2.0 学习笔记-一(服务端)}
CXF 2.0 学习笔记-一(服务端)ReqBean
CXF 2.0 学习笔记-一(服务端)@XmlAccessorType(XmlAccessType.FIELD)???
CXF 2.0 学习笔记-一(服务端)@XmlType(name?=?"ReqBean")???
CXF 2.0 学习笔记-一(服务端)public?class?ReqBean?{
CXF 2.0 学习笔记-一(服务端)????private?String?exp;
CXF 2.0 学习笔记-一(服务端)????private?String?seqId;
CXF 2.0 学习笔记-一(服务端)???????//get和set方法,这里不写出
CXF 2.0 学习笔记-一(服务端)}
CXF 2.0 学习笔记-一(服务端)
CXF 2.0 学习笔记-一(服务端)RespBean
CXF 2.0 学习笔记-一(服务端)@XmlAccessorType(XmlAccessType.FIELD)???
CXF 2.0 学习笔记-一(服务端)@XmlType(name?=?"RespBean")???
CXF 2.0 学习笔记-一(服务端)public?class?RespBean?{
CXF 2.0 学习笔记-一(服务端)????private?String?respId;
CXF 2.0 学习笔记-一(服务端)????private?String?exp;
CXF 2.0 学习笔记-一(服务端)???????//get和set方法,这里不写出
CXF 2.0 学习笔记-一(服务端)}


?二、Spring 配置
??????

CXF 2.0 学习笔记-一(服务端)<beans?xmlns="http://www.springframework.org/schema/beans"??
CXF 2.0 学习笔记-一(服务端)????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
CXF 2.0 学习笔记-一(服务端)????xmlns:jaxws="http://cxf.apache.org/jaxws"??
CXF 2.0 学习笔记-一(服务端)????xsi:schemaLocation="???
CXF 2.0 学习笔记-一(服务端)http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans.xsd???
CXF 2.0 学习笔记-一(服务端)http://cxf.apache.org/jaxws?http://cxf.apache.org/schemas/jaxws.xsd">???
CXF 2.0 学习笔记-一(服务端)??
CXF 2.0 学习笔记-一(服务端)????<import?resource="classpath:META-INF/cxf/cxf.xml"?/>???
CXF 2.0 学习笔记-一(服务端)????<import?resource="classpath:META-INF/cxf/cxf-extension-soap.xml"?/>???
CXF 2.0 学习笔记-一(服务端)????<import?resource="classpath:META-INF/cxf/cxf-servlet.xml"?/>???
CXF 2.0 学习笔记-一(服务端)??
CXF 2.0 学习笔记-一(服务端)????<bean?id="jaxWsServiceFactoryBean"??
CXF 2.0 学习笔记-一(服务端)????????class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">???
CXF 2.0 学习笔记-一(服务端)????????<property?name="wrapped"?value="true"?/>???
CXF 2.0 学习笔记-一(服务端)????????<property?name="dataBinding"?ref="aegisBean"?/>???
CXF 2.0 学习笔记-一(服务端)????</bean>???
CXF 2.0 学习笔记-一(服务端)??
CXF 2.0 学习笔记-一(服务端)????<bean?id="aegisBean"??
CXF 2.0 学习笔记-一(服务端)????????class="org.apache.cxf.aegis.databinding.AegisDatabinding"?/>???
CXF 2.0 学习笔记-一(服务端)??
CXF 2.0 学习笔记-一(服务端)????<jaxws:endpoint?id="CollectiveServices"??
CXF 2.0 学习笔记-一(服务端)????????implementor="hs.cxf.server.WebServiceSampleImpl"?address="/HelloWorld">???
CXF 2.0 学习笔记-一(服务端)????????<jaxws:serviceFactory>???
CXF 2.0 学习笔记-一(服务端)????????????<ref?bean="jaxWsServiceFactoryBean"/>???
CXF 2.0 学习笔记-一(服务端)????????</jaxws:serviceFactory>???
CXF 2.0 学习笔记-一(服务端)????</jaxws:endpoint>???
CXF 2.0 学习笔记-一(服务端)</beans>??
CXF 2.0 学习笔记-一(服务端)



三.web.xml配置

CXF 2.0 学习笔记-一(服务端)<?xml?version="1.0"?encoding="UTF-8"?>
CXF 2.0 学习笔记-一(服务端)<!DOCTYPE?web-app?PUBLIC?"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"?"http://java.sun.com/dtd/web-app_2_3.dtd">
CXF 2.0 学习笔记-一(服务端)<web-app?id="WebApp_ID">
CXF 2.0 学习笔记-一(服务端)????<display-name>cxfTest</display-name>
CXF 2.0 学习笔记-一(服务端)????<context-param>
CXF 2.0 学习笔记-一(服务端)????????<param-name>contextConfigLocation</param-name>
CXF 2.0 学习笔记-一(服务端)????????<param-value>WEB-INF/beans.xml</param-value>
CXF 2.0 学习笔记-一(服务端)????</context-param>
CXF 2.0 学习笔记-一(服务端)????<listener>
CXF 2.0 学习笔记-一(服务端)????????<listener-class>
CXF 2.0 学习笔记-一(服务端)????????????org.springframework.web.context.ContextLoaderListener???
CXF 2.0 学习笔记-一(服务端)????????</listener-class>
CXF 2.0 学习笔记-一(服务端)????</listener>
CXF 2.0 学习笔记-一(服务端)????<servlet>
CXF 2.0 学习笔记-一(服务端)????????<servlet-name>CXFServlet</servlet-name>
CXF 2.0 学习笔记-一(服务端)????????<servlet-class>
CXF 2.0 学习笔记-一(服务端)????????????org.apache.cxf.transport.servlet.CXFServlet???
CXF 2.0 学习笔记-一(服务端)????????</servlet-class>
CXF 2.0 学习笔记-一(服务端)????????<load-on-startup>1</load-on-startup>
CXF 2.0 学习笔记-一(服务端)????</servlet>
CXF 2.0 学习笔记-一(服务端)????<servlet-mapping>
CXF 2.0 学习笔记-一(服务端)????????<servlet-name>CXFServlet</servlet-name>
CXF 2.0 学习笔记-一(服务端)????????<url-pattern>/ws/*</url-pattern>
CXF 2.0 学习笔记-一(服务端)????</servlet-mapping>
CXF 2.0 学习笔记-一(服务端)</web-app>
CXF 2.0 学习笔记-一(服务端)

这里要注意,cxf 教程上提到需要的包并不完整,还需要导入:jdom,stax-api-1.0-2.jar,jaxws-api.jar?这些包
?我使用的包如下:

?

CXF 2.0 学习笔记-一(服务端)aopalliance-1.0.jar
CXF 2.0 学习笔记-一(服务端)asm-2.2.3.jar
CXF 2.0 学习笔记-一(服务端)commons-logging-1.1.1.jar
CXF 2.0 学习笔记-一(服务端)cxf-2.1.4.jar
CXF 2.0 学习笔记-一(服务端)geronimo-activation_1.1_spec-1.0.2.jar
CXF 2.0 学习笔记-一(服务端)geronimo-annotation_1.0_spec-1.1.1.jar
CXF 2.0 学习笔记-一(服务端)geronimo-javamail_1.4_spec-1.3.jar
CXF 2.0 学习笔记-一(服务端)geronimo-servlet_2.5_spec-1.2.jar
CXF 2.0 学习笔记-一(服务端)geronimo-ws-metadata_2.0_spec-1.1.2.jar
CXF 2.0 学习笔记-一(服务端)jaxb-api-2.1.jar
CXF 2.0 学习笔记-一(服务端)jaxb-impl-2.1.9.jar
CXF 2.0 学习笔记-一(服务端)jaxen-core.jar
CXF 2.0 学习笔记-一(服务端)jaxen-jdom.jar
CXF 2.0 学习笔记-一(服务端)jaxws-api.jar
CXF 2.0 学习笔记-一(服务端)jdom.jar
CXF 2.0 学习笔记-一(服务端)jetty-6.1.9.jar
CXF 2.0 学习笔记-一(服务端)jetty-util-6.1.9.jar
CXF 2.0 学习笔记-一(服务端)neethi-2.0.4.jar
CXF 2.0 学习笔记-一(服务端)saaj-api-1.3.jar
CXF 2.0 学习笔记-一(服务端)saaj-impl-1.3.2.jar
CXF 2.0 学习笔记-一(服务端)saxpath.jar
CXF 2.0 学习笔记-一(服务端)spring-beans-2.0.8.jar
CXF 2.0 学习笔记-一(服务端)spring-context-2.0.8.jar
CXF 2.0 学习笔记-一(服务端)spring-core-2.0.8.jar
CXF 2.0 学习笔记-一(服务端)spring-web-2.0.8.jar
CXF 2.0 学习笔记-一(服务端)stax-api-1.0-2.jar
CXF 2.0 学习笔记-一(服务端)wsdl4j-1.6.2.jar
CXF 2.0 学习笔记-一(服务端)wstx-asl-3.2.6.jar
CXF 2.0 学习笔记-一(服务端)xalan.jar
CXF 2.0 学习笔记-一(服务端)xml-resolver-1.2.jar
CXF 2.0 学习笔记-一(服务端)XmlSchema-1.4.3.jar


然后启动tomcat,输入http://IP:端口/模块名/ws 查看你生成的服务端,可使用xmlspy来进行测试。

热点排行