2009-08-24 3 views
0

웹 서비스를 작성 중입니다. 따라서 나는 가지고있다 :자바 웹 서비스 및 원격 예외 용 우수 사례

public interface MyService extends Remote 
{ 
    public void service1(); 
} 

public class MyServiceImpl implements MyService 
{ 
    public void service1() { /* do something that sometimes throws an exception */ } 
} 

나는 대략 RemoteException를 읽고 있었다. 모든 코드를 service1()에 에 포함 된 try..catch에 래핑해야합니까? 그런 다음 service2(), service3() 등으로 처리해야합니다.

호출자 (내 경우 서블릿)가이 작업을 수행하는 것이 더 좋습니까?

서버에서 발생하는 모든 사항을 원격 예외로 정확히 처리해야합니까? 또는 원격 호출 프로세스 (리플렉션, 직렬화 등)를 처리하는 예외 만?

답변

1

귀하의 코드가 RemoteException 던지는해서는 안됩니다, 그것은 오류가 원격 서비스에 액세스 발생하면 언제 WS 프레임 워크에 예약해야합니다.

대부분의 프레임 워크는 Exception을 잡아 SOAP-Fault로 마무리합니다. SOAP-Fault의 오류 메시지와 함께 다른 예외를 던져 클라이언트가 정상적으로 처리합니다 (클라이언트가 Java가 아닐 수도 있음) .

이것은 프레임 워크가 적절한 응답을 보낼 때 발생하는 오류와 관련된 예외를 던져야한다는 것입니다.

+0

와우, 나는 지금까지 너의 대답을 놓친다. 마치 내가 잘못한 것처럼 들리는데 ... 정보를 제공해 주셔서 감사합니다. – daramasala

0

내가 아는 한, 인터페이스에서 RemoteException을 throw하는 메소드 만 선언하면됩니다.

공중 인터페이스이면 MyService는 {

공개 무효 서비스 1()는 원격 RemoteException을 발생 연장;

}