xfire開發webservice

 

Myeclipse5.X支持xfire支持的非常棒。這裏講解一個簡單的例子,此文章爲引用文章,僅做保留,供學習參考使用。

一、服務端程序開發

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

 

 

 

 

 

 

 

 

 

 

點擊finish之後,myeclipse自動幫你生成services.xml以及web應用目錄結構,其中的services.xml是你導出服務的配置文件,注意在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、接下來,現在編寫要導出的pojo類,首先是接口:

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

 

 

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

 

 

3、在導航頁面中,輸入

web service name:HelloWorldTest

java package : services

services Interface : HelloWorldTestRemote

services impl.class : HelloWorldTestBean

其他的默認,點finish

 

 

最後可以看到Web Services   下面的services.xml的內容如下

<?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); 

}

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

HelloWorldTestRemote.java

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

package services;

public class HelloWorldTestBean implements HelloWorldTestRemote

{

    public String example(String message)

    {

        return "Hello:"+message;

    

}

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

到此爲止webServices編碼工作完成,現在開始部署到tomcat這裏省略。

部署好後可以測試下:

(1)查看可用的服務

http://localhost:8080/HelloWorld/services

(2)查看wsdl

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

 

二、客戶端應用程序開發

1、新建工程useWebService,並且建立client和services包

2、bulid path中導入,XFire 1.1 core libraries 和XFire 1.1 HTTP client libraries.

xfire開發webservice

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);

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

創建index.jsp,body部分

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

<form name="form1" action="say.jsp" method="POST">
您的大名:<input name="userName" type="text"/> <input value="提交" type="submit"/>
</form>

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

創建say.jsp,body部分

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

 

<%
String name=(String)request.getParameter("userName");
String result=new SayHello().say(name);
out.print(result);
%>
webService遠程調用結果: <%=result %>
------------------------------------------------------------------------
運行下測試!OK

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章