基本的PHP函数:
//SOAP CALL
function sayHello(){
$client = new SoapClient('http://Server:8080/MyClassService/MyClass?WSDL');
$response = $client->glassfishHello();
return $response;
}
(后来我将 sayHello() 作为字符串调用,这就是错误所在)
基本 EJB 提供的 JAX-WS:
@WebService
@Stateless
public class MyClass{
@WebMethod(operationName="glassfishHello")
public String glassfishHello(){
return "Hello from GlassFish";
}
}
我一定遗漏了一些非常简单的东西,但是在用尽了 google 和其他选项之后,我找不到像我需要理解的那样简单的例子。
我的 Php 出现错误:可恢复的致命错误:stdClass 类的对象无法转换为字符串等。
所以我必须在 PHP 中做一些事情来解析来自 WSDL 的响应。
谢谢!(我可以发布 WSDL 或任何其他资源)是的,我确实启用了 SOAP 并且可以正常工作。
是的,我的问题是返回的是什么类型的对象。我希望我的 sayHello() 函数返回一个字符串。如果我投 $response = (string).. 那么我有错误。
回答: 我知道这很简单,只是一个愚蠢的 PHP 错误,我上次使用 PHP 已经太久了:
//SOAP CALL
function sayHello(){
$client = new SoapClient('http://Server:8080/MyClassService/MyClass?WSDL');
$response = (array) $client->glassfishHello();
return $response['return'];
}