Axis2が正しいことを理解していれば、WebServiceを構築して、SOAP互換クライアントでアクセスできます。
Eclipseで記述したいくつかのメソッドを持つJavaクラスがあり、WTPからAxis2プラグインを使用してサービスを自動的に構築しました。
これが私のクラスのメソッドです。
public int test(int i){
return i+2;
}
public Car CarTest(int speed){
return new Car("Biltest", speed);
}
public CarFactoryAdapter getCarFactory(){
carFact.getCars().add(new Car("Bmw", 250));
carFact.getCars().add(new Car("seat", 350));
carFact.getCars().add(new Car("saab", 150));
carFact.getCars().add(new Car("volv", 50));
return new CarFactoryAdapter(carFact);
}
このコードは、soapUIで試してみると機能しているようで、Axis2-webインターフェースが私のサービスのメソッドを認識しています。しかし、PHPが組み込まれているsoapClientでパラメーターを受け取るメソッドを試していると、不明な例外が発生します。getCarFactoryメソッドは少なくとも期待どおりに機能しますが、パラメーターを送信できない場合は、機能が低下しているように見えます。
動作しないメソッド呼び出しの例。
ini_set('soap.wsdl_cache_ttl',0);
$client = new SoapClient("http://192.168.128.162:8080/ComplexWebService/services/CarService?wsdl", array('soap_version' => SOAP_1_2, 'trace' => 1));
$ar['i'] = (int)100;
print_r($client->__soapCall("test",$ar));
私が選択したSOAフレームワークが多くのプラットフォームと通信できることを確認する必要があります。少なくとも、PHPとJavaのクライアントが存在しますが、たとえば.NETで動作するのは良いことです。