WebServiceインスタンス1

16744 ワード


一.まずeclipseでwebプロジェクトを作成し、storeと名付けます.
WebService实例一_第1张图片
二.私がダウンロードしたxfireフォルダの下のlibフォルダをインポートするすべてのパッケージにはxfire-all-1.2.6があります.JArパッケージ
xfireのダウンロードアドレス:http://xfire.codehaus.org/Download
WebService实例一_第2张图片
三.環境が整った.コードを書き始めました.
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://<サーバ>[:ポート]//services/BookServicesでこのWebServiceにアクセスできます.アドレス:http://<サーバ>[:ポート]//services/BookService?WSDLはこのWebServiceのWSDL情報を入手します.
四.提供するサービスインタフェースクラスと実装クラスを書きます.
まずインタフェースを書いて、このインタフェースはサーバーにあなたの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にエンジニアリング実行を配置します. 
  
WebService实例一_第3张图片
あるいはtomcatインストールディレクトリの下にconfフォルダを直接見つけてserverを開く.xml、ラベルの前にこの言葉を付けます
WebService实例一_第4张图片
docBaseは工事の所在の経路で、あなたの工事によって修正しましょう.
次にtomcatを起動し、ブラウザを開き、次のように入力します.http://localhost:8080/store/services
表示されます
WebService实例一_第5张图片
 
君が成功したことを示している.
 
 
六.最後の一歩です.書き込みクライアント
/**   
* @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();

}
}
}

実行結果は
WebService实例一_第6张图片