2016-08-25 10 views
0

jaxws 2.2 사양은 에있는 public non-static non-final 메서드는 exclude으로 WebMethod 주석이없고 true으로 주석이 wsdl : operation 요소에 매핑되어야한다고 말합니다. 이 방법은 oneway operation의 매핑되어서는 안된다 (이 void 반환 형식없이 exception있는 경우에도) OneWay 주석이없는 경우왜 void 반환 메서드 및 예외 메서드를 throw하지 않습니다 jax-ws 기본적으로 편도 작업으로 간주됩니다?

는 또한, oneway operation해야 javax.jws.OneWay 주석만을 방법을 말한다.

void지도를 exception으로 매핑하지 않고 어떤 이유도 발견되지 않습니다. 기본값은 oneway operation입니다. 이것은 또 다른 의문을 제기한다. void 반환 유형이없고 exception이 아닌 메소드가 oneway operation 인 경우 왜 OneWay 주석이 필요합니까?

답변

1

무효 리턴 유형과 예외없이 어떤 방법 이것은 사실이 아니다 한방향 작업을

입니다. 기본적으로 void 반환 유형 및 선언 된 예외 검사 방법은 표준 작업이 아닙니다.

기본적으로 서비스를 호출하는 클라이언트 스레드는 서버로부터 응답을받을 때까지 기다립니다 (또는 클라이언트는 시간 초과됩니다). 표준 웹 서비스 조작은 void 반환 유형이 있더라도 웹 메소드 작업을 처리 한 후 SOAP 응답 (빈 본문)으로 응답합니다. 기본적으로 동기식 호출입니다.

예를 들어 시간이 많이 소모되는 WebMethod 유형이있는 경우 서비스 클라이언트는 서버 측의 모든 처리가 끝날 때까지 대기하며 (시간 초과가 없다고 가정) 오류가 발생하면 서버에서 RuntimeException을 수신합니다. @OneWay 작업에서는이 문제가 발생하지 않습니다.

@OneWay 메서드의 경우 비동기 적으로 호출되므로 클라이언트 스레드는 서버 웹 메서드 작업을 마칠 때까지 기다리지 않고 즉시 처리합니다.