久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

WebService CXF學(xué)習(xí)(高級(jí)篇1):整合Spring框架

 CevenCheng 2012-06-08
通過(guò)前面兩節(jié)的講解,,相信你對(duì)CXF框架開(kāi)始有一些認(rèn)識(shí)了。在當(dāng)今項(xiàng)目開(kāi)發(fā)中,,Spring框架基上都用到過(guò),,那么它怎么與CXF結(jié)合呢,這就是我們這一間要講的內(nèi)容,。好了,,閑話少說(shuō)。 
    首先,,在前面基礎(chǔ)上再導(dǎo)入幾個(gè)spring要用到的幾個(gè).jar包: 
    spring-core.jar 
    spring-jdbc.jar 
    spring-context.jar 
    spring-orm.jar 
    spring-beans.jar 
    spring-tx.jar 
    包導(dǎo)入完之后,,我們還不能開(kāi)如干活,配置幾薦參數(shù),,便于下一步工作,。 
    配置CXF框架 
    我的電腦->屬性->高級(jí)->環(huán)境變量 
    創(chuàng)建一個(gè)CXF_HOEM變量,值為CXF框架所在根目錄,,修改一下 
    CLASSPATH=%CXF_HOME%/lib;PATH=%CXF_HOME%/bin;這時(shí)有會(huì)問(wèn)為什么要配置這兩個(gè)參數(shù)據(jù)呢,,其實(shí)配置這兩個(gè)參數(shù)用途與配置JAVA變量一下,在DOS窗口下直接運(yùn)行java2ws,wsdl2java等可執(zhí)行文件,。當(dāng)然你沒(méi)有配置也可以進(jìn)到CXF框架的bin目錄下遠(yuǎn)行這個(gè)幾個(gè)可執(zhí)行文件,。 
   配置好了后,你在DOS窗口下輸入java2ws,,看看配置是否效,。肯定沒(méi)有成功,,原因是使用6.0的JDK,,我們還得在%JAVA_HOME%/jre/lib目錄下創(chuàng)建一下endorsed文件夾,,將jaxb-api.jar,jaxws.jar拷貝進(jìn)去。現(xiàn)在再運(yùn)一下java2ws,成功運(yùn)行,,配置生效了,。 
    基本工作做得差不多,整合spring框架正式開(kāi)始: 
    第一步:新一個(gè)web project,導(dǎo)入要用到.jar包,,其實(shí)CXF利用org.apache.cxf.transport.servlet.CXFServlet來(lái)攔截所有web請(qǐng)求,,將其配置到web.xml中。配置如下: 
