JavaでXFireを利用したWebServiceインターフェースの呼び出し方

XFireでWeb サービス インターフェイスを呼び出す手順:

  1. XFireの依存関係を追加する
<dependency>
    <groupId>org.codehaus.xfire</groupId>
    <artifactId>xfire-core</artifactId>
    <version>1.2.6</version>
</dependency>
  1. XFireのServiceオブジェクトを作成
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;

Service serviceModel = new ObjectServiceFactory().create(serviceClass, serviceName, namespace, endpoint);
XFire xfire = XFireFactory.newInstance().getXFire();
serviceModel.setProperty(CommonsHttpMessageSender.HTTP_CLIENT, new HttpClient());
Client client = new Client(serviceModel, xfire.getTransportManager(), xfire.getBindingProvider());
  1. WebサービスのURLを設定する
client.setUrl("http://localhost:8080/mywebservice");
  1. Webサービスのメソッドを呼び出す
Object[] result = client.invoke(operationName, params);

ネイティブな日本語でパラフレーズするには、以下のようにします。

import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;
import org.apache.commons.httpclient.HttpClient;

public class XFireWebServiceClient {
    public static void main(String[] args) throws Exception {
        // 创建WebService的Service对象
        Service service = new ObjectServiceFactory().create(ServiceInterface.class, "service", "http://localhost:8080/Service", null);
        
        // 创建XFire对象
        XFire xfire = XFireFactory.newInstance().getXFire();
        
        // 创建WebService的Client对象
        Client client = new Client(service, xfire.getTransportManager(), xfire.getBindingProvider());
        
        // 设置WebService的地址
        client.setUrl("http://localhost:8080/mywebservice");
        
        // 调用WebService的方法
        Object[] result = client.invoke("operationName", new Object[]{"param1", "param2"});
    }
}

WebServiceのインターフェイスを呼び出す前に、WebServiceのアドレス、名前空間、インターフェイス名、メソッド名が正しいことを確認する必要があります。

bannerAds