Hi Scott,
Thanks filing this as a bug. I ran some more tests and it looks like
its related to the HTTP session timing out or being invalidated. If a
request for that session occurs after the timeout, I see the
EnvironmentClassLoader exceptions.
Keith
On 04/04/2011 11:55 AM, Scott Ferguson wrote:
> On 04/04/2011 11:39 AM, Keith Fetterman wrote:
>> I am wondering if this problem is related to the HTTP session timing
>> out. In the ROOT web application, we have the session time out set to
>> 70 minutes:
>>
>> WEB-INF/web.xml
> Possibly. I've filed it as a bug.
>
> The Java deserializer requires a classloader handler for proper
> deserialization. It's possible that it's not properly handled in some
> contexts.
>
> -- Scott
>
>>> <session-config>
>>> <session-timeout>70</session-timeout>
>>> </session-config>
>> I received another ClassNotFoundException from the
>> EnvironmentClassLoader after 30 minutes, which is the default session
>> timeout for most Web apps.
>>
>>
>> On 04/04/2011 11:19 AM, Keith Fetterman wrote:
>>> This problem seems to be more pervasive in Resin 4.0.16 pro. I am now
>>> seeing other application classes that the Resin EnvironmentClassLoader
>>> is trying to load but it can't find them. I am getting the error
>>> "java.lang.ClassNotFoundException" because the
>>> "EnvironmentClassLoader[resin-system:]" is trying to load it. In our
>>> resin.xml file, I have the application classes being loaded at at the
>>> Host level.
>>>
>>> Resin was started at 9:55 AM this morning. Since then, I have been
>>> testing our Website including checking out, which would require
>>> "com.marinersupply.common.store.struts.form.checkout.CheckoutCustomerInfoForm"
>>> class to be loaded. Then at 10:37 AM, resin throws the error:
>>>
>>>> [11-04-04 10:37:46.336] {http://*:8082-23} WARNING
>>>> com.caucho.server.session.SessionImpl
>>>> com.caucho.vfs.IOExceptionWrapper: java.lang.ClassNotFoundException:
>>>> com.marinersupply.common.store.struts.form.checkout.CheckoutCustomerInfoForm
>>>> in EnvironmentClassLoader[resin-system:]
>>> It looks like the error is occurring when resin is either serializing or
>>> deserializing the session. Is the EnvironmentClassLoader above the host
>>> class loader and if so, why is trying to load application classes? Is
>>> this a bug in resin 4.0.16?
>>>
>>>
>>>> [11-04-04 10:37:46.336] {http://*:8082-23} WARNING
>>>> com.caucho.server.session.SessionImpl
>>>> com.caucho.vfs.IOExceptionWrapper: java.lang.ClassNotFoundException:
>>>> com.marinersupply.common.store.struts.form.checkout.CheckoutCustomerInfoForm
>>>> in EnvironmentClassLoader[resin-system:]
>>>> at
>>>> com.caucho.vfs.IOExceptionWrapper.create(IOExceptionWrapper.java:64)
>>>> at
>>>> com.caucho.server.session.SessionImpl.load(SessionImpl.java:706)
>>>> at
>>>> com.caucho.server.session.SessionImpl.load(SessionImpl.java:642)
>>>> at
>>>> com.caucho.server.session.SessionManager.createSession(SessionManager.java:1332)
>>>> at
>>>> com.caucho.server.http.AbstractCauchoRequest.createSession(AbstractCauchoRequest.java:255)
>>>> at
>>>> com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:198)
>>>> at
>>>> com.caucho.server.http.AbstractCauchoRequest.finishRequest(AbstractCauchoRequest.java:613)
>>>> at
>>>> com.caucho.server.http.HttpServletRequestImpl.finishRequest(HttpServletRequestImpl.java:1961)
>>>> at
>>>> com.caucho.server.http.AbstractHttpRequest.finishRequest(AbstractHttpRequest.java:1725)
>>>> at
>>>> com.caucho.server.http.HttpRequest.finishRequest(HttpRequest.java:1268)
>>>> at
>>>> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:813)
>>>> at
>>>> com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:730)
>>>> at
>>>> com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:689)
>>>> at
>>>> com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:669)
>>>> at
>>>> com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:617)
>>>> at
>>>> com.caucho.network.listen.AcceptTask.doTask(AcceptTask.java:104)
>>>> at
>>>> com.caucho.network.listen.ConnectionReadTask.runThread(ConnectionReadTask.java:98)
>>>> at
>>>> com.caucho.network.listen.ConnectionReadTask.run(ConnectionReadTask.java:81)
>>>> at
>>>> com.caucho.network.listen.AcceptTask.run(AcceptTask.java:67)
>>>> at
>>>> com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)
>>>> at
>>>> com.caucho.env.thread.ResinThread.run(ResinThread.java:130)
>>>> Caused by:
>>>> java.lang.ClassNotFoundException:
>>>> com.marinersupply.common.store.struts.form.checkout.CheckoutCustomerInfoForm
>>>> in EnvironmentClassLoader[resin-system:]
>>>> at
>>>> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1382)
>>>> at
>>>> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1358)
>>>> at
>>>> java.lang.Class.forName0(Native Method)
>>>> at
>>>> java.lang.Class.forName(Class.java:247)
>>>> at
>>>> com.caucho.server.session.JavaSessionDeserializer$ContextObjectInputStream.resolveClass(JavaSessionDeserializer.java:105)
>>>> at
>>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
>>>> at
>>>> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
>>>> at
>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
>>>> at
>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
>>>> at
>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
>>>> at
>>>> com.caucho.server.session.JavaSessionDeserializer.readObject(JavaSessionDeserializer.java:70)
>>>> at
>>>> com.caucho.server.session.SessionImpl.load(SessionImpl.java:686)
>>>> ... 19 more
>>>>
>>>
>>>
>>> On 03/30/2011 05:49 PM, Keith Fetterman wrote:
>>>> Today, I discovered when I stopped and then started resin (4.0.16), I
>>>> received a "java.lang.ClassNotFoundException" exception being thrown by
>>>> the "com.caucho.loader.DynamicClassLoader.loadClass" when I accessed the
>>>> home page of my Web site. The ClassNotFoundException is caused by resin
>>>> trying to load one of our application classes that was stored in the
>>>> HTTP session and was persisted. We have our application classes being
>>>> loaded at the host level class loader. Why is resin trying to load the
>>>> class via the EnvironmentClassLoader? Is this a bug in resin 4.0.16?
>>>>
>>>> We switched from using hessian to java serialization because hessian
>>>> serialization was trying to lazy load our hibernate objects that were in
>>>> the HTTP session. I don't know if this makes a difference.
>>>>
>>>> Please help if you can.
>>>>
>>>> The stack trace is below.
>>>>
>>>>> [11-03-30 17:06:10.723] {http://*:8082-16} WARNING
>>>>> com.caucho.server.session.SessionImpl
>>>>> com.caucho.vfs.IOExceptionWrapper: java.lang.ClassNotFoundException:
>>>>> com.marinersupply.bean.CustomerBean in
>>>>> EnvironmentClassLoader[resin-system:]
>>>>> at
>>>>> com.caucho.vfs.IOExceptionWrapper.create(IOExceptionWrapper.java:64)
>>>>> at
>>>>> com.caucho.server.session.SessionImpl.load(SessionImpl.java:706)
>>>>> at
>>>>> com.caucho.server.session.SessionImpl.load(SessionImpl.java:642)
>>>>> at
>>>>> com.caucho.server.session.SessionManager.createSession(SessionManager.java:1332)
>>>>> at
>>>>> com.caucho.server.http.AbstractCauchoRequest.createSession(AbstractCauchoRequest.java:255)
>>>>> at
>>>>> com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:198)
>>>>> at
>>>>> com.caucho.server.http.AbstractCauchoRequest.finishRequest(AbstractCauchoRequest.java:613)
>>>>> at
>>>>> com.caucho.server.http.HttpServletRequestImpl.finishRequest(HttpServletRequestImpl.java:1961)
>>>>> at
>>>>> com.caucho.server.http.AbstractHttpRequest.finishRequest(AbstractHttpRequest.java:1725)
>>>>> at
>>>>> com.caucho.server.http.HttpRequest.finishRequest(HttpRequest.java:1268)
>>>>> at
>>>>> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:813)
>>>>> at
>>>>> com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:730)
>>>>> at
>>>>> com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:689)
>>>>> at
>>>>> com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:669)
>>>>> at
>>>>> com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:617)
>>>>> at
>>>>> com.caucho.network.listen.AcceptTask.doTask(AcceptTask.java:104)
>>>>> at
>>>>> com.caucho.network.listen.ConnectionReadTask.runThread(ConnectionReadTask.java:98)
>>>>> at
>>>>> com.caucho.network.listen.ConnectionReadTask.run(ConnectionReadTask.java:81)
>>>>> at
>>>>> com.caucho.network.listen.AcceptTask.run(AcceptTask.java:67)
>>>>> at
>>>>> com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)
>>>>> at
>>>>> com.caucho.env.thread.ResinThread.run(ResinThread.java:130)
>>>>> Caused by:
>>>>> java.lang.ClassNotFoundException: com.marinersupply.bean.CustomerBean
>>>>> in EnvironmentClassLoader[resin-system:]
>>>>> at
>>>>> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1382)
>>>>> at
>>>>> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1358)
>>>>> at
>>>>> java.lang.Class.forName0(Native Method)
>>>>> at
>>>>> java.lang.Class.forName(Class.java:247)
>>>>> at
>>>>> com.caucho.server.session.JavaSessionDeserializer$ContextObjectInputStream.resolveClass(JavaSessionDeserializer.java:105)
>>>>> at
>>>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
>>>>> at
>>>>> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
>>>>> at
>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
>>>>> at
>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
>>>>> at
>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
>>>>> at
>>>>> com.caucho.server.session.JavaSessionDeserializer.readObject(JavaSessionDeserializer.java:70)
>>>>> at
>>>>> com.caucho.server.session.SessionImpl.load(SessionImpl.java:686)
>>>>> ... 19 more
>>>>>
>>>>> [11-03-30 17:06:10.741] {http://*:8082-15} WARNING
>>>>> com.caucho.server.session.SessionImpl
>>>>> com.caucho.vfs.IOExceptionWrapper: java.lang.ClassNotFoundException:
>>>>> com.marinersupply.bean.CustomerBean in
>>>>> EnvironmentClassLoader[resin-system:]
>>>>> at
>>>>> com.caucho.vfs.IOExceptionWrapper.create(IOExceptionWrapper.java:64)
>>>>> at
>>>>> com.caucho.server.session.SessionImpl.load(SessionImpl.java:706)
>>>>> at
>>>>> com.caucho.server.session.SessionImpl.load(SessionImpl.java:642)
>>>>> at
>>>>> com.caucho.server.session.SessionManager.createSession(SessionManager.java:1332)
>>>>> at
>>>>> com.caucho.server.http.AbstractCauchoRequest.createSession(AbstractCauchoRequest.java:255)
>>>>> at
>>>>> com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:198)
>>>>> at
>>>>> com.caucho.server.http.AbstractCauchoRequest.finishRequest(AbstractCauchoRequest.java:613)
>>>>> at
>>>>> com.caucho.server.http.HttpServletRequestImpl.finishRequest(HttpServletRequestImpl.java:1961)
>>>>> at
>>>>> com.caucho.server.http.AbstractHttpRequest.finishRequest(AbstractHttpRequest.java:1725)
>>>>> at
>>>>> com.caucho.server.http.HttpRequest.finishRequest(HttpRequest.java:1268)
>>>>> at
>>>>> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:813)
>>>>> at
>>>>> com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:730)
>>>>> at
>>>>> com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:689)
>>>>> at
>>>>> com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:669)
>>>>> at
>>>>> com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:617)
>>>>> at
>>>>> com.caucho.network.listen.KeepaliveRequestTask.doTask(KeepaliveRequestTask.java:73)
>>>>> at
>>>>> com.caucho.network.listen.ConnectionReadTask.runThread(ConnectionReadTask.java:98)
>>>>> at
>>>>> com.caucho.network.listen.ConnectionReadTask.run(ConnectionReadTask.java:81)
>>>>> at
>>>>> com.caucho.network.listen.KeepaliveRequestTask.run(KeepaliveRequestTask.java:60)
>>>>> at
>>>>> com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)
>>>>> at
>>>>> com.caucho.env.thread.ResinThread.run(ResinThread.java:130)
>>>>> Caused by:
>>>>> java.lang.ClassNotFoundException: com.marinersupply.bean.CustomerBean
>>>>> in EnvironmentClassLoader[resin-system:]
>>>>> at
>>>>> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1382)
>>>>> at
>>>>> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1358)
>>>>> at
>>>>> java.lang.Class.forName0(Native Method)
>>>>> at
>>>>> java.lang.Class.forName(Class.java:247)
>>>>> at
>>>>> com.caucho.server.session.JavaSessionDeserializer$ContextObjectInputStream.resolveClass(JavaSessionDeserializer.java:105)
>>>>> at
>>>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
>>>>> at
>>>>> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
>>>>> at
>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
>>>>> at
>>>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
>>>>> at
>>>>> java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
>>>>> at
>>>>> com.caucho.server.session.JavaSessionDeserializer.readObject(JavaSessionDeserializer.java:70)
>>>>> at
>>>>> com.caucho.server.session.SessionImpl.load(SessionImpl.java:686)
>>>>> ... 19 more
>>>>>
>
>
> _______________________________________________
> resin-interest mailing list
> [email protected]
> http://maillist.caucho.com/mailman/listinfo/resin-interest
--
-----------------------------------------------------------------
Keith Fetterman Direct: 206-319-9434
Mariner Supply, Inc. 206-780-5670
http://www.go2marine.com [email protected]
http://www.boatersline.com
_______________________________________________
resin-interest mailing list
[email protected]
http://maillist.caucho.com/mailman/listinfo/resin-interest