You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Thomas Quas <tq...@acm.org> on 2001/08/26 09:44:43 UTC

Local Forward with Parameters Causes Exception

Hi,

I ran into the following problem: I want to specify a local forward that
represents an action URL. The action requires parameters that I want to
pass
in common HTTP fashion, namely

        /product.do?action=list&sortBy=date&order=desc


Therefore, I have an entry in struts-confix.xml that looks like this:

    <action path="/product"
            type="tquas.bogus.servlet.ProductActions"
            parameter="action"
            name="productForm"
            scope="request"
            unknown="false"
            validate="true">
        <forward name="postCreate"
                
path="/product.do?action=list&sortBy=date&order=desc&count=10"/>
    </action>

where ProductActions is a subclass of DispatchAction containing an
implementation of method list().

The problem is that the XML parser throws an exception, basically
telling me
that ampersands are not allowed in this URI:

org.xml.sax.SAXParseException: Next character must be ";" terminating
reference to entity "sortBy".
        at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3035)
        at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3029)
        at org.apache.crimson.parser.Parser2.nextChar(Parser2.java:2951)
        at
org.apache.crimson.parser.Parser2.parseLiteral(Parser2.java:715)
        at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1375)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
        at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
        at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
        at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
        at
org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
        at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
        at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:317)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:108)
        at org.apache.struts.digester.Digester.parse(Digester.java:755)
        at
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1331)
        at
org.apache.struts.action.ActionServlet.init(ActionServlet.java:465)
        at javax.servlet.GenericServlet.init(GenericServlet.java:258)
[snip]


This kind of puzzled me, but I obeyed and replaced the ampersands with
semicolons. Now the parser shuts up, but as soon as I hit the specified
forward, struts seems to hang in a loop until it produces a
StackOverflowError
(details see below).

Can anybody help me with this and tell me how I specifiy a local forward
that
accepts parameters in the URI?


Thanks in advance, tom



2001-08-26 09:26:15 StandardWrapperValve[action]: Servlet.service() for
servlet action threw exception
javax.servlet.ServletException: Servlet execution threw an exception
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        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:219)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        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.StandardContext.invoke(StandardContext.java:2251)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
        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:163)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
        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:984)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1074)
        at java.lang.Thread.run(Thread.java:484)
----- Root Cause -----
java.lang.StackOverflowError
        at java.lang.String.hashCode(String.java:1122)
        at java.util.HashMap.put(HashMap.java:327)
        at
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:249)
        at
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:249)
        at
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:251)
        at
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:251)

[*** last message repeated several times]

-- 
thomas quas        | "Art lies in the consciousness of doing the thing,
tquas@acm.org      |  in the attention of the happening[...]"
                   |    -- Allen Ginsberg --

Re: Local Forward with Parameters Causes Exception

Posted by Ted Husted <hu...@apache.org>.
Try using &amp; for the ampersands. It thinks sortby is an entity
reference, as in &sortby; 

Thomas Quas wrote:
> 
> Hi,
> 
> I ran into the following problem: I want to specify a local forward that
> represents an action URL. The action requires parameters that I want to
> pass
> in common HTTP fashion, namely
> 
>         /product.do?action=list&sortBy=date&order=desc
> 
> Therefore, I have an entry in struts-confix.xml that looks like this:
> 
>     <action path="/product"
>             type="tquas.bogus.servlet.ProductActions"
>             parameter="action"
>             name="productForm"
>             scope="request"
>             unknown="false"
>             validate="true">
>         <forward name="postCreate"
> 
> path="/product.do?action=list&sortBy=date&order=desc&count=10"/>
>     </action>
> 
> where ProductActions is a subclass of DispatchAction containing an
> implementation of method list().
> 
> The problem is that the XML parser throws an exception, basically
> telling me
> that ampersands are not allowed in this URI:

Re: Local Forward with Parameters Causes Exception

Posted by Thomas Quas <tq...@acm.org>.
Thanks Martin. Gee, finally I have to get my hands dirty on XML ;-)


