WebServiceインスタンス1
16744 ワード
一.まずeclipseでwebプロジェクトを作成し、storeと名付けます.
二.私がダウンロードしたxfireフォルダの下のlibフォルダをインポートするすべてのパッケージにはxfire-all-1.2.6があります.JArパッケージ
xfireのダウンロードアドレス:http://xfire.codehaus.org/Download
三.環境が整った.コードを書き始めました.
Webでxmlファイルの下に入力
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
主にXFireServiceletが導入されており、Webサービス要求を処理し、Webサービスを提供するWSDLを担当しています.BookServicesというWebServiceをリリースした場合は、http://<サーバ>[:ポート]/
四.提供するサービスインタフェースクラスと実装クラスを書きます.
まずインタフェースを書いて、このインタフェースはサーバーにあなたのWebServiceのどの方法がユーザーに呼び出されることができるかを教えます.
public interface SayHiService {
public String sayHi(String name);
}
次に、インタフェースの実装クラスを書きます.
/**
* @Title: SayHiServiceImpl.java
* @Package com.chaowen.study
* @Description: TODO( )
* @author chaowen
* @date 2011-9-8 11:41:04
* @version V1.0
*/
package com.chaowen.study;
/**
* @ClassName: SayHiServiceImpl
* @Description:
* @author chaowen
* @date 2011-9-8 11:41:04
*
*/
public class SayHiServiceImpl implements SayHiService {
/**
* WebService
*/
@Override
public String sayHi(String name) {
if(name == null){
return " ";
}
return name+", ? 。";
}
/**
* SayHiService , WebService
*/
public String (){
return " !";
}
}
五.プロジェクトをWebServiceに公開
直接eclipseにエンジニアリング実行を配置します.
あるいはtomcatインストールディレクトリの下にconfフォルダを直接見つけてserverを開く.xml、ラベルの前にこの言葉を付けます
docBaseは工事の所在の経路で、あなたの工事によって修正しましょう.
次にtomcatを起動し、ブラウザを開き、次のように入力します.http://localhost:8080/store/services
表示されます
君が成功したことを示している.
六.最後の一歩です.書き込みクライアント
/**
* @Title: SayHiClient.java
* @Package com.chaowen.study
* @Description: TODO( )
* @author chaowen
* @date 2011-9-9 12:20:25
* @version V1.0
*/
package com.chaowen.study;
import java.net.MalformedURLException;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;
/**
* @ClassName: SayHiClient
* @Description: webService
* @author chaowen
* @date 2011-9-9 12:20:25
*
*/
public class SayHiClient {
public static void main(String[] args) {
String serviceURL = "http://localhost:8080/store/services/SayHiService";
// service
// Service serviceModel = new ObjectServiceFactory().create(SayHiService.class,null,"http://cn.com.pansky/SayHiService",null);
Service serviceModel = new ObjectServiceFactory().create(SayHiService.class);
XFireProxyFactory serviceFactory = new XFireProxyFactory();
try{
SayHiService service = (SayHiService) serviceFactory.create(serviceModel, serviceURL);
Client client = Client.getInstance(service);
//client.addOutHandler(new OutHeaderHandler());
// disable timeout
// client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "1");
String hello = service.sayHi(" ");
System.out.println(" [ ] :" + hello );
hello = service.sayHi(null);
System.out.println(" :" + hello );
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
実行結果は