2012-05-11 4 views
-1

기본 PHP 함수 :가장 기본적인 PHP는 SOAP 요청

//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"; 
    } 
} 

나는 아주 간단한 뭔가 빠진해야하지만이를 이해할 필요로 구글과 다른 옵션을 소진 한 후 나는 같은 간단한 예를 찾을 수 없습니다. 복구 치명적인 오류 :

내 PHP는 오류가있는 클래스 stdClass의 객체가에서 문자열로 변환 할 수 없습니다 .. 등

그래서 나는로부터의 응답을 구문 분석해야 PHP에 뭔가가 있어야합니다 WSDL.

감사합니다. (WSDL이나 기타 리소스를 게시 할 수 있습니다.) 예 SOAP을 활성화하고 작동시키고 있습니다.


예 내 문제는 어떤 유형의 개체가 반환되는지입니다. 내 sayHello() 함수가 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 -not-b 전자로 변환 된 것 – 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']; 
}