martin.cooper@tumbleweed.com wrote:
> 
> The parser doesn't know what you want, it only knows what it sees. :-) In
> this case, it had started parsing an XML entity reference - something like
> &amp; - and found a parse failure for the reference because it expected to
> see &sortBy; instead of &sortBy=. That is, it expected a semicolon, but what
> it got was an equals.
> 
> --
> Martin Cooper
> 
> ----- Original Message -----
> From: "Thomas Quas" <tq...@acm.org>
> To: <st...@jakarta.apache.org>
> Sent: Tuesday, August 28, 2001 10:42 PM
> Subject: Re: Local Forward with Parameters Causes Exception
> 
> >
> > Thanks all,
> >
> > problem solved. I'm still puzzled, however, about the message in the
> > parser exception that told me to use semicolons. Where does this come
> > from, and shouldn't/can't this be changed to be more expressive?
> >
> >
> > Thanks again, tom
> >
> >
> > martin.cooper@tumbleweed.com wrote:
> > >
> > > Not with &quot; but with &amp; like this:
> > >
> > >     <forward name="postCreate"
> > >
> > >
> path="/product.do?action=list&amp;sortBy=date&amp;order=desc&amp;count=10"/>
> > >
> > > --
> > > Martin Cooper
> > >
> > > ----- Original Message -----
> > > From: "Eung-ju Park" <co...@isoft.co.kr>
> > > To: <st...@jakarta.apache.org>
> > > Sent: Sunday, August 26, 2001 4:56 AM
> > > Subject: Re: Local Forward with Parameters Causes Exception
> > >
> > > > replace '&' with '&quot;'
> > > >
> > > > ----- Original Message -----
> > > > From: "Thomas Quas" <tq...@acm.org>
> > > > To: <st...@jakarta.apache.org>
> > > > Sent: Sunday, August 26, 2001 4:44 PM
> > > > Subject: Local Forward with Parameters Causes Exception
> > > >
> > > >
> > > > >
> > > > > Hi,
> > > > >
> > > > > I ran into the following problem: I want to specify a local forward
> that
> > > > > represents an action URL. The action requires parameters that I want
> to
> > > > > pass
> > > > > in common HTTP fashion, namely
> > > > >
> > > > >         /product.do?action=list&sortBy=date&order=desc
> > > > >
> > > > >
> > > > > Therefore, I have an entry in struts-confix.xml that looks like
> this:
> > > > >
> > > > >     <action path="/product"
> > > > >             type="tquas.bogus.servlet.ProductActions"
> > > > >             parameter="action"
> > > > >             name="productForm"
> > > > >             scope="request"
> > > > >             unknown="false"
> > > > >             validate="true">
> > > > >         <forward name="postCreate"
> > > > >
> > > > > path="/product.do?action=list&sortBy=date&order=desc&count=10"/>
> > > > >     </action>
> > > > >
> > > > > where ProductActions is a subclass of DispatchAction containing an
> > > > > implementation of method list().
> > > > >
> > > > > The problem is that the XML parser throws an exception, basically
> > > > > telling me
> > > > > that ampersands are not allowed in this URI:
> > > > >
> > > > > org.xml.sax.SAXParseException: Next character must be ";"
> terminating
> > > > > reference to entity "sortBy".
> > > > >         at
> org.apache.crimson.parser.Parser2.fatal(Parser2.java:3035)
> > > > >         at
> org.apache.crimson.parser.Parser2.fatal(Parser2.java:3029)
> > > > >         at
> org.apache.crimson.parser.Parser2.nextChar(Parser2.java:2951)
> > > > >         at
> > > > > org.apache.crimson.parser.Parser2.parseLiteral(Parser2.java:715)
> > > > >         at
> > > > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1375)
> > > > >         at
> org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> > > > >         at
> > > > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> > > > >         at
> org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> > > > >         at
> > > > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> > > > >         at
> org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> > > > >         at
> > > > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> > > > >         at
> > > > > org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
> > > > >         at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
> > > > >         at
> > > > >
> org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> > > > > at
> org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> > > > >
> org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> > > > > at
> org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> > > > >         at javax.xml.parsers.SAXParser.parse(SAXParser.java:317)
> > > > >         at javax.xml.parsers.SAXParser.parse(SAXParser.java:108)
> > > > >         at
> org.apache.struts.digester.Digester.parse(Digester.java:755)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1331)
> > > > >         at
> > > > > org.apache.struts.action.ActionServlet.init(ActionServlet.java:465)
> > > > >         at
> javax.servlet.GenericServlet.init(GenericServlet.java:258)
> > > > > [snip]
> > > > >
> > > > >
> > > > > This kind of puzzled me, but I obeyed and replaced the ampersands
> with
> > > > > semicolons. Now the parser shuts up, but as soon as I hit the
> specified
> > > > > forward, struts seems to hang in a loop until it produces a
> > > > > StackOverflowError
> > > > > (details see below).
> > > > >
> > > > > Can anybody help me with this and tell me how I specifiy a local
> forward
> > > > > that
> > > > > accepts parameters in the URI?
> > > > >
> > > > >
> > > > > Thanks in advance, tom
> > > > >
> > > > >
> > > > >
> > > > > 2001-08-26 09:26:15 StandardWrapperValve[action]: Servlet.service()
> for
> > > > > servlet action threw exception
> > > > > javax.servlet.ServletException: Servlet execution threw an exception
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> > > > FilterChain.java:269)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> > > > ain.java:193)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> > > > va:243)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > > 66)
> > > > >         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.ja
> > > > va:219)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > > 66)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > > 66)
> > > > >         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:2251)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
> > > > )
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > > 66)
> > > > >         at
> > > > >
> > >
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > > 64)
> > > > >         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
> > > > :163)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> > > > :163)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > > 66)
> > > > >         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:
> > > > 984)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1074
> > > > )
> > > > >         at java.lang.Thread.run(Thread.java:484)
> > > > > ----- Root Cause -----
> > > > > java.lang.StackOverflowError
> > > > >         at java.lang.String.hashCode(String.java:1122)
> > > > >         at java.util.HashMap.put(HashMap.java:327)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > > > Request.java:249)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > > > Request.java:249)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > > > Request.java:251)
> > > > >         at
> > > > >
> > > >
> > >
> org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > > > Request.java:251)
> > > > >
> > > > > [*** last message repeated several times]
> > > > >
> > > > > --
> > > > > thomas quas        | "Art lies in the consciousness of doing the
> thing,
> > > > > tquas@acm.org      |  in the attention of the happening[...]"
> > > > >                    |    -- Allen Ginsberg --
> > > > >
> > > >
> > > >
> >
> > --
> > thomas quas        | "Art lies in the consciousness of doing the thing,
> > tquas@acm.org      |  in the attention of the happening[...]"
> >                    |    -- Allen Ginsberg --

