thanks for the report, could you log it in issue tracking? https://bugs.eclipse.org/bugs/enter_bug.cgi
RT -> Jetty I'll start taking a look now jesse -- jesse mcconnell [email protected] On Wed, Oct 20, 2010 at 10:35, Mike Jiang <[email protected]> wrote: > Hi, All > I have used the jetty server 7.1.3 as the app server for a while. > First the JAAS (Java Authentication and Authorization service) is used and > it worked with no error. > Secondly, we tried to use the Session Clustering with Database, a > feature offered by the jetty server also. It's for the case in which there > are multiple server instances running in a load balancing environment. The > DB is used as a persistent storage for the session's attributes so the > attributes can be shared by the server instances. > > However, when the JAAS and Session Clustering with DB are in effect at > the same time, a NonSerializableException was thrown as follows, > > 2010-10-06 15:51:08.549:WARN::Problem persisting changed session data > id=fredsft3xjud8yc59jaiszql57lo > > *java.io.NotSerializableException*: > org.eclipse.jetty.server.session.JDBCSessionManager > > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > > at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) > > at java.io.ObjectOutputStream.writeSerialData(Unknown Source) > > at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) > > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > > at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) > > at java.io.ObjectOutputStream.writeSerialData(Unknown Source) > > at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) > > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > > at java.io.ObjectOutputStream.writeObject(Unknown Source) > > at java.util.concurrent.ConcurrentHashMap.writeObject(Unknown Source) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(*Native Method*) > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > > at java.lang.reflect.Method.invoke(Unknown Source) > > at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) > > at java.io.ObjectOutputStream.writeSerialData(Unknown Source) > > at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) > > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > > at java.io.ObjectOutputStream.writeObject(Unknown Source) > > at org.eclipse.jetty.server.session.JDBCSessionManager.updateSession( > *JDBCSessionManager.java:949*) > > at > org.eclipse.jetty.server.session.JDBCSessionManager$Session.complete(* > JDBCSessionManager.java:341*) > > at org.eclipse.jetty.server.session.AbstractSessionManager.complete( > *AbstractSessionManager.java:144*) > > at org.eclipse.jetty.server.session.SessionHandler.doScope(* > SessionHandler.java:199*) > > at org.eclipse.jetty.server.handler.ContextHandler.doScope(* > ContextHandler.java:860*) > > at org.eclipse.jetty.server.handler.ScopedHandler.handle(* > ScopedHandler.java:117*) > > at org.eclipse.jetty.server.handler.HandlerList.handle(* > HandlerList.java:47*) > > at org.eclipse.jetty.server.handler.HandlerWrapper.handle(* > HandlerWrapper.java:113*) > > at org.eclipse.jetty.server.Server.handle(*Server.java:335*) > > at org.eclipse.jetty.server.HttpConnection.handleRequest(* > HttpConnection.java:588*) > > at > org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(* > HttpConnection.java:1029*) > > at org.eclipse.jetty.http.HttpParser.parseNext(*HttpParser.java:549* > ) > > at org.eclipse.jetty.http.HttpParser.parseAvailable(* > HttpParser.java:211*) > > at org.eclipse.jetty.server.HttpConnection.handle(* > HttpConnection.java:418*) > > at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(* > SelectChannelEndPoint.java:489*) > > at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(* > QueuedThreadPool.java:436*) > > at java.lang.Thread.run(Unknown Source) > > > Debugging into the code, it was found that the problem was caused in > the following steps: > > > 1). In the process of the JAAS, the code sets a class: > SessionAuthentication as a session attribute. SessionAuthentication is > implemented as a serializable object but its member, DefaultUserIdentity is > not. So the SessionAuthentication is not a serializable object at all; > > 2). In Session Clustering with DB process, the JDBCSessionManager tried > to save all the sessions' attributes-all of them must be serializable-to the > database. However, one of the attribute, SessionAuthentication, is not a > serialiable object, so the above exception is thrown and the process is > interrupted. > > > Kindly hope you can help me for this. > > > Thanks, > > > M. J. > > > > > _______________________________________________ > jetty-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/jetty-users > >
_______________________________________________ jetty-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/jetty-users
