새 프로젝트의 경우 JAX-WS RI를 사용하여 Java에서 웹 서비스를 작성하고 웹 서비스 클라이언트의 경우 PHP를 사용하고자합니다. 서버를 시작 및 URL과 WDSL을 검색Java JAX-WS RI (Webservice)에서 PHP SoapClient 사용
package webservice;
import javax.xml.ws.Endpoint;
import webservice.Calculator;
public class CalculatorServer {
public static void main(String args[]) {
Calculator server = new Calculator();
Endpoint endpoint = Endpoint.publish("http://localhost:8080/calculator", server);
}
}
:
package webservice;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
@WebService
@SOAPBinding(style = Style.RPC)
public class Calculator {
public long addValues(int val1, int val2) {
return val1 + val2;
}
}
및 웹 서버 :이 예를 들어 웹 서비스를 발견 JAX-WS RI에 대한 작은 튜토리얼에서는
"http://localhost:8080/calculator?wsdl"은 완벽하게 작동합니다. 그러나 PHP에서 웹 서비스를 호출하는 것은 실패합니다.
내 아주 간단한 PHP 호출은 다음과 같습니다
$client = new SoapClient('http://localhost:8080/calculator?wsdl', array('trace' => 1));
echo 'Sum: '.$client->addValues(4, 5);
그러나 I 중 하나 "치명적인 오류 : 초과 60 초 최대 실행 시간 ..."GET 또는 "catch되지 않은 SOAPFault의 예외 : [WSDL ] SOAP-ERROR : WSDL 구문 분석 : 'http://localhost:8080/calculator?wsdl'... '예외에서로드 할 수 없습니다.
나는 다른 웹 서비스로 PHP SoapClient()를 테스트했으며 문제없이 작동합니다. PHP와 함께 JAX-WS RI에 알려진 문제점이 있습니까? 아니면 보지 못한 웹 서비스에 오류가 있습니까?
나는 this bug report을 찾았지만 PHP 5.3.2로 업데이트해도 문제가 해결되지 않았습니다.
아무에게 말해 줄 수 있습니까? 그건 그렇고, 내 자바 버전은 다음 윈도우 7의 x64에 실행 :
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)
정말 대단합니다. "localhost"또는 "127.0.0.1"이 시간 초과 된 file_get_contents(). 둘 다 성공한 컬. 그리고 "localhost"가 시간 초과되었지만 "127.0.0.1"인 SoapClient()가 성공합니다. 문제가 어디 있는지 (XAMPP Apache 구성 또는 호스트 파일에있을 수 있음) 이해가되지 않지만 지금은 작동 방법을 알고 있습니다. 감사합니다. – 2ndkauboy