-- 
thomas quas        | "Art lies in the consciousness of doing the thing,
tquas@acm.org      |  in the attention of the happening[...]"
                   |    -- Allen Ginsberg --

Re: Local Forward with Parameters Causes Exception

Posted by ma...@tumbleweed.com.
The parser doesn't know what you want, it only knows what it sees. :-) In
this case, it had started parsing an XML entity reference - something like
&amp; - and found a parse failure for the reference because it expected to
see &sortBy; instead of &sortBy=. That is, it expected a semicolon, but what
it got was an equals.

--
Martin Cooper


----- Original Message -----
From: "Thomas Quas" <tq...@acm.org>
To: <st...@jakarta.apache.org>
Sent: Tuesday, August 28, 2001 10:42 PM
Subject: Re: Local Forward with Parameters Causes Exception


>
> Thanks all,
>
> problem solved. I'm still puzzled, however, about the message in the
> parser exception that told me to use semicolons. Where does this come
> from, and shouldn't/can't this be changed to be more expressive?
>
>
> Thanks again, tom
>
>
> martin.cooper@tumbleweed.com wrote:
> >
> > Not with &quot; but with &amp; like this:
> >
> >     <forward name="postCreate"
> >
> >
path="/product.do?action=list&amp;sortBy=date&amp;order=desc&amp;count=10"/>
> >
> > --
> > Martin Cooper
> >
> > ----- Original Message -----
> > From: "Eung-ju Park" <co...@isoft.co.kr>
> > To: <st...@jakarta.apache.org>
> > Sent: Sunday, August 26, 2001 4:56 AM
> > Subject: Re: Local Forward with Parameters Causes Exception
> >
> > > replace '&' with '&quot;'
> > >
> > > ----- Original Message -----
> > > From: "Thomas Quas" <tq...@acm.org>
> > > To: <st...@jakarta.apache.org>
> > > Sent: Sunday, August 26, 2001 4:44 PM
> > > Subject: Local Forward with Parameters Causes Exception
> > >
> > >
> > > >
> > > > Hi,
> > > >
> > > > I ran into the following problem: I want to specify a local forward
that
> > > > represents an action URL. The action requires parameters that I want
to
> > > > pass
> > > > in common HTTP fashion, namely
> > > >
> > > >         /product.do?action=list&sortBy=date&order=desc
> > > >
> > > >
> > > > Therefore, I have an entry in struts-confix.xml that looks like
this:
> > > >
> > > >     <action path="/product"
> > > >             type="tquas.bogus.servlet.ProductActions"
> > > >             parameter="action"
> > > >             name="productForm"
> > > >             scope="request"
> > > >             unknown="false"
> > > >             validate="true">
> > > >         <forward name="postCreate"
> > > >
> > > > path="/product.do?action=list&sortBy=date&order=desc&count=10"/>
> > > >     </action>
> > > >
> > > > where ProductActions is a subclass of DispatchAction containing an
> > > > implementation of method list().
> > > >
> > > > The problem is that the XML parser throws an exception, basically
> > > > telling me
> > > > that ampersands are not allowed in this URI:
> > > >
> > > > org.xml.sax.SAXParseException: Next character must be ";"
terminating
> > > > reference to entity "sortBy".
> > > >         at
org.apache.crimson.parser.Parser2.fatal(Parser2.java:3035)
> > > >         at
org.apache.crimson.parser.Parser2.fatal(Parser2.java:3029)
> > > >         at
org.apache.crimson.parser.Parser2.nextChar(Parser2.java:2951)
> > > >         at
> > > > org.apache.crimson.parser.Parser2.parseLiteral(Parser2.java:715)
> > > >         at
> > > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1375)
> > > >         at
org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> > > >         at
> > > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> > > >         at
org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> > > >         at
> > > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> > > >         at
org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> > > >         at
> > > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> > > >         at
> > > > org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
> > > >         at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
> > > >         at
> > > >
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> > > > at
org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> > > >
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> > > > at
org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> > > >         at javax.xml.parsers.SAXParser.parse(SAXParser.java:317)
> > > >         at javax.xml.parsers.SAXParser.parse(SAXParser.java:108)
> > > >         at
org.apache.struts.digester.Digester.parse(Digester.java:755)
> > > >         at
> > > >
> > >
> >
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1331)
> > > >         at
> > > > org.apache.struts.action.ActionServlet.init(ActionServlet.java:465)
> > > >         at
javax.servlet.GenericServlet.init(GenericServlet.java:258)
> > > > [snip]
> > > >
> > > >
> > > > This kind of puzzled me, but I obeyed and replaced the ampersands
with
> > > > semicolons. Now the parser shuts up, but as soon as I hit the
specified
> > > > forward, struts seems to hang in a loop until it produces a
> > > > StackOverflowError
> > > > (details see below).
> > > >
> > > > Can anybody help me with this and tell me how I specifiy a local
forward
> > > > that
> > > > accepts parameters in the URI?
> > > >
> > > >
> > > > Thanks in advance, tom
> > > >
> > > >
> > > >
> > > > 2001-08-26 09:26:15 StandardWrapperValve[action]: Servlet.service()
for
> > > > servlet action threw exception
> > > > javax.servlet.ServletException: Servlet execution threw an exception
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> > > FilterChain.java:269)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> > > ain.java:193)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> > > va:243)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > 66)
> > > >         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.ja
> > > va:219)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > 66)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > 66)
> > > >         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:2251)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
> > > )
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > 66)
> > > >         at
> > > >
> >
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > 64)
> > > >         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
> > > :163)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> > > :163)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > > 66)
> > > >         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:
> > > 984)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1074
> > > )
> > > >         at java.lang.Thread.run(Thread.java:484)
> > > > ----- Root Cause -----
> > > > java.lang.StackOverflowError
> > > >         at java.lang.String.hashCode(String.java:1122)
> > > >         at java.util.HashMap.put(HashMap.java:327)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > > Request.java:249)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > > Request.java:249)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > > Request.java:251)
> > > >         at
> > > >
> > >
> >
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > > Request.java:251)
> > > >
> > > > [*** last message repeated several times]
> > > >
> > > > --
> > > > thomas quas        | "Art lies in the consciousness of doing the
thing,
> > > > tquas@acm.org      |  in the attention of the happening[...]"
> > > >                    |    -- Allen Ginsberg --
> > > >
> > >
> > >
>
> --
> thomas quas        | "Art lies in the consciousness of doing the thing,
> tquas@acm.org      |  in the attention of the happening[...]"
>                    |    -- Allen Ginsberg --



