-1

基本的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'];
}
4

1 回答 1

0

我知道这很简单,只是一个愚蠢的 PHP 错误,距离我上次使用 PHP 已经太久了:

//SOAP CALL
function sayHello(){
    $client = new SoapClient('http://Server:8080/MyClassService/MyClass?WSDL');
    $response = (array) $client->glassfishHello();      
    return $response['return'];
}
于 2012-05-14T17:26:37.120 回答