2012-05-11 2 views
-1

Basic PHP функция:Большинство основных Php SOAP запрос от EJB

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

(позже я называю SayHello() в виде строки, и где ошибка)

Basic 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() возвращала 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']; 
} 
+0

http://stackoverflow.com/questions/5032687/php-catchable-fatal-error-object-of-class-stdclass-could -на-б e-convert-to-s – kosa

+0

'$ response' будет объектом, а не строкой. Я подозреваю, что вы обрабатываете возвращаемое значение 'sayHello()' как строку в коде, который вы не показывали. – MrCode

+0

Вы знаете, что вполне приемлемо ответить на ваш собственный вопрос? – Kev

ответ

0

Я знал, что это было просто, просто немой PHP ошибка, это было слишком долго, так как я использовал PHP последний:

//SOAP CALL 
function sayHello(){ 
    $client = new SoapClient('http://Server:8080/MyClassService/MyClass?WSDL'); 
    $response = (array) $client->glassfishHello();  
    return $response['return']; 
} 
Смежные вопросы