Re: Problem running my Struts App on Tomcat4 ( NoClassDefFoundError)

Posted by ma...@tumbleweed.com.
It looks like you are trying to use data sources in your web app, but you do
not have the JDBC 2.0 Optional Package installed. As mentioned on the Struts
installation page, you'll need to copy this jar file to your WEB-INF/lib.

--
Martin Cooper


----- Original Message -----
From: "Calvin Lau" <al...@yahoo.com>
To: <st...@jakarta.apache.org>
Sent: Saturday, September 15, 2001 12:59 AM
Subject: Problem running my Struts App on Tomcat4 (NoClassDefFoundError)


> I installed Tomcat4 and have the examples and
> struts-example webapps working.  However I can't seem
> to get my webapp which was working fine under
> Tomcat3.2.1 to work.  I get the error listed below
> when I try go to any *.do.  Anyone have any idea what
> the problem is?
>
> Here's an abridge version of the error:
> ======================================================
> Root Cause:
> java.lang.NoClassDefFoundError: javax/sql/DataSource
> at java.lang.ClassLoader.defineClass0(Native Method)
> at java.lang.ClassLoader.defineClass(Unknown Source)
> at
> java.security.SecureClassLoader.defineClass(Unknown
> Source)
> at
>
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLo
ader.java:1488)...
> ======================================================
>
>
> And here's the whole thing:
> ====================================================
> A Servlet Exception Has Occurred
> Exception Report:
> javax.servlet.ServletException: Servlet.init() for
> servlet action threw exception
> at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:875)
> at
>
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:621)
> at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:214)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
> 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.ja
va:215)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
> 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:2366)
> at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
> 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
:163)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
> 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:
1005)
> at
>
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1098
)
> at java.lang.Thread.run(Unknown Source)
>
>
> Root Cause:
> java.lang.NoClassDefFoundError: javax/sql/DataSource
> at java.lang.ClassLoader.defineClass0(Native Method)
> at java.lang.ClassLoader.defineClass(Unknown Source)
> at
> java.security.SecureClassLoader.defineClass(Unknown
> Source)
> at
>
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLo
ader.java:1488)
> at
>
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.jav
a:851)
> at
>
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1230)
> at
>
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1113)
> at java.lang.ClassLoader.loadClassInternal(Unknown
> Source)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Unknown Source)
> at
>
org.apache.struts.digester.ObjectCreateRule.begin(ObjectCreateRule.java:152)
> at
> org.apache.struts.digester.Digester.startElement(Digester.java:528)
> at
>
org.xml.sax.helpers.XMLReaderAdapter.startElement(XMLReaderAdapter.java:329)
> at
> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1451)
> at
> org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> at
> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> at
> org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> at
> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> at
> org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
> at
> org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
> at
> org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> at
> org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> at
> javax.xml.parsers.SAXParser.parse(SAXParser.java:317)
> at
> javax.xml.parsers.SAXParser.parse(SAXParser.java:108)
> at
> org.apache.struts.digester.Digester.parse(Digester.java:755)
> at
>
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1331)
> at
> org.apache.struts.action.ActionServlet.init(ActionServlet.java:465)
> at
> javax.servlet.GenericServlet.init(GenericServlet.java:366)
> at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:856)
> at
>
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:621)
> at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:214)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
> 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.ja
va:215)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
> 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:2366)
> at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
> 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
:163)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
> 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:
1005)
> at
>
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1098
)
> at java.lang.Thread.run(Unknown Source)
>
>
>
> __________________________________________________
> Terrorist Attacks on U.S. - How can you help?
> Donate cash, emergency relief information
> http://dailynews.yahoo.com/fc/US/Emergency_Information/



Problem running my Struts App on Tomcat4 (NoClassDefFoundError)

Posted by Calvin Lau <al...@yahoo.com>.
I installed Tomcat4 and have the examples and
struts-example webapps working.  However I can't seem
to get my webapp which was working fine under
Tomcat3.2.1 to work.  I get the error listed below
when I try go to any *.do.  Anyone have any idea what
the problem is?

Here's an abridge version of the error:
======================================================
Root Cause:
java.lang.NoClassDefFoundError: javax/sql/DataSource
	at java.lang.ClassLoader.defineClass0(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at
java.security.SecureClassLoader.defineClass(Unknown
Source)
	at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1488)...
