2010-08-27 67 views
0

我嘗試使用nusoap調用servise。 服務最初是用Java編寫的,需要一個java對象作爲輸入。 我應該如何構建輸入以使php接受它? 目前的服務並不瞭解以下方法(自以爲輸入爲空):nusoap(php)+ java對象作爲輸入

$obj = (object) array('param1_name' => 'value1', 'param2_name' => 'value2', ..); 

$obj = (object) array('value1', value2,...); 

$obj = (object) array('String_1' => 'value1', 'Long_1' => value2, ...); 

我已嘗試以下方法,以及:

http://www.php.net/manual/en/book.soap.php#83409

回答

0

如果遠程服務使用SOAP你有一個wsdl,那麼它應該工作。但是你說,服務需要一個Java對象。這聽起來像RMI(遠程方法調用),在這種情況下,你將無法使用nusoap而不是PHP。在這種情況下,服務需要序列化的Java對象(不是XML),並且(通常)只有Java可以創建和讀取它們。


SOAP協議通常會交換XML文檔。因此,服務器是否以Java實現並不重要。數據格式是在wsdl包含或引用的xml模式中定義的。

一個用SOAP webservices'玩'的非常好的工具是soapUI。通過soapUI,您可以使用文本編輯器編寫請求並查看原始響應。您應該安裝並在服務中使用它。


延伸閱讀:

+0

它使用肥皂和具有WSDL。通過'需要wsdl'我的意思是服務最初是用Java創建的,我們使用的方法是將一些java對象作爲輸入。我不確定它是否扮演調用服務的角色。 無論如何,如前所示構建輸入不起作用,輸入仍爲空。 你可以給一些建議,對象的結構應該是什麼樣子?只是數組(值),數組(object_param_names =>值),數組(object_param_types =>值),PHP對象具有相同的結構或...? – Anastassia 2010-08-27 13:03:38