天天看點

xfire開發webservice

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

一、服務端程式開發 1、首先建立一個web service工程

xfire開發webservice
xfire開發webservice
xfire開發webservice
xfire開發webservice

點選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

xfire開發webservice

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

xfire開發webservice
3、在導航頁面中,輸入

web service name:HelloWorldTest

java package : services

services Interface : HelloWorldTestRemote

services impl.class : HelloWorldTestBean

其他的預設,點finish

xfire開發webservice

最後可以看到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); 

}

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

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

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.

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;

    }

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

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

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部分

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