======================================================


And here's the whole thing:
====================================================
A Servlet Exception Has Occurred
Exception Report:
javax.servlet.ServletException: Servlet.init() for
servlet action threw exception
	at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:875)
	at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:621)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	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:215)
	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.StandardContext.invoke(StandardContext.java:2366)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
	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:163)
	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:1005)
	at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1098)
	at java.lang.Thread.run(Unknown Source)


Root Cause:
java.lang.NoClassDefFoundError: javax/sql/DataSource
	at java.lang.ClassLoader.defineClass0(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at
java.security.SecureClassLoader.defineClass(Unknown
Source)
	at
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1488)
	at
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:851)
	at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1230)
	at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1113)
	at java.lang.ClassLoader.loadClassInternal(Unknown
Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at
org.apache.struts.digester.ObjectCreateRule.begin(ObjectCreateRule.java:152)
	at
org.apache.struts.digester.Digester.startElement(Digester.java:528)
	at
org.xml.sax.helpers.XMLReaderAdapter.startElement(XMLReaderAdapter.java:329)
	at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1451)
	at
org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
	at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
	at
org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
	at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
	at
org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
	at
org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
	at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
	at
org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
	at
javax.xml.parsers.SAXParser.parse(SAXParser.java:317)
	at
javax.xml.parsers.SAXParser.parse(SAXParser.java:108)
	at
org.apache.struts.digester.Digester.parse(Digester.java:755)
	at
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1331)
	at
org.apache.struts.action.ActionServlet.init(ActionServlet.java:465)
	at
javax.servlet.GenericServlet.init(GenericServlet.java:366)
	at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:856)
	at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:621)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	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:215)
	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.StandardContext.invoke(StandardContext.java:2366)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
	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:163)
	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:1005)
	at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1098)
	at java.lang.Thread.run(Unknown Source)



__________________________________________________
Terrorist Attacks on U.S. - How can you help?
Donate cash, emergency relief information
http://dailynews.yahoo.com/fc/US/Emergency_Information/

Another good resource on Struts

Posted by Kent Roylance <ro...@home.com>.
I have been following Struts the last couple of months, and have implemented
an enterprise web application with Struts.  I am always looking for better
ways to build web apps with J2EE technology.  I discovered a document that
does an excellent job of going through the design, analysis, and
implementation phases of a J2EE web application.  Here is the url:
http://www.redbooks.ibm.com/redpieces/pdfs/sg246134.pdf.  Even though this
document goes into detail on how to implement a struts web application,
there is allot of good information that is not IBM specific.  Take a look at
the PiggyBank source code from this document, it has some good examples of
how J2EE apps should be put together.  This document is probably one of the
best written documents on building J2EE apps out there.

One other interesting note.  From what I have read (and I have done alot of
research lately), it is very apparent to me that IBM understands the value
of Struts.  Their PiggyBank example uses Struts, and I am sure that their
Administration tools for Websphere uses Struts.  IBM is one of the two
biggest players in the J2EE space, and for them to be using Struts is a
great compliment to the developers behind Struts.  Keep up the good work.

Hope this is helpful for someone,

Kent


RE: Tomcat4.0 Contexts

Posted by Calvin Lau <al...@yahoo.com>.
Nope...still not working.  I get:

Starting service Tomcat-Standalone
Apache Tomcat/4.0-b7
PARSE error at line 7 column -1
org.xml.sax.SAXParseException: XML declaration may
only begin entities.
Starting service Tomcat-Apache
Apache Tomcat/4.0-b7

When I add:

<Context path="/"
 docBase="c:/web/blitzDev"
 crossContext="false"
 debug="0"
 reloadable="true" >
</Context>

Calvin

--- Mark Bennett <ma...@ualberta.ca> wrote:
> Hey Calvin,
> I know this is old, but did you ever managed to
> resolve it.  I think I am
> having exactly the same problem.  The struts
> examples which worked with 3.2
> don't with 4.0.  They say that the root cause has
> something to do with a
> noClassDefnFound error when looking for a
> SAXParserException or something
> like that.  The error message can be seen on my
> server at
> http://26.64.133.82:8080/struts-example.  If you
> could let me know I would
> really appreciate it as I am about to roll back to
> Tomcat 3.2.  Thanks man!
> 
> -Mark Bennett
> Computer Science III
> University of Alberta
> 
> -----Original Message-----
> From: Calvin Lau [mailto:alienatedx@yahoo.com]
> Sent: August 29, 2001 2:09 AM
> To: struts-user@jakarta.apache.org
> Subject: Tomcat4.0 Contexts
> 
> Does anyone have an example of a Tomcat4.0
> server.xml
> that uses Contexts?  I want to run an application
> that
> has it's root outside of Tomcat's root directory but
> keep getting XML parse errors for some reason.  It
> was
> all working fine on Tomcat3.2.
> 
> Any good resource on Tomcat4.0 would also be good. 
> I
> haven't been able to find anything relevant.
> 
> Thanks,
> 
> Calvin
> 
> __________________________________________________
> Do You Yahoo!?
> Make international calls for as low as $.04/minute
> with Yahoo! Messenger
> http://phonecard.yahoo.com/
> 


__________________________________________________
Do You Yahoo!?
Get email alerts & NEW webcam video instant messaging with Yahoo! Messenger
http://im.yahoo.com

RE: Tomcat4.0 Contexts

