Hi All...
I am having a problem with jBoss-tomcat beta, which I installed from the
binary distribution and run on Sun JDK 1.3 on Windows 2000.
I have a servlet that calls a stateless session bean that creates an entity
bean. If the entity already exists, my applicationthrown a
RnDuplicateUarException, which I wrote. The intention is for the servlet to
catch this exception and return an error to the client application via HTTP
or XML.
The problem is that the exception dossen't seem to be getting back to the
servlet. Instead, an:
java.lang.reflect.UndeclaredThrowableException:
com.regtek.ex.RnDuplicateUarException: This UAR ID already exists
seems to be generated by jBoss. I am running the servlet in a WAR and the
EJBs in a JAR and both are in the same EAR. I have tried making sure my
exception implements serializable, but I get the same result whether it
does or not. Its a very simple exception. All it does is subclass my base
exception which just subclasses Exception (I'll past the code below).
Could someone suggest what I might be doing wrong?
Thanks!!!
Jim
Exception code:
// RnBaseException.java
package com.regtek.ex;
public class RnBaseException extends Exception implements
java.io.Serializable
{
public RnBaseException()
{
}
public RnBaseException(String s)
{
super(s);
}
}
// RnDuplicateUarException
package com.regtek.ex;
public class RnDuplicateUarException extends RnBaseException implements
java.io.Serializable
{
public RnDuplicateUarException()
{
}
public RnDuplicateUarException(String s)
{
super(s);
}
}
This is what was returned to my client, which is a perl script talking to
the servlet via HTTP:
<h1>Error: 500</h1>
<h2>Location: /regnet/MakeUAR</h2><b>Internal Servlet
Error:</b><br><pre>java.la
ng.reflect.UndeclaredThrowableException:
com.regtek.ex.RnDuplicateUarException:
This UAR ID already exists
at
com.regtek.slsb.CreateNewUARBean.createUarEb(CreateNewUARBean.java:27
4)
at
com.regtek.slsb.CreateNewUARBean.makeNew(CreateNewUARBean.java:87)
at java.lang.reflect.Method.invoke(Native Method)
at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(S
tatelessSessionContainer.java:472)
at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Stat
elessSessionInstanceInterceptor.java:87)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.ja
va:133)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
torCMT.java:264)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:9
9)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.
java:137)
at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContai
ner.java:271)
at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPCon
tainerInvoker.java:381)
at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPCon
tainerInvoker.java:452)
at
org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(St
atelessSessionProxy.java:152)
at $Proxy384.makeNew(Unknown Source)
at com.regtek.protocol_servlets.MakeUAR.doPost(MakeUAR.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:4
04)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372
)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.
java:797)
at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743
)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnectio
n(HttpConnectionHandler.java:210)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:
416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java
:498)
at java.lang.Thread.run(Unknown Source)
</pre>
This is from the end of the jBoss log:
[CreateNewUARSlsb] CreateNewUarBean Tue Mar 06 23:51:43 EST 2001 method
createUa
rEb() entered
2001-03-06 11:51:43 - Ctx( /regnet ): Exception in: R( /regnet + /MakeUAR +
null
) - java.lang.reflect.UndeclaredThrowableException:
com.regtek.ex.RnDuplicateUar
Exception: This UAR ID already exists
at
com.regtek.slsb.CreateNewUARBean.createUarEb(CreateNewUARBean.java:27
4)
at
com.regtek.slsb.CreateNewUARBean.makeNew(CreateNewUARBean.java:87)
at java.lang.reflect.Method.invoke(Native Method)
at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(S
tatelessSessionContainer.java:472)
at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Stat
elessSessionInstanceInterceptor.java:87)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.ja
va:133)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
torCMT.java:264)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:9
9)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.
java:137)
at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContai
ner.java:271)
at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPCon
tainerInvoker.java:381)
at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPCon
tainerInvoker.java:452)
at
org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(St
atelessSessionProxy.java:152)
at $Proxy384.makeNew(Unknown Source)
at com.regtek.protocol_servlets.MakeUAR.doPost(MakeUAR.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:4
04)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372
)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.
java:797)
at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743
)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnectio
n(HttpConnectionHandler.java:210)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:
416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java
:498)
at java.lang.Thread.run(Unknown Source)
********************************************
I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I -
I took the one less traveled by,
And that has made all the difference.
- Robert Frost, 1916
--
--------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]