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);
}
----------------------------------------------------------
----------------------------------------------------
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部分
----------------------------------------------------------------