<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    胖熊熊

    得到多少又失去了什么

    CXF 2.0 學習筆記-1(服務端)

       從網(wǎng)絡上找了很多入門的例子,但大部分都是有這樣或那樣的問題,搞的頭大。
       這里根據(jù)自己搭建的過程,整理出一個實際例子。
       環(huán)境:jdk1.5+,eclipse3.4,Tomcat5.5,cxf-2.1.4
       以下沒有用到任何插件來生成
       服務端
         一、server 端: 
              接口:WebServiceSample
             
    import hs.cxf.bean.ReqBean;
    import hs.cxf.bean.RespBean;
    import hs.cxf.bean.UserDTO;
    import javax.jws.WebParam;
    import javax.jws.WebResult;
    import javax.jws.WebService;

    /**
     * WebService接口定義類.
     * 
     * 使用@WebService將接口中的所有方法輸出為Web Service. 
     * 可用annotation對設置方法、參數(shù)和返回值在WSDL中的定義.
     
    */

    @WebService
    public interface WebServiceSample {

        
    /**
         * 一個簡單的方法,返回一個字符串
         * 
         * 
    @param hello
         * 
    @return
         
    */

        String say(String hello);

        
    /**
         * 稍微復雜一些的方法,傳遞一個對象給服務端處理
         * 
         * 
    @param user
         * 
    @return
         
    */

        String sayUserName(@WebParam(name 
    = "user") UserDTO user);

        
    /**
         * 通過對象來交互
         
    */

        @WebResult(name 
    = "RespBean")
        RespBean action(@WebParam(name 
    = "ReqBean") ReqBean req);

    }

       實現(xiàn)類:WebServiceSampleImpl
      
    import javax.jws.WebService;
    import hs.cxf.bean.ReqBean;
    import hs.cxf.bean.RespBean;
    import hs.cxf.bean.UserDTO;

    /**
     * @Title:
     * 
     * @Description:
     * 
     * @Copyright: Copyright (c) 2009 FFCS All Rights Reserved
     * 
     * 
    @author zhengzhi 2009-3-16 上午11:22:23
     * 
    @version 1.00.000
     * 
     
    */

    @WebService(endpointInterface
    ="hs.cxf.server.WebServiceSample")
    public class WebServiceSampleImpl implements WebServiceSample {
        
    public String sayUserName(UserDTO user) {
            
    return "hello " + user.getName();
        }


        
    public String say(String hello) {

            
    return "hello " + hello;
        }


        
    public RespBean action(ReqBean req) {
            RespBean respBean 
    = new RespBean();
            respBean.setExp(req.getExp());
            respBean.setRespId(req.getSeqId());
            
    return respBean;
        }


    }

      實體類:UserDTO,ReqBean,RespBean
     
    UserDTO
    @XmlAccessorType(XmlAccessType.FIELD)   
    @XmlType(name 
    = "User")   
    public class UserDTO {   
      
        
    protected Integer id;   
      
        
    protected String name;   
        
    //get和set方法,這里不寫出
    }

    ReqBean
    @XmlAccessorType(XmlAccessType.FIELD)   
    @XmlType(name 
    = "ReqBean")   
    public class ReqBean {
        
    private String exp;
        
    private String seqId;
           
    //get和set方法,這里不寫出
    }


    RespBean
    @XmlAccessorType(XmlAccessType.FIELD)   
    @XmlType(name 
    = "RespBean")   
    public class RespBean {
        
    private String respId;
        
    private String exp;
           
    //get和set方法,這里不寫出
    }

     二、Spring 配置
          
    <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" />   
      
        
    <bean id="jaxWsServiceFactoryBean"  
            class
    ="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">   
            
    <property name="wrapped" value="true" />   
            
    <property name="dataBinding" ref="aegisBean" />   
        
    </bean>   
      
        
    <bean id="aegisBean"  
            class
    ="org.apache.cxf.aegis.databinding.AegisDatabinding" />   
      
        
    <jaxws:endpoint id="CollectiveServices"  
            implementor
    ="hs.cxf.server.WebServiceSampleImpl" address="/HelloWorld">   
            
    <jaxws:serviceFactory>   
                
    <ref bean="jaxWsServiceFactoryBean"/>   
            
    </jaxws:serviceFactory>   
        
    </jaxws:endpoint>   
    </beans>  


    三.web.xml配置
    <?xml version="1.0" encoding="UTF-8"?>
    <!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 id="WebApp_ID">
        
    <display-name>cxfTest</display-name>
        
    <context-param>
            
    <param-name>contextConfigLocation</param-name>
            
    <param-value>WEB-INF/beans.xml</param-value>
        
    </context-param>
        
    <listener>
            
    <listener-class>
                org.springframework.web.context.ContextLoaderListener   
            
    </listener-class>
        
    </listener>
        
    <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>/ws/*</url-pattern>
        
    </servlet-mapping>
    </web-app>

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

     

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

    然后啟動tomcat,輸入http://IP:端口/模塊名/ws 查看你生成的服務端,可使用xmlspy來進行測試。

     注:
    后續(xù)將研究下如何并不結(jié)合Spring 來使用CXF,如有知道的朋友,請留言告知。

    posted on 2009-03-16 15:14 fatbear 閱讀(3430) 評論(3)  編輯  收藏 所屬分類: web service

    評論

    # re: CXF 2.0 學習筆記-1(服務端) 2009-09-16 17:39 jij

    jhkkkkkkkkkkkkkkkkkkkk  回復  更多評論   

    # re: CXF 2.0 學習筆記-1(服務端) 2009-12-08 11:36 longwen

    好!!!  回復  更多評論   

    # re: CXF 2.0 學習筆記-1(服務端) 2010-04-16 10:41 kenail

    寫得挺好  回復  更多評論   

    主站蜘蛛池模板: 亚洲中文字幕无码亚洲成A人片| 国产亚洲成在线播放va| 成人免费无码大片A毛片抽搐| 亚洲人成未满十八禁网站| 亚洲精品高清一二区久久| 久久免费观看国产99精品| 亚洲午夜精品一区二区麻豆| 亚洲美女在线国产| 五月亭亭免费高清在线| 鲁啊鲁在线视频免费播放| 亚洲性天天干天天摸| 日本无吗免费一二区| 一个人免费视频在线观看www| 亚洲高清一区二区三区| 亚洲熟女少妇一区二区| 四色在线精品免费观看| 久久久国产精品无码免费专区| 久久精品国产亚洲AV电影网| 香蕉视频在线观看亚洲| 国产免费av片在线无码免费看| 免费国产成人α片| 色老头综合免费视频| 亚洲一区二区三区高清不卡| 黑人大战亚洲人精品一区 | 丁香花在线观看免费观看图片| 亚洲天堂一区在线| 亚洲精品~无码抽插| 国产国产人免费视频成69大陆 | 99精品热线在线观看免费视频 | 16女性下面无遮挡免费| 一级特黄特色的免费大片视频| 国产精品亚洲精品| 亚洲人成在线观看| 最新精品亚洲成a人在线观看| 免费观看的a级毛片的网站| 黄色永久免费网站| 91香蕉国产线观看免费全集| 中文字幕在线免费视频| 免费手机在线看片| 婷婷国产偷v国产偷v亚洲| 亚洲一本到无码av中文字幕|