Java, Only Java!

          統(tǒng)計(jì)

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評(píng)論排行榜

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

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

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

          1 、首先建立一個(gè)web service工程

          點(diǎn)擊finish之后,myeclipse自動(dòng)幫你生成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),點(diǎ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.jsp,body部分

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

          <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 %>

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

          運(yùn)行下測試!OK

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 金湖县| 莱阳市| 浠水县| 兖州市| 临夏县| 潜山县| 清镇市| 阿城市| 那坡县| 东乡族自治县| 丰台区| 万宁市| 花莲市| 保德县| 台州市| 灯塔市| 西丰县| 伊宁县| 伊宁市| 嘉黎县| 应城市| 巩留县| 定结县| 慈利县| 原平市| 革吉县| 常熟市| 彰化县| 东山县| 泰来县| 水富县| 宁海县| 保靖县| 河东区| 闽清县| 雷山县| 岳普湖县| 新余市| 嘉祥县| 石城县| 通城县|