Java, Only Java!

          統(tǒng)計

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評論排行榜

          webservice-之使用xfire開發(fā)(轉(zhuǎn)自勇哥的BLOG)

          Myeclipse5.X 支持xfire支持的非常棒。這里講解一個簡單的例子,此文章為引用文章,僅做保留,供學(xué)習(xí)參考使用。

          一、服務(wù)端程序開發(fā)

          1 、首先建立一個web service工程

          點擊finish之后,myeclipse自動幫你生成services.xml以及web應(yīng)用目錄結(jié)構(gòu),其中的services.xml是你導(dǎo)出服務(wù)的配置文件,注意在WEB-INF/web.xml文件中配置了xfire自己的:

          Servlet 代碼

          <servlet>?

          ?<servlet-name>XFireServlet</servlet-name>?? <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> ?

          ?<load-on-startup>0</load-on-startup>?

          </servlet>?

          <servlet-mapping>?

          ?<servlet-name>XFireServlet</servlet-name>?

          ?<url-pattern>/services/*</url-pattern>?

          </servlet-mapping>?

          ?

          2 、接下來,現(xiàn)在編寫要導(dǎo)出的pojo ,首先是接口:

          過程:File>New>Other>MyEclipse>Web Service

          選擇:Create web service from Java bean,把Create new javabean也勾上

          3 、在導(dǎo)航頁面中,輸入

          web service name:HelloWorldTest

          java package : services

          services Interface : HelloWorldTestRemote

          services impl.class : HelloWorldTestBean

          其他的默認(rèn),點finish

          最后可以看到Web Services?? 下面的services.xml的內(nèi)容如下

          <?xml version="1.0" encoding="UTF-8"?>

          <beans xmlns="http://xfire.codehaus.org/config/1.0">

          ??? <service>

          ??????? <name>HelloWorldTest</name>

          ??????? <serviceClass>services.HelloWorldTestRemote</serviceClass>? ??? <implementationClass>services.HelloWorldTestBean</implementationClass>

          ??????? <style>wrapped</style>

          ??????? <use>literal</use>

          ??????? <scope>application</scope>

          ??? </service>

          </beans>

          4 services包中的文件

          HelloWorldTestRemote.java

          -----------------------------------------------

          package services;

          public interface HelloWorldTestRemote

          {??

          ??? public String example(String message);?

          }

          ----------------------------------------------------------

          HelloWorldTestImpl.java

          ----------------------------------------------------

          package services;

          public class HelloWorldTestBean implements HelloWorldTestRemote

          {

          ??? public String example(String message)

          ??? {

          ??????? return "Hello:"+message;

          ??? }??

          }

          ------------------------------------------------------------

          到此為止webServices編碼工作完成,現(xiàn)在開始部署到tomcat這里省略。

          部署好后可以測試下:

          1)查看可用的服務(wù)

          http://localhost:8080/HelloWorld/services

          2)查看wsdl

          http://localhost:8080/HelloWorld/services/HelloWorldTest?wsdl

          ?

          /////////////////////////////////////////////////////////////////////////////

          /////////////////////////////////////////////////////////////////////////////

          二、客戶端應(yīng)用程序開發(fā)

          1 、新建工程useWebService,并且建立clientservices

          2 bulid path中導(dǎo)入,XFire 1.1 core librariesXFire 1.1 HTTP client libraries.

          SayHello.java

          ----------------------------------------

          package 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 services.HelloWorldTestRemote;

          public class SayHello

          {

          ??? public String say(String name)

          ??? {

          ??????? String result = "";

          Service srvcModel = new ObjectServiceFactory().create(HelloWorldTestRemote.class);

          ??????? XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());

          ??????? String helloWorldURL = "http://localhost:8080/HelloWorld/services/HelloWorldTest";

          ??????? try

          ??????? {

          ??????????? HelloWorldTestRemote srvc = (HelloWorldTestRemote) factory.create(srvcModel, helloWorldURL);

          ??????????? result = srvc.example(name);

          ??????????? System.out.println(result);

          ??????? }

          ??????? catch (MalformedURLException e)

          ??????? {

          ??????????? e.printStackTrace();

          ??????? } finally

          ??????? {

          ??????????? return result;

          ??????? }

          ??? }

          }

          --------------------------------------------------------------

          HelloWorldTestRemote.java

          ---------------------------------------------------------------

          package services;

          ?

          public interface? HelloWorldTestRemote

          {

          ??? public String example(String message);

          }-----------------------------------------------------------------

          創(chuàng)建index.jspbody部分

          -----------------------

          <form name="form1" action="say.jsp" method="POST">

          您的大名:<input name="userName" type="text"/> <input value="提交" type="submit"/>

          </form>

          -------------------------------

          創(chuàng)建say.jsp,body部分

          ----------------------------------------------------------------

          <%

          String name=(String)request.getParameter("userName");

          String result=new SayHello().say(name);

          out.print(result);

          %>

          webService 遠(yuǎn)程調(diào)用結(jié)果: <%=result %>

          ------------------------------------------------------------------------

          運行下測試!OK

          posted on 2008-03-03 09:53 zYx.Tom 閱讀(1295) 評論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 明光市| 安图县| 东乡县| 沿河| 杂多县| 孝感市| 武强县| 四川省| 金秀| 天台县| 金堂县| 长子县| 本溪市| 开化县| 南城县| 泰宁县| 西乌珠穆沁旗| 苏州市| 闽清县| 长乐市| 汉沽区| 昭觉县| 泌阳县| 兴隆县| 英超| 平塘县| 庐江县| 道真| 绩溪县| 定日县| 九龙县| 调兵山市| 双柏县| 三门县| 大冶市| 双桥区| 玉门市| 霍城县| 苗栗市| 化隆| 长阳|