[英]Axis2 Webservice -> php
如果我理解Axis2正確,則可以構造一個WebService,然后使用任何SOAP兼容客戶端訪問它。
我有一個Java類,其中包含一些用Eclipse寫的方法,然后使用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界面已識別出我的服務方法時,該代碼似乎可以正常工作。 但是,當我嘗試使用soapClient內置的PHP接收參數的方法時,我遇到了Unknown異常。 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中工作,那將是很好的。
似乎__soapCall方法采用帶有數組的數組。
所以我認為
print_r($client->__soapCall("test",array($ar)));
有效,至少可以與JAX-WS一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.