Code: Select all
@WebService
public class TimeServerImp implements TimeServer {
@Override
public void printTime(){
System.out.println(System.currentTimeMillis());
throw new RuntimeException();
}
}
Code: Select all
//client code snippet:
try{
timeServer.printTime();
}
catch (RuntimeException e){
System.out.println("catch run time exception");
e.printStackTrace();
}
Code: Select all
catch run time exception
javax.xml.ws.soap.SOAPFaultException: java.lang.RuntimeException
at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178)
at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:111)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:129)
at $Proxy23.printTime(Unknown Source)
at ch01.ts.TimeClient.main(TimeClient.java:38)
I think the correct option is "the client should catch the exception and handle it just like checked exception."