maven에서 wsgen에 의해 생성 된 웹 서비스가 있습니다. Glassfish에 서비스를 배포하면 서버 URL이 WSDL에 저장됩니다. Google Glassfish 서버는 Apache 프록시 서버 옆에 있습니다. 누군가가 우리의 WSDL에 액세스하여 서비스 엔드 포인트를 살펴보고 그들이 볼 수있는 비누 주소 위치가Glassfish 생성 WSDL 서비스 끝점 주소 무시
http://app server url/service...
대신
http://proxy server url/service...
때
은 무엇이 모든 수단 것은 내가 약간의 설명이 필요 추측입니다 몇 가지 항목에 ...
이 끝점 주소는 중요합니까? 끝점 주소가 서비스를 호출하기 위해 호출 할 프록시 서버의 URL과 일치하지 않으면 클라이언트가 계속 작동 할 수 있습니까? 이것은 기본적으로 "은 인터페이스가 객체 인 웹 서비스에 대한 WSDL입니다."라는 질문을합니다.
UPDATE :은 "인터페이스로 웹 서비스에 WSDL은을 반대하는"것처럼 않습니다이 첫 번째 질문에 대한 응답. WSDL에 지정된 엔드 포인트 주소는 중요하지 않습니다. 사실, WSDL as described here에 지정된 것과 다른 엔드 포인트에서 웹 서비스 조작을 호출하는 것은 상대적으로 쉽지 않습니다. 우리는 글래스 피시에 배포 할 때
// Override the endpoint address ((BindingProvider)proxy).getRequestContext().put( BindingProvider.ENDPOINT_ADDRESS_PROPERTY, " http://new/endpointaddress "); proxy.sayHello("Hello World!");
WSDL에
// Create service and proxy from the generated Service class. HelloService service = new HelloService(); HelloPort proxy = service.getHelloPort();
이 자동으로 생성됩니다. 앱 서버 설정을 통해 Glassfish에서이 생성 된 끝점 주소를 재정의하는 쉬운 방법이 있습니까? 그렇다면 자동으로 프록시 서버 URL을 생성 된 WSDL에 배치하는 설정을 만들 수 있습니다.
1이 실제로 중요하며 2로 어떤 식 으로든 무시할 수 없다면 기본적으로 개발 및 생산을 위해 별도의 빌드를 수행해야합니다. 우리가 다른 서버에 배포하기 위해해야하는 유일한 일은 기존 환경 (테스트 한)을 한 환경에서 새 서버로 옮기는 것입니다.