Java代碼  收藏代碼 

    <web-app>  
        <context-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>  
                /WEB-INF/classes/applicationContext-*.xml,/WEB-INF/classes/webservice.xml  
            </param-value>  
        </context-param>  
      
        <listener>  
            <listener-class>  
                org.springframework.web.context.ContextLoaderListener  
            </listener-class>  
        </listener>  
      
        <servlet>  
            <servlet-name>CXFServlet</servlet-name>  
            <display-name>CXF Servlet</display-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>/*</url-pattern>  
        </servlet-mapping>
  
    </web-app>  


      注意一下綠色字體 
      CXF框架配置好了,,我就來(lái)開(kāi)發(fā)一個(gè)WebService接口 
Java代碼  收藏代碼 

         @WebService  
         public interface IService {  
      
    //public void save(@WebParam(name="info")String xml);  
    public void save(@WebParam(name="dto")UserInfoDTO dto,@WebParam(name="flag")boolean flag);  
    public void update(@WebParam(name="info")String xml);  
    public void delete(@WebParam(name="id")int id);  
    public @WebResult(name="String")String get(@WebParam(name="id")int id);  
        }  


    這里面有四個(gè)方法,,其中有一個(gè)涉及到對(duì)象,這一點(diǎn)前面一節(jié)講到怎么處理它,。放在這里是再回顧前節(jié)內(nèi)容,。 
    創(chuàng)建一個(gè)WebService接口實(shí)現(xiàn)類 
   
Java代碼  收藏代碼 

       @WebService  
       public class ServiceImpl implements IService {  
    private Logger log = LoggerFactory.getLogger(ServiceImpl.class);  
      
    public void delete(int id) {  
        log.info("delete id is {} user"+id);  
    }  
      
    public void save(UserInfoDTO dto,boolean flag) {  
        System.out.println("name:"+dto.getName());  
    }  
      
    public void update(String xml) {  
    }  
      
    public String get(int id){  
        return null;  
    }  
      }  
         


   由于本節(jié)只講解與Spring整合,,沒(méi)有涉及到數(shù)據(jù)庫(kù),,因就打印一下傳遞過(guò)來(lái)的對(duì)象內(nèi)容來(lái)證明整合成功。與spring,hibernate整合后面章節(jié)會(huì)講到,,請(qǐng)留意后面章節(jié),。 
   傳遞對(duì)象,,當(dāng)然創(chuàng)建對(duì)象啦 
Java代碼  收藏代碼 

      @XmlType(name="ServerUserInfo")  
      @XmlAccessorType(XmlAccessType.FIELD)  
      public class UserInfoDTO implements java.io.Serializable {  
      
    private static final long serialVersionUID = -4666026219400887433L;  
    private Integer id;  
    private String name;  
    private Integer age;  
    private Integer address;  
      
    public Integer getId() {  
        return id;  
    }  
      
    public void setId(Integer id) {  
        this.id = id;  
    }  
      
    public String getName() {  
        return name;  
    }  
      
    public void setName(String name) {  
        this.name = name;  
    }  
      
    public Integer getAge() {  
        return age;  
    }  
      
    public void setAge(Integer age) {  
        this.age = age;  
    }  
      
    public Integer getAddress() {  
        return address;  
    }  
      
    public void setAddress(Integer address) {  
        this.address = address;  
    }  
      
    public UserInfoDTO() {  
    }  
      
       }  


   做了這么多工作,有人又會(huì)問(wèn),,怎么現(xiàn)在做的與spring框架就沒(méi)一點(diǎn)聯(lián)系,,呵呵,確實(shí)是這樣,。開(kāi)戲開(kāi)場(chǎng)了,利用Spring來(lái)發(fā)布WebService接口: 
Java代碼  收藏代碼 

    <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www./schema/beans"  
        xmlns:xsi="http://www./2001/XMLSchema-instance"  
        xmlns:jaxws="http://cxf./jaxws"  
        xsi:schemaLocation="  
            http://www./schema/beans   
            http://www./schema/beans/spring-beans-2.0.xsd  
            http://cxf./jaxws   
            http://cxf./schemas/jaxws.xsd">  
          
            <!--導(dǎo)入與CXF框架有關(guān)的xml-->  
            <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" />
  
      
            <!--布布WebService接口-->  
        <jaxws:endpoint id="service"  
            implementor="com.itdcl.service.ServiceImpl" address="/Service">  
              
        </jaxws:endpoint>  
    </beans>  


     服務(wù)端開(kāi)發(fā)工作基本結(jié)束?,F(xiàn)在打包部署到Tomcat6.0.18(本人目前使用的測(cè)試服務(wù)器,你當(dāng)然可以使用別的服務(wù)器) 
    服務(wù)器啟動(dòng)完成后,,打開(kāi)瀏覽器在地址欄中輸入http://localhost:port/project name/Service?wsdl看看接口是否發(fā)成功,。 
    接下來(lái)就是開(kāi)發(fā)一個(gè)客戶端了。 
    另建一個(gè)web project,,現(xiàn)在前面的參數(shù)配置要起作用了,,cmd進(jìn)入DOS環(huán)境下輸入wsdl2java -p com.itdcl.service(自定義包名) http://localhost:port/project name/Service?wsdl(前提是服務(wù)器沒(méi)停止) 
    敲擊Enter,wsdl2java工具幫你將發(fā)布出來(lái)的wsdl文件轉(zhuǎn)換成webservice接口,,到指定目錄下將com.itdcl.service拷到剛才另建的web project的src目錄下,。 
    現(xiàn)在,我們就來(lái)創(chuàng)建一個(gè)客戶端程序: 
Java代碼  收藏代碼 

        public class SampleClient {  
      
    ublic static void main(String[] args) {  
    ApplicationContext context = new ClassPathXmlApplicationContext(  
            "beans.xml");  
        
     IService service = (IService)context.getBean("service");  
     ServerUserInfo userInfo = new ServerUserInfo();  
     userInfo.setAddress(1);  
     userInfo.setAge(100);  
     userInfo.setName("Jason");  
      
     service.save(userInfo,true);  
     service.delete(1);  
      
      
     }  


    看得仔細(xì)的朋友就會(huì)問(wèn)了,,ServerUserInfo 這個(gè)類那來(lái)的,,你進(jìn)到com.itdcl.service目錄下就會(huì)看到,是WebService發(fā)布出來(lái)的。 
    到目前為止,,客戶端還沒(méi)有完成,,你沒(méi)有看到程序中ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");這個(gè)bean.xml就是spring框架來(lái)注刪除WebService接口的。好啦,,創(chuàng)建一個(gè)bean.xml,,內(nèi)容如下: 
Java代碼  收藏代碼 

      <?xml version="1.0" encoding="UTF-8"?>  
      <beans xmlns="http://www./schema/beans"  
    xmlns:xsi="http://www./2001/XMLSchema-instance"  
    xmlns:jaxws="http://cxf./jaxws"  
    xsi:schemaLocation="  
        http://www./schema/beans   
        http://www./schema/beans/spring-beans-2.0.xsd  
        http://cxf./jaxws   
        http://cxf./schemas/jaxws.xsd
">  
    <jaxws:client id="service"  
        address="http://localhost:9999/cxf/Service"  
        serviceClass="com.itdcl.service.IService" />  
      </beans>  


    留意一下綠色字體 
    剩下的事就是運(yùn)行客戶端程序了,沒(méi)有異常拋出,,打印出:name:Josen,則恭喜你CXF框架與Spring整合成功,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多