Posted by Mark Bennett <ma...@ualberta.ca>.
Hey Calvin,
I know this is old, but did you ever managed to resolve it.  I think I am
having exactly the same problem.  The struts examples which worked with 3.2
don't with 4.0.  They say that the root cause has something to do with a
noClassDefnFound error when looking for a SAXParserException or something
like that.  The error message can be seen on my server at
http://26.64.133.82:8080/struts-example.  If you could let me know I would
really appreciate it as I am about to roll back to Tomcat 3.2.  Thanks man!

-Mark Bennett
Computer Science III
University of Alberta

-----Original Message-----
From: Calvin Lau [mailto:alienatedx@yahoo.com]
Sent: August 29, 2001 2:09 AM
To: struts-user@jakarta.apache.org
Subject: Tomcat4.0 Contexts

Does anyone have an example of a Tomcat4.0 server.xml
that uses Contexts?  I want to run an application that
has it's root outside of Tomcat's root directory but
keep getting XML parse errors for some reason.  It was
all working fine on Tomcat3.2.

Any good resource on Tomcat4.0 would also be good.  I
haven't been able to find anything relevant.

Thanks,

Calvin

__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/


Tomcat4.0 Contexts

Posted by Calvin Lau <al...@yahoo.com>.
Does anyone have an example of a Tomcat4.0 server.xml
that uses Contexts?  I want to run an application that
has it's root outside of Tomcat's root directory but
keep getting XML parse errors for some reason.  It was
all working fine on Tomcat3.2.

Any good resource on Tomcat4.0 would also be good.  I
haven't been able to find anything relevant.

Thanks,

Calvin

__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/

Configuration problem

Posted by David Bolsover <da...@bolsover.com>.
Hi

I will confess from the start that this is not really a struts problem but I
am sure that members of the group will have seen this before and know the
solution.

I have a link on a jsp page to an external site :  <a
href="http://www.foo.com"> foo.com</a>

The problem is that when I browse to the page containing this link
(http://127.0.0.1/demosite/index.jsp) the browser insists on attempting to
find http://127.0.0.1/www.foo.com  which as you would expect returns a 404

Configuration is
W2K
Apache 1.3.20
Tomcat 3.2.1

david


Re: Local Forward with Parameters Causes Exception

Posted by Thomas Quas <tq...@acm.org>.
Thanks all,

problem solved. I'm still puzzled, however, about the message in the
parser exception that told me to use semicolons. Where does this come
from, and shouldn't/can't this be changed to be more expressive?


Thanks again, tom


martin.cooper@tumbleweed.com wrote:
> 
> Not with &quot; but with &amp; like this:
> 
>     <forward name="postCreate"
> 
> path="/product.do?action=list&amp;sortBy=date&amp;order=desc&amp;count=10"/>
> 
> --
> Martin Cooper
> 
> ----- Original Message -----
> From: "Eung-ju Park" <co...@isoft.co.kr>
> To: <st...@jakarta.apache.org>
> Sent: Sunday, August 26, 2001 4:56 AM
> Subject: Re: Local Forward with Parameters Causes Exception
> 
> > replace '&' with '&quot;'
> >
> > ----- Original Message -----
> > From: "Thomas Quas" <tq...@acm.org>
> > To: <st...@jakarta.apache.org>
> > Sent: Sunday, August 26, 2001 4:44 PM
> > Subject: Local Forward with Parameters Causes Exception
> >
> >
> > >
> > > Hi,
> > >
> > > I ran into the following problem: I want to specify a local forward that
> > > represents an action URL. The action requires parameters that I want to
> > > pass
> > > in common HTTP fashion, namely
> > >
> > >         /product.do?action=list&sortBy=date&order=desc
> > >
> > >
> > > Therefore, I have an entry in struts-confix.xml that looks like this:
> > >
> > >     <action path="/product"
> > >             type="tquas.bogus.servlet.ProductActions"
> > >             parameter="action"
> > >             name="productForm"
> > >             scope="request"
> > >             unknown="false"
> > >             validate="true">
> > >         <forward name="postCreate"
> > >
> > > path="/product.do?action=list&sortBy=date&order=desc&count=10"/>
> > >     </action>
> > >
> > > where ProductActions is a subclass of DispatchAction containing an
> > > implementation of method list().
> > >
> > > The problem is that the XML parser throws an exception, basically
> > > telling me
> > > that ampersands are not allowed in this URI:
> > >
> > > org.xml.sax.SAXParseException: Next character must be ";" terminating
> > > reference to entity "sortBy".
> > >         at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3035)
> > >         at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3029)
> > >         at org.apache.crimson.parser.Parser2.nextChar(Parser2.java:2951)
> > >         at
> > > org.apache.crimson.parser.Parser2.parseLiteral(Parser2.java:715)
> > >         at
> > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1375)
> > >         at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> > >         at
> > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> > >         at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> > >         at
> > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> > >         at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> > >         at
> > > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> > >         at
> > > org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
> > >         at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
> > >         at
> > > org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> > > at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> > > org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> > > at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> > >         at javax.xml.parsers.SAXParser.parse(SAXParser.java:317)
> > >         at javax.xml.parsers.SAXParser.parse(SAXParser.java:108)
> > >         at org.apache.struts.digester.Digester.parse(Digester.java:755)
> > >         at
> > >
> >
> org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1331)
> > >         at
> > > org.apache.struts.action.ActionServlet.init(ActionServlet.java:465)
> > >         at javax.servlet.GenericServlet.init(GenericServlet.java:258)
> > > [snip]
> > >
> > >
> > > This kind of puzzled me, but I obeyed and replaced the ampersands with
> > > semicolons. Now the parser shuts up, but as soon as I hit the specified
> > > forward, struts seems to hang in a loop until it produces a
> > > StackOverflowError
> > > (details see below).
> > >
> > > Can anybody help me with this and tell me how I specifiy a local forward
> > > that
> > > accepts parameters in the URI?
> > >
> > >
> > > Thanks in advance, tom
> > >
> > >
> > >
> > > 2001-08-26 09:26:15 StandardWrapperValve[action]: Servlet.service() for
> > > servlet action threw exception
> > > javax.servlet.ServletException: Servlet execution threw an exception
> > >         at
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> > FilterChain.java:269)
> > >         at
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> > ain.java:193)
> > >         at
> > >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> > va:243)
> > >         at
> > >
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > 66)
> > >         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.ja
> > va:219)
> > >         at
> > >
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > 66)
> > >         at
> > >
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > 66)
> > >         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:2251)
> > >         at
> > >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
> > )
> > >         at
> > >
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > 66)
> > >         at
> > >
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
> > >         at
> > >
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > 64)
> > >         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
> > :163)
> > >         at
> > >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> > :163)
> > >         at
> > >
> >
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> > 66)
> > >         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:
> > 984)
> > >         at
> > >
> >
> org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1074
> > )
> > >         at java.lang.Thread.run(Thread.java:484)
> > > ----- Root Cause -----
> > > java.lang.StackOverflowError
> > >         at java.lang.String.hashCode(String.java:1122)
> > >         at java.util.HashMap.put(HashMap.java:327)
> > >         at
> > >
> >
> org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > Request.java:249)
> > >         at
> > >
> >
> org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > Request.java:249)
> > >         at
> > >
> >
> org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > Request.java:251)
> > >         at
> > >
> >
> org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> > Request.java:251)
> > >
> > > [*** last message repeated several times]
> > >
> > > --
> > > thomas quas        | "Art lies in the consciousness of doing the thing,
> > > tquas@acm.org      |  in the attention of the happening[...]"
> > >                    |    -- Allen Ginsberg --
> > >
> >
> >

