簡體   English   中英

Axis2 Web服務-> PHP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM