Если я правильно понял Axis2, я могу создать WebService, а затем получить к нему доступ с помощью любого SOAP-совместимого клиента.
У меня есть класс Java с парой методов, которые я написал в Eclipse, а затем автоматически создал сервис с помощью плагина Axis2 из WTP.
Это методы моего класса.
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 распознал методы моего сервиса. Но когда я пробую методы, которые получают параметры с помощью встроенного в soapClient PHP, я получаю неизвестное исключение. Методы 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, но было бы хорошо, если бы он работал, например, на.