-- 
thomas quas        | "Art lies in the consciousness of doing the thing,
tquas@acm.org      |  in the attention of the happening[...]"
                   |    -- Allen Ginsberg --

Re: Local Forward with Parameters Causes Exception

Posted by ma...@tumbleweed.com.
Not with &quot; but with &amp; like this:

    <forward name="postCreate"

path="/product.do?action=list&amp;sortBy=date&amp;order=desc&amp;count=10"/>

--
Martin Cooper


----- Original Message -----
From: "Eung-ju Park" <co...@isoft.co.kr>
To: <st...@jakarta.apache.org>
Sent: Sunday, August 26, 2001 4:56 AM
Subject: Re: Local Forward with Parameters Causes Exception


> replace '&' with '&quot;'
>
> ----- Original Message -----
> From: "Thomas Quas" <tq...@acm.org>
> To: <st...@jakarta.apache.org>
> Sent: Sunday, August 26, 2001 4:44 PM
> Subject: Local Forward with Parameters Causes Exception
>
>
> >
> > Hi,
> >
> > I ran into the following problem: I want to specify a local forward that
> > represents an action URL. The action requires parameters that I want to
> > pass
> > in common HTTP fashion, namely
> >
> >         /product.do?action=list&sortBy=date&order=desc
> >
> >
> > Therefore, I have an entry in struts-confix.xml that looks like this:
> >
> >     <action path="/product"
> >             type="tquas.bogus.servlet.ProductActions"
> >             parameter="action"
> >             name="productForm"
> >             scope="request"
> >             unknown="false"
> >             validate="true">
> >         <forward name="postCreate"
> >
> > path="/product.do?action=list&sortBy=date&order=desc&count=10"/>
> >     </action>
> >
> > where ProductActions is a subclass of DispatchAction containing an
> > implementation of method list().
> >
> > The problem is that the XML parser throws an exception, basically
> > telling me
> > that ampersands are not allowed in this URI:
> >
> > org.xml.sax.SAXParseException: Next character must be ";" terminating
> > reference to entity "sortBy".
> >         at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3035)
> >         at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3029)
> >         at org.apache.crimson.parser.Parser2.nextChar(Parser2.java:2951)
> >         at
> > org.apache.crimson.parser.Parser2.parseLiteral(Parser2.java:715)
> >         at
> > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1375)
> >         at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> >         at
> > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> >         at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> >         at
> > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> >         at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
> >         at
> > org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
> >         at
> > org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
> >         at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
> >         at
> > org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> > at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> > org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> > at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> >         at javax.xml.parsers.SAXParser.parse(SAXParser.java:317)
> >         at javax.xml.parsers.SAXParser.parse(SAXParser.java:108)
> >         at org.apache.struts.digester.Digester.parse(Digester.java:755)
> >         at
> >
>
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1331)
> >         at
> > org.apache.struts.action.ActionServlet.init(ActionServlet.java:465)
> >         at javax.servlet.GenericServlet.init(GenericServlet.java:258)
> > [snip]
> >
> >
> > This kind of puzzled me, but I obeyed and replaced the ampersands with
> > semicolons. Now the parser shuts up, but as soon as I hit the specified
> > forward, struts seems to hang in a loop until it produces a
> > StackOverflowError
> > (details see below).
> >
> > Can anybody help me with this and tell me how I specifiy a local forward
> > that
> > accepts parameters in the URI?
> >
> >
> > Thanks in advance, tom
> >
> >
> >
> > 2001-08-26 09:26:15 StandardWrapperValve[action]: Servlet.service() for
> > servlet action threw exception
> > javax.servlet.ServletException: Servlet execution threw an exception
> >         at
> >
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:269)
> >         at
> >
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:193)
> >         at
> >
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:243)
> >         at
> >
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
> >         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.ja
> va:219)
> >         at
> >
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
> >         at
> >
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
> >         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:2251)
> >         at
> >
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
> )
> >         at
> >
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
> >         at
> >
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
> >         at
> >
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
> >         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
> :163)
> >         at
> >
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :163)
> >         at
> >
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
> >         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:
> 984)
> >         at
> >
>
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1074
> )
> >         at java.lang.Thread.run(Thread.java:484)
> > ----- Root Cause -----
> > java.lang.StackOverflowError
> >         at java.lang.String.hashCode(String.java:1122)
> >         at java.util.HashMap.put(HashMap.java:327)
> >         at
> >
>
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> Request.java:249)
> >         at
> >
>
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> Request.java:249)
> >         at
> >
>
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> Request.java:251)
> >         at
> >
>
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
> Request.java:251)
> >
> > [*** last message repeated several times]
> >
> > --
> > thomas quas        | "Art lies in the consciousness of doing the thing,
> > tquas@acm.org      |  in the attention of the happening[...]"
> >                    |    -- Allen Ginsberg --
> >
>
>



