I think it's fairly simple, you just declare your
exception in the signature of both the remote
interface and the bean implementation class. Am I
missing something?

tinou
www.tinou.com

--- Hrair Karaboyadjian <[EMAIL PROTECTED]> wrote:
> Hi, I have a question about Exception catching in
> EJB. How can I throw a
> custom Exception from my EJB?
> I created an Exception class that extends the
> java.lang.Exception and used
> it inside the EJB to throw Exception
> When I call my EJB from a bean requested from JSP
> file I get this error in
> the srv.log file,
>
> Feb 21 16:52:45 2001: SM
> Feb 21 16:52:45 2001:   at
>
com.dcsoft.isppro.ServerManagerBean.vsAddServer(ServerManagerBean.java:152)
> Feb 21 16:52:45 2001:   at
>
com.dcsoft.isppro._sk_DCSoft_ISPPro_ServerManager.invoke(_sk_DCSoft_ISPPro_S
> erverManager.java:166)
> Feb 21 16:52:45 2001:   at
> com.sybase.CORBA.local.Socket.call(Native Method)
> Feb 21 16:52:45 2001:   at
>
com.sybase.CORBA.local.OutputStream.write(OutputStream.java:29)
> Feb 21 16:52:45 2001:   at
>
com.sybase.CORBA.iiop.Connection.invoke(Connection.java:1947)
> Feb 21 16:52:45 2001:   at
>
com.dcsoft.isppro.ServerManager_Stub.vsAddServer(ServerManager_Stub.java:44)
> Feb 21 16:52:45 2001:   at
>
com.dcsoft.isppro.ServerManagerLoader.vsAddServer(ServerManagerLoader.java:9
> 6)
> Feb 21 16:52:45 2001:   at
>
_0005cAddServerPrc_0002ejspAddServerPrc_jsp_35._jspService(_0005cAddServerPr
> c_0002ejspAddServerPrc_jsp_35.java:156)
> Feb 21 16:52:45 2001:   at
>
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:130)
> Feb 21 16:52:45 2001:   at
>
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> Feb 21 16:52:45 2001:   at
>
org.apache.jasper.runtime.JspServlet$JspServletWrapper.service(JspServlet.ja
> va:164)
> Feb 21 16:52:45 2001:   at
>
org.apache.jasper.runtime.JspServlet.serviceJspFile(JspServlet.java:256)
> Feb 21 16:52:45 2001:   at
>
org.apache.jasper.runtime.JspServlet.service(JspServlet.java:361)
> Feb 21 16:52:45 2001:   at
>
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> Feb 21 16:52:45 2001:   at
>
com.sybase.jaguar.servlet.JagServlet.service(JagServlet.java:164)
> Feb 21 16:52:45 2001:   at
>
com.sybase.jaguar.servlet.JagRequestDispatcher.service(JagRequestDispatcher.
> java:760)
> Feb 21 16:52:45 2001:   at
>
com.sybase.jaguar.servlet.ServletEngine.service(ServletEngine.java:528)
> Feb 21 16:52:45 2001:   at
>
com.sybase.jaguar.servlet.ServletServiceImpl.doService(ServletServiceImpl.ja
> va:52)
> Feb 21 16:52:45 2001:   at
>
com.sybase.jaguar.servlet._sk_JaguarServlet_ServletService.invoke(_sk_Jaguar
> Servlet_ServletService.java:140)
> Feb 21 16:52:45 2001: SystemException: UNKNOWN
> (DCSoft_ISPPro/ServerManager/vsAddServer -
> @127.0.0.1)
>
> my Exception class is:
>
> public class SMException extends java.lang.Exception
> {
>
>       public SMException(int a)
>         {
>                 // TODO: implement
>                 detail=a;
>         }
>         public String toString()
>         {
>                 // TODO: implement
>                 return ("SM");
>         }
>         public int getNumber()
>         {
>                 // TODO: implement
>                 return (detail);
>     }
>     public String getMessage()
>     {
>         // TODO: implement
>                 return ("SM" + detail);
>     }
>      private int detail;
> }
>
> in the remote interface, I have this method
> vsAddServer:
>
> public EJBResult vsAddServer(String connString,
> String serverName,  String
> ipAddress, String secret, String comments) throws
> java.rmi.RemoteException;
>
> and the bean implementation of this method is:
>
> public EJBResult vsAddServer(String connString,
> String serverName, String
> ipAddress, String secret, String comments) throws
> javax.ejb.EJBException,SMException
>     {
>         // TODO: implement
>       Connection conn   = null;
>       ResultSet result  = null;
>       Statement stmt   = null;
>       PreparedStatement pstmt = null;
>
>       EJBResult resultCode = new EJBResult();
>       String arrString[];
>       arrString = new String[1];
>
>       try
>       {
>            secret  = nullTest(secret);
>            comments= nullTest(comments);
>
>
>
Class.forName("com.sybase.jdbc2.jdbc.SybDriver").newInstance();
>            ....
>             ....
>             ....
>             ....
>            if (result.isBeforeFirst())
>            {
>                 throw new SMException(2004); I'm
> trying to throw this
> Exception
>            }
>
>            if (result != null) result.close
>     }catch(SMException e)
>       {
>            arrString[0] = new String(e.toString());
>           throw new SMException(e.getNumber());
>     }catch(Exception e)
>       {
>            throw new
> javax.ejb.EJBException(e.toString());
>       }finally
>       {
>           try
>           {
>               if (pstmt != null) pstmt.close();
>               if (stmt != null) stmt.close();
>               if (result != null) result.close();
>               if (conn != null) conn.close();
>          }catch(Exception e)
>          {
>               throw new
> javax.ejb.EJBException(e.toString());
>          }
>          pstmt = null;
>          stmt = null;
>          result  = null;
>           conn = null;
>     }
>     arrString[0]=new String("SM10000");
>     resultCode.setArrString(arrString);
>     return(resultCode);
> }
>
> I want to know how I can throw my own custom
> Exception from EJB method
> Many Thanks if somebody can help me
>
> Hrair Karaboyadjian
> Software Engineer
>
> DC Soft S.A.L.
> Tel:  +961-1-385425
> Fax:  +961-1-385428
> P.O.Box 11-337
> Beirut - Lebanon
> email: mailto:[EMAIL PROTECTED]
> http://www.dcsoftintl.com
>
> Hrair Karaboyadjian
> Software Engineer
>
> DC Soft S.A.L.
> Tel:  +961-1-385425
> Fax:  +961-1-385428
> P.O.Box 11-337
> Beirut - Lebanon
> email: mailto:[EMAIL PROTECTED]
> http://www.dcsoftintl.com
>
>
===========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED]
> and include in the body
> of the message "signoff EJB-INTEREST".  For general
> help, send email to
> [EMAIL PROTECTED] and include in the body of the
> message "help".
>


__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - Buy the things you want at great prices! http://auctions.yahoo.com/

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to