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

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

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

    馬光軍--------BLOG

    BlogJava 聯系 聚合 管理
      1 Posts :: 25 Stories :: 5 Comments :: 0 Trackbacks
    首先,我們應當創建一個實體類一個接口和一個實現類(User.java、UserService.java、UserServiceImpl.java)

    package com.mgj.xfiretext.domain;

    import java.io.Serializable;
    import java.util.Date;

    /**
     *
     * User.java com.mgj.xfiretext.domain xfire
     *
     * @author magj mailto:m441748725@163.com 2008-10-17 下午04:18:26
     *
     */
    public class User implements Serializable {
     
     private static final long serialVersionUID = 6517808321041980976L;

     private Long userId;

     private String accountId;

     private String userName;

     private Date lastLogin;

     public String getAccountId() {
      return accountId;
     }

     public void setAccountId(String accountId) {
      this.accountId = accountId;
     }

     public Date getLastLogin() {
      return lastLogin;
     }

     public void setLastLogin(Date lastLogin) {
      this.lastLogin = lastLogin;
     }

     public Long getUserId() {
      return userId;
     }

     public void setUserId(Long userId) {
      this.userId = userId;
     }

     public String getUserName() {
      return userName;
     }

     public void setUserName(String userName) {
      this.userName = userName;
     }
    }


    package com.mgj.xfiretext.webserver;

    import com.mgj.xfiretext.domain.User;
    /**
     *
     * UserService.java
     * com.mgj.xfiretext.webserver
     * xfire
     * @author magj mailto:m441748725@163.com
     *  2008-10-17  下午04:16:09
     *
     */
         
    public interface UserService {     
        public User queryUserByAccoutId(String accountId);     
        
    }

    package com.mgj.xfiretext.webserver;

    import java.util.Date;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    import com.mgj.xfiretext.domain.User;

    /**
     *
     * UserServiceImpl.java
     * com.mgj.xfiretext.webserver
     * xfire
     * @author magj mailto:m441748725@163.com
     *  2008-10-17  下午04:17:26
     *
     */
    public class UserServiceImpl  implements UserService{     
        private static final Log log = LogFactory.getLog(UserServiceImpl.class);     
             
        public User queryUserByAccoutId(String accountId){      
            log.debug("accountId=" + accountId);      
            User user = new User();      
            user.setAccountId("testAccount");      
            user.setLastLogin(new Date());      
            user.setUserName("mgj");      
            user.setUserId(new Long(123L));     
            return user;      
            }     
    }

    創建一個bulild.xml文件:
    <?xml version="1.0"?>
    <project name="xfire" default="genfiles" basedir=".">
        <property name="lib" value="${basedir}/../WebRoot/WEB-INF/lib" />
        <path id="myclasspath">
            <fileset dir="${lib}">
                <include name="*.jar" /> 
            </fileset> 
            <pathelement location="${genfiles}" />
        </path>
     <!--${basedir}/../src表示放在src下面 -->
     <!--${basedir}/../../ssh/src表示放在另外一個工程(ssh)下的src下面 -->
     <!--${basedir}表示當前目錄-->
        <!--通過XFire ant任務生成客戶端代碼的存放位置-->
        <property name="code_path" value="${basedir}/../src" /> 
        <!--需要生成客戶端代碼的wsdl文件-->
        <property name="wsdl_path" value="http://localhost:8090/xfire/services/UserService?wsdl" />
        <!--生成客戶端代碼的包名-->
        <property name="code_package" value="com.mgj.xfiretext.webserver.client" />
       
        <!-- Remove classes directory for clean build -->
        <target name="clean" description="Prepare for clean build"> 
            <delete dir="${code_path}"/>
            <mkdir dir="${code_path}"/>
        </target>
       
        <!--<target name="genfiles" depends="clean" description="Generate the files">  -->
        <target name="genfiles" description="Generate the files">
            <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" />
            <!--outputDirectory屬性定義創建的代碼所在的文件夾
                wsdl是web服務的wsdl文件
                package代表創建的代碼的package
            -->
            <wsgen outputDirectory="${code_path}" wsdl="${wsdl_path}" package="${code_package}" binding="xmlbeans" /> 
        </target>
    </project>
    Spring 的配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
     <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />

     <bean id="userService"
      class="com.mgj.xfiretext.webserver.UserServiceImpl" />
     <bean id="addressingHandler"
      class="org.codehaus.xfire.addressing.AddressingInHandler" />

     <bean name="UserService"
      class="org.codehaus.xfire.spring.ServiceBean">
      <property name="serviceBean" ref="userServiceBean" />
      <property name="serviceClass"
       value="com.mgj.xfiretext.webserver.UserService" />
      <property name="inHandlers">
       <list>
        <ref bean="addressingHandler" />
       </list>
      </property>
     </bean>
     
     <bean id="userServiceBean"
      class="com.mgj.xfiretext.webserver.UserServiceImpl" />
    </beans>

    測試類:

    package test;

    import java.net.MalformedURLException;
    import org.codehaus.xfire.client.XFireProxyFactory;
    import org.codehaus.xfire.service.Service;
    import org.codehaus.xfire.service.binding.ObjectServiceFactory;
    import com.mgj.xfiretext.domain.User;
    import com.mgj.xfiretext.webserver.UserService;

    package test;

    import java.net.MalformedURLException;

    import org.apache.xmlbeans.XmlObject;
    import org.codehaus.xfire.client.XFireProxyFactory;
    import org.codehaus.xfire.service.Service;
    import org.codehaus.xfire.service.binding.ObjectServiceFactory;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;

    import com.zx.xfiretext.domain.User;
    import com.zx.xfiretext.webserver.UserService;
    import com.zx.xfiretext.webserver.client.UserServiceClient;
    import com.zx.xfiretext.webserver.client.UserServicePortType;

    /**
     *
     * MyClient.java test xfire
     *
     * @author magj mailto:m441748725@163.com 2008-10-17 下午06:00:05
     *
     */
    public class MyClient {
     public static void main(String[] args) {
      try {
       Service serviceModel = new ObjectServiceFactory()
         .create(UserService.class);
       UserService service = (UserService) new XFireProxyFactory().create(
         serviceModel,
         "http://localhost:8090/xfire/services/UserService");
       User user = service.queryUserByAccoutId("123");
       System.out
         .println("userId=" + user.getUserId() + ", userName="
           + user.getUserName() + ", lastLogin="
           + user.getLastLogin());
      } catch (MalformedURLException e) {
       e.printStackTrace();
      }

      UserServiceClient userServiceClient = new UserServiceClient();
      UserServicePortType userServicePortType = userServiceClient
        .getUserServiceHttpPort();
      XmlObject userXml = userServicePortType.queryUserByAccoutId("123");
      System.out.println(userXml.toString());
      Document userdocument = null;
      try {
       userdocument = DocumentHelper.parseText(userXml.toString());
       Element rootElement = userdocument.getRootElement();
       Element accountIdElement = rootElement.element("accountId");
       Element userIdElement = rootElement.element("userId");
       System.out.println("accountId: " + accountIdElement.getTextTrim()
         + "  userId:" + userIdElement.getTextTrim());
      } catch (DocumentException e) {
       e.printStackTrace();
      }
     }
    }

     

    說明:WEB服務器為TOMCAT,端口:8090.
    接下來,我們按照一下步驟來。
    (1)啟動TOMCAT
    (2)我們應當執行build.xml文件,因為是在ECLIPSE中開發,所以只要點擊【右鍵】之后,找到【ANT BUILD】選項,然后點擊。就會生成UserServiceClient.java、UserServiceImpl、UserServicePortType這個三個類。
    (3)執行測試類。
    我們就會看到結果:
    userId=123, userName=mgj, lastLogin=Sat Nov 01 17:27:50 CST 2008
    <out xmlns="http://webserver.xfiretext.zx.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <accountId xmlns="http://domain.xfiretext.zx.com">testAccount</accountId>
      <lastLogin xmlns="http://domain.xfiretext.zx.com">2008-11-01T17:27:51.343+08:00</lastLogin>
      <userId xmlns="http://domain.xfiretext.zx.com">123</userId>
      <userName xmlns="http://domain.xfiretext.zx.com">mgj</userName>
    </out>
    accountId: testAccount  userId:123

    說明:以上我也是根據網上前輩做的例子,在結合自己的一些實踐做出來的。
    posted on 2008-11-01 16:29 馬光軍 閱讀(405) 評論(0)  編輯  收藏 所屬分類: XFIRE

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 色婷婷亚洲十月十月色天| 九月丁香婷婷亚洲综合色| 91亚洲国产成人久久精品网址| 免费看少妇高潮成人片| 中文字幕精品亚洲无线码二区 | 免费人成黄页在线观看日本| 成人亚洲性情网站WWW在线观看| 免费国产高清毛不卡片基地| 国产91在线免费| 亚洲AV无码一区二区三区牲色| 日韩a在线观看免费观看| 亚洲欧美综合精品成人导航| 日韩毛片无码永久免费看| 国产精品亚洲专区无码唯爱网| 哒哒哒免费视频观看在线www| 亚洲成AV人片在WWW| 亚洲国产av无码精品| a级毛片免费在线观看| 亚洲AV成人无码久久精品老人 | 四虎免费影院4hu永久免费| 国产精品亚洲lv粉色| 亚洲高清最新av网站| 国内精品免费视频精选在线观看| 亚洲VA成无码人在线观看天堂| 国产好大好硬好爽免费不卡| 亚洲国产精品久久网午夜| 大陆一级毛片免费视频观看| jzzjzz免费观看大片免费| 亚洲网址在线观看你懂的| 免费无码黄十八禁网站在线观看| 国产成人亚洲毛片| 久久被窝电影亚洲爽爽爽| 国产人成免费视频网站| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲午夜福利精品久久| 亚洲免费在线视频| 亚洲欧美日韩中文二区| 国产成人精品日本亚洲网站| 全免费毛片在线播放| 久久www免费人成看国产片| 亚洲欧洲日产国码www|