来自EJB的最基本的Php SOAP请求

时间:2012-05-11 18:50:35

标签: java php soap wsdl ejb

基本的PHP函数:

//SOAP CALL
function sayHello(){
    $client = new SoapClient('http://Server:8080/MyClassService/MyClass?WSDL');
    $response = $client->glassfishHello();
    return $response;   
}

(后来我把sayHello()称为String,这就是错误所在的地方)

基本EJB提供了JAX-WS:

@WebService
@Stateless
public class MyClass{
  @WebMethod(operationName="glassfishHello")
  public String glassfishHello(){
    return "Hello from GlassFish";
  }
}

我必须遗漏一些非常简单的东西但是在谷歌和其他选项耗尽之后,我找不到一个简单的例子,因为我需要理解这一点。

我的Php有错误:可恢复的致命错误:类stdClass的对象无法转换为..等等。

因此,我必须要在PHP中解析来自WSDL的响应。

谢谢! (我可以发布WSDL或任何其他资源) 是的我确实启用了SOAP并且正在工作。


是的,我的问题是返回什么类型的对象。我希望我的sayHello()函数返回一个String。如果我施放$ response =(string)..那么我就有错误。


解答: 我知道这很简单,只是一个愚蠢的PHP错误,自从我最后使用PHP以来已经太久了:

//SOAP CALL
function sayHello(){
    $client = new SoapClient('http://Server:8080/MyClassService/MyClass?WSDL');
    $response = (array) $client->glassfishHello();      
    return $response['return'];
}

1 个答案:

答案 0 :(得分:0)

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

//SOAP CALL
function sayHello(){
    $client = new SoapClient('http://Server:8080/MyClassService/MyClass?WSDL');
    $response = (array) $client->glassfishHello();      
    return $response['return'];
}