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)
>

Reply via email to