JAX-WS를 가리키는 umpteen 스레드가 제안한 것처럼 클라이언트에서 스텁을 생성하지 않고 SOAP 기반 스프링 웹 서비스를 사용할 방법이 있습니까?자바 서블릿에서 SOAP (Consuming Spring) 웹 서비스
나는이 웹 응용 프로그램을이, 봄 지원을 둘 APP1 & APP2을 말 :
여기 내 완벽한 시나리오입니다. APP2는 POJO (Reqeust 및 Response 객체)를 통해 Spring-WS로 API를 제공합니다. 비누. 이제 APP1에서 이러한 웹 서비스를 호출하려고하지만 WSDL frmo APP2를 사용하여 스텁을 작성하지 않아도됩니다. 이것이 가능한가? 당신이 볼 수있는 웹 서비스 방법은 CreateNewReqRequest을 받아 CreateNewReqResponse를 반환 지금
@PayloadRoot(localPart = "CreateNewRequest", namespace = "myNameSpace")
public CreateNewReqResponse createNewRequest(CreateNewReqRequest requestObj) throws Exception
{
NewCase newCase = this.localSpringService.createNewCase(requestObj.getParam1(), requestObj.getParam2());
CreateNewReqResponse response = this.objectFactory.createCreateNewReqResponse();
CreateNewReqResponseObject responseObject = this.objectFactory
.createCreateNewReqResponseObject();
if(null != newCase)
{
responseObject.setParam1(newCase.getParam1());
responseObject.setParam2(newCase.setParam2());
}
responseObject.setCaseRequestedDate(caseRequestedDate);
}
response.setResponseObject(responseObject);
return response;
}
:
은 자세한 내용을 보려면 여기를 내 웹 서비스의 작동 중 하나입니다. 내가 알아 내려고하는 것은 어떻게 App1에서이 웹 서비스를 호출 할 수 있는가하는 것입니다.이 클래스는 CreateNewReqRequest와 CreateNewReqResponse 클래스에 대한 단서가 없습니다. JAX-WS를 사용하여 APP1 (WSDL에서)에 스텁을 만드는 것 외에 다른 방법이 있습니까?
문제의 두 응용 프로그램 모두 자체적으로 개발되었지만 다른 서버에서 실행됩니다. 그 이유는 APP1이 웹 서비스를 직접 호출 할 수 없기 때문입니다 (상호 도메인 정책). 따라서 APP2에 노출 된 웹 서비스를 사용하는 서블릿을 APP1에 작성합니다.
안녕하세요. 감사. 전 완전히 당신의 요점에 동의하지만, 내 관심사는이 접근 방식으로 내 APP2에서 제공하는 WSDL이 변경되면 APP1에서 스텁을 다시 만들어야 할 필요가 없다는 것입니다. APP2를 변경할 때 알 수 있기 때문에 제 시나리오에서는 괜찮을 수 있습니다.하지만 제 3 자 웹 서비스를 사용할 때 어떤 일이 발생합니까? 그들이 WSDL을 변경하면 다시 스텁을 다시 만들어야합니다. 그렇지 않습니까? 내가 좋아하는지 잘 모르겠다. 왜 POJO에 그런 의존성이 존재 하는가? SOAP을 사용하는 스프링 웹 서비스의 단점입니까? 아니면 RESTful에서도 동일 할 것인가? – legendofawesomeness
Nitin, 귀하의 질문에 대한 답변으로 위의 편집을 참조하십시오. –
그래, 많은 것들을 지 웁니다 :) 감사합니다. – legendofawesomeness