日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

XFire WebService demo

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XFire WebService demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

XFire創建WebService實例應用

?

? XFire使得在JavaEE應用中發布Web服務變得輕而易舉。和其他Web服務引擎相比,
??XFire的配置非常簡單,可以非常容易地和Spring集成。
??下載地址:http://xfire.codehaus.org/Download。

?

???一.?使用XFire發布WebService


?? 1.?創建service接口?

?

Java代碼??
  • ?package?com.test.service;??
  • ?import?com.test.service.bean.User;??
  • ???
  • ?public?interface?IHelloService?{??
  • ????public?String?sayHello(String?name);??
  • ????public?User??getUser(User?user);??
  • ????}??
  • }??
  • ??2.創建Service接口的實現類

    Java代碼??
  • package?com.test.service;??
  • import?com.test.service.bean.User;??
  • public?class?HelloService?implements?IHelloService{???
  • ????public?String?sayHello(String?name){??
  • ????????return?"Hello,?"+name;??
  • ????}??
  • ????public?User?getUser(User?user)?{??
  • ????????User?userNew?=?new?User();??
  • ????????userNew.setId("new:"+user.getId());??
  • ????????userNew.setName("new:"+user.getName());??
  • ????????return?userNew;??
  • ????}??
  • }??
  • ??

    Java代碼??
  • package?com.test.service.bean;??
  • public?class?User?{???????
  • ????private?String?id;??
  • ????private?String?name;??????
  • ????public?String?getId()?{??
  • ????????return?id;??
  • ????}??
  • ????public?void?setId(String?id)?{??
  • ????????this.id?=?id;??
  • ????}??
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ????public?void?setName(String?name)?{??
  • ????????this.name?=?name;??
  • ????}??
  • }??
  • ?

    3.在web.xml文件中進行XFire攔截配置,可參照官網提供的sample。

    Xml代碼??
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <web-app?version="2.4"?xmlns="http://java.sun.com/xml/ns/j2ee"??
  • ???xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
  • ???xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee???
  • ???http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">??
  • ??
  • <servlet>??
  • ????<servlet-name>XFireServlet</servlet-name>??
  • ????<servlet-class>??
  • ????????org.codehaus.xfire.transport.http.XFireConfigurableServlet??
  • ????</servlet-class>??
  • </servlet>??
  • <servlet-mapping>??
  • ????<servlet-name>XFireServlet</servlet-name>??
  • ????<url-pattern>/servlet/XFireServlet/*</url-pattern>??
  • </servlet-mapping>??
  • <servlet-mapping>??
  • ????<servlet-name>XFireServlet</servlet-name>??
  • ????<url-pattern>/services/*</url-pattern>??
  • </servlet-mapping>??
  • </web-app>??
  • ?4.在class目錄下建立META-INF目錄,如(META-INF>xifre->services.xml),
    ??? 在services.xml文件中進行webservice服務的發布,可參照官網提供的sample。?

    Xml代碼??
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <beans?xmlns="http://xfire.codehaus.org/config/1.0">??
  • <service>??
  • ????<name>HelloService</name>??
  • ????<serviceClass>com.test.service.IHelloService</serviceClass>??
  • ????<implementationClass>com.test.service.HelloService</implementationClass>??
  • </service>??????
  • </beans>??
  • ?

    5.將xfire的Jar包和相關依賴包拷到系統應用中,在Tomcat下部署應用。
    ?? 啟動tomcat后訪問服務(需在應用后加上/services,webservice才會進行攔截):
    ?? 例:http://localhost:8080/ws2/services。(IE下有時無法顯示列表,可用其它瀏覽器顯示或指定接口名稱)
    ?? 界面如下:???

    ?

    ?點擊后查看詳細的wsdl文檔,不同的瀏覽器下訪問會有區別,展示效果不一致。

    ?

    ?

    ?? 二.建立XFire客戶端進行調用

    ??

    ????1.本地客戶端調用,與webservice服務在同一應用。

    Java代碼??
  • package?com.test.client;??
  • ??
  • import?java.net.MalformedURLException;??
  • import?org.codehaus.xfire.XFireFactory;??
  • import?org.codehaus.xfire.client.XFireProxyFactory;??
  • import?org.codehaus.xfire.service.Service;??
  • import?org.codehaus.xfire.service.binding.ObjectServiceFactory;??
  • import?com.test.service.IHelloService;??
  • import?com.test.service.bean.User;??
  • ??
  • public?class?ClientTest?{??
  • ????public?static?void?main(String?args[])?throws?MalformedURLException?{??
  • ????????Service?service?=?new?ObjectServiceFactory().create(IHelloService.class);??
  • ????????XFireProxyFactory?factory?=?new?XFireProxyFactory(XFireFactory??
  • ????????????????.newInstance().getXFire());??
  • ????????String?url?=?"http://localhost:8080/ws2/services/HelloService";??
  • ????????IHelloService?helloService?=?(IHelloService)?factory.create(service,url);??
  • ????????System.out.println(helloService.sayHello("張三"));??
  • ????????User?user?=?new?User();??
  • ????????user.setName("張三");??
  • ????????System.out.println(helloService.getUser(user).getName());??
  • ????}??
  • }??
  • ?
    ???? 執行結果如下:

    Java代碼??
  • Hello,?張三??
  • new:張三??
  • ?

    ???2. 利用XFire創建build.xml文件生成客戶端代碼調用webservice服務

    ??

    ??? ?2.1在src目錄下創建build.properties文件,配置如下:

    Java代碼??
  • src.dir=${basedir}??
  • lib.dir=D:/myspace/ws2/WebRoot/WEB-INF/lib??
  • wsdl.dir=http\://localhost\:8080/ws2/services/HelloService?wsdl??
  • ?

    ??? ?2.2在src目錄下創建build.xml文件,配置如下:

    Xml代碼??
  • <?xml?version="1.0"?encoding="UTF-8"?>??
  • <project?name="WebService"?basedir="."?default="gen-webservice">??
  • ????<property?file="build.properties"></property>??
  • ????<path?id="project-classpath">??
  • ????????<fileset?dir="${lib.dir}">??
  • ????????????<include?name="**/*.jar"?/>???
  • ????????</fileset>??
  • ????</path>??
  • ??
  • ????<target?name="gen-webservice">??
  • ????????<taskdef?name="wsgen"?classname="org.codehaus.xfire.gen.WsGenTask"???
  • ?????????????????????????????????????????????classpathref="project-classpath"?/>??
  • ????????<wsgen?outputDirectory="${src.dir}"??wsdl="${wsdl.dir}"???
  • ????????????????????package="stub.test.client"?overwrite="true"/>??????????
  • ????</target>??
  • </project>??
  • ????

    ?????用ant構建生成代碼,生成后的目錄如下:

    ?

    ?

    ?

    ?????2.3編寫客戶端代碼進行調用

    Java代碼??
  • package?com.test.client;??
  • import?stub.test.client.HelloServiceClient;??
  • import?stub.test.client.HelloServicePortType;??
  • import?com.test.service.bean.ObjectFactory;??
  • import?com.test.service.bean.User;??
  • ??
  • public?class?HelloServiceTest?{??
  • ??
  • ????public?static?void?main(String?args[]){??
  • ????????HelloServiceClient?service?=?new?HelloServiceClient();????????
  • ????????HelloServicePortType?portType?=?service.getHelloServiceHttpPort();????????????
  • ????????System.out.println(portType.sayHello("張三"));??
  • ??????????
  • ????????ObjectFactory?factory?=?new?ObjectFactory();??????????
  • ????????User?user?=?factory.createUser();??
  • ????????user.setName(factory.createUserName("張三"));??
  • ????????System.out.println(portType.getUser(user).getName().getValue());??
  • ????}??
  • }??
  • ?

    ??? 執行結果如下:

    Java代碼??
  • Hello,?張三??
  • new:張三 ?
  • 原文:http://linshow26.iteye.com/blog/2004080

    轉載于:https://www.cnblogs.com/sdream/p/5887913.html

    總結

    以上是生活随笔為你收集整理的XFire WebService demo的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。