Re: Local Forward with Parameters Causes Exception

Posted by Eung-ju Park <co...@isoft.co.kr>.
replace '&' with '&quot;'

----- Original Message -----
From: "Thomas Quas" <tq...@acm.org>
To: <st...@jakarta.apache.org>
Sent: Sunday, August 26, 2001 4:44 PM
Subject: Local Forward with Parameters Causes Exception


>
> Hi,
>
> I ran into the following problem: I want to specify a local forward that
> represents an action URL. The action requires parameters that I want to
> pass
> in common HTTP fashion, namely
>
>         /product.do?action=list&sortBy=date&order=desc
>
>
> Therefore, I have an entry in struts-confix.xml that looks like this:
>
>     <action path="/product"
>             type="tquas.bogus.servlet.ProductActions"
>             parameter="action"
>             name="productForm"
>             scope="request"
>             unknown="false"
>             validate="true">
>         <forward name="postCreate"
>
> path="/product.do?action=list&sortBy=date&order=desc&count=10"/>
>     </action>
>
> where ProductActions is a subclass of DispatchAction containing an
> implementation of method list().
>
> The problem is that the XML parser throws an exception, basically
> telling me
> that ampersands are not allowed in this URI:
>
> org.xml.sax.SAXParseException: Next character must be ";" terminating
> reference to entity "sortBy".
>         at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3035)
>         at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3029)
>         at org.apache.crimson.parser.Parser2.nextChar(Parser2.java:2951)
>         at
> org.apache.crimson.parser.Parser2.parseLiteral(Parser2.java:715)
>         at
> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1375)
>         at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
>         at
> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
>         at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
>         at
> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
>         at org.apache.crimson.parser.Parser2.content(Parser2.java:1700)
>         at
> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1468)
>         at
> org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
>         at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
>         at
> org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
> org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
> at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
>         at javax.xml.parsers.SAXParser.parse(SAXParser.java:317)
>         at javax.xml.parsers.SAXParser.parse(SAXParser.java:108)
>         at org.apache.struts.digester.Digester.parse(Digester.java:755)
>         at
>
org.apache.struts.action.ActionServlet.initMapping(ActionServlet.java:1331)
>         at
> org.apache.struts.action.ActionServlet.init(ActionServlet.java:465)
>         at javax.servlet.GenericServlet.init(GenericServlet.java:258)
> [snip]
>
>
> This kind of puzzled me, but I obeyed and replaced the ampersands with
> semicolons. Now the parser shuts up, but as soon as I hit the specified
> forward, struts seems to hang in a loop until it produces a
> StackOverflowError
> (details see below).
>
> Can anybody help me with this and tell me how I specifiy a local forward
> that
> accepts parameters in the URI?
>
>
> Thanks in advance, tom
>
>
>
> 2001-08-26 09:26:15 StandardWrapperValve[action]: Servlet.service() for
> servlet action threw exception
> javax.servlet.ServletException: Servlet execution threw an exception
>         at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:269)
>         at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
>         at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>         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.ja
va:219)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>         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:2251)
>         at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
>         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
:163)
>         at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:163)
>         at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
>         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:
984)
>         at
>
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1074
)
>         at java.lang.Thread.run(Thread.java:484)
> ----- Root Cause -----
> java.lang.StackOverflowError
>         at java.lang.String.hashCode(String.java:1122)
>         at java.util.HashMap.put(HashMap.java:327)
>         at
>
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
Request.java:249)
>         at
>
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
Request.java:249)
>         at
>
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
Request.java:251)
>         at
>
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttp
Request.java:251)
>
> [*** last message repeated several times]
>
> --
> thomas quas        | "Art lies in the consciousness of doing the thing,
> tquas@acm.org      |  in the attention of the happening[...]"
>                    |    -- Allen Ginsberg --
>