this patch is for using ErrorsTag in wls 6.0. the ErrorsTag gets MessageResources out of the ServletContext (or application scope, take your pick of terminology) on line 183. weblogic server 6.0 (apparently) serializes (or deserializes) the attributes in ServletContext. MessageResources has a reference to a MessageResourcesFactory which is not serializable, and so it bombs when taking the MessageResources out of the ServletContext. (why not when they are put in? i don't know.) i have attached a stack trace for the skeptical.<grin> in any event, making MessageResourcesFactory serializable resolves this issue for wls 6.0. Index: src/share/org/apache/struts/util/MessageResourcesFactory.java =================================================================== RCS file: /home/cvspublic/jakarta-struts/src/share/org/apache/struts/util/MessageResourcesFactory.java,v retrieving revision 1.2 diff -u -r1.2 MessageResourcesFactory.java --- src/share/org/apache/struts/util/MessageResourcesFactory.java 2001/01/16 03:52:57 1.2 +++ src/share/org/apache/struts/util/MessageResourcesFactory.java 2001/01/18 +01:29:29 @@ -63,6 +63,9 @@ package org.apache.struts.util; +import java.io.Serializable; + + /** * Factory for <code>MessageResources</code> instances. The general usage * pattern for this class is: @@ -81,7 +84,7 @@ * @version $Revision: 1.2 $ $Date: 2001/01/16 03:52:57 $ */ -public abstract class MessageResourcesFactory { +public abstract class MessageResourcesFactory implements Serializable { // ---------------------------------------------------- Instance Properties
<Jan 18, 2001 1:51:13 AM GMT> <Error> <HTTP> <[WebAppServletContext(6133905,ecare)] Could not deserialize context attribute java.io.NotSerializableException: org.apache.struts.util.PropertyMessageResourcesFactory at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1148) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366) at java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1841) at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:480) at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1214) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366) at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java:71) at weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppServletContext.java:211) at weblogic.servlet.jsp.PageContextImpl.getAttribute(PageContextImpl.java:164) at org.apache.struts.taglib.html.ErrorsTag.doStartTag(ErrorsTag.java:183) at jsp_servlet._login._jspService(_login.java:236) at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:208) at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:149) at org.apache.struts.action.ActionServlet.processValidate(ActionServlet.java:1879) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1414) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:481) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:208) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:1127) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1529) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) >