[JBoss-user] FileNotFoundException Accessing Session bean from Servlet
Hello all, Using jboss-3.0.0_tomcat-4.0.3, I am trying to access a Session bean called Registration from within a servlet, both of which are part of an application called pc, deployed as pc.ear. I can access the bean with no problem from a stand-alone client, with the following code: Context jndiContext = getInitialContext(); Object ref = jndiContext.lookup("RegistrationHomeRemote"); RegistrationHomeRemote registrationHome = (RegistrationHomeRemote) PortableRemoteObject.narrow(ref,RegistrationHomeRemote.class); RegistrationRemote registration = registrationHome.create(); registration.remove(); When I placed this code in a TestServlet, however, I initially got a ClassCastException at the third line. Some research in the forums and the manual suggested to me that I did not have everything specified correctly in my deployment descriptors. After some tinkering, I no longer get a ClassCastException. However, I do get the following Exception: javax.servlet.ServletException: Could not activate; nested exception is: java.io.FileNotFoundException: C:\Java\jboss\jboss-3.0.0_tomcat-4.0.3\server\default\db\sessions\Registration\1036311619820.ser (The system cannot find the file specified) at com.pc.servlets.TestServlet.doRequest(TestServlet.java:44) at com.pc.servlets.BaseServlet.doPost(BaseServlet.java:33) at com.pc.servlets.BaseServlet.doGet(BaseServlet.java:28) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:446) at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107) at java.lang.Thread.run(Thread.java:536) Could anyone shed any light on what's happening here? My deployment descriptors (in relevant part) are as follows: ejb.jar: session display-nameRegistration/display-name ejb-nameRegistration/ejb-name homecom.pc.ejb.session.interfaces.RegistrationHomeRemote/home remotecom.pc.ejb.session.interfaces.RegistrationRemote/remote ejb-classcom.pc.ejb.session.beans.RegistrationBean/ejb-class session-typeStateful/session-type
Re: [JBoss-user] FileNotFoundException Accessing Session bean from Servlet
This happens when the stateful session has been removed due to inactivity. The default timeout is 30 minutes. jboss-3.0.0 is now getting to be a rather out of date version so lookup into updating to 3.0.4. Scott Stark Chief Technology Officer JBoss Group, LLC On Sunday, November 3, 2002, at 12:40 AM, John Snyder wrote: Hello all, Using jboss-3.0.0_tomcat-4.0.3, I am trying to access a Session bean called Registration from within a servlet, both of which are part of an application called pc, deployed as pc.ear. I can access the bean with no problem from a stand-alone client, with the following code: Context jndiContext = getInitialContext(); Object ref = jndiContext.lookup("RegistrationHomeRemote"); RegistrationHomeRemote registrationHome = (RegistrationHomeRemote) PortableRemoteObject.narrow(ref,RegistrationHomeRemote.class); RegistrationRemote registration = registrationHome.create(); registration.remove(); When I placed this code in a TestServlet, however, I initially got a ClassCastException at the third line. Some research in the forums and the manual suggested to me that I did not have everything specified correctly in my deployment descriptors. After some tinkering, I no longer get a ClassCastException. However, I do get the following Exception: javax.servlet.ServletException: Could not activate; nested exception is: java.io.FileNotFoundException: C:\Java\jboss\jboss-3.0.0_tomcat-4.0.3\server\default\db\sessions\Registration\1036311619820.ser (The system cannot find the file specified) at com.pc.servlets.TestServlet.doRequest(TestServlet.java:44) at com.pc.servlets.BaseServlet.doPost(BaseServlet.java:33) at com.pc.servlets.BaseServlet.doGet(BaseServlet.java:28) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:446) at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at