You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Rodolfo García Esteban/CYII <rg...@cyii.es> on 2005/04/26 09:01:39 UTC

Struts 1.2.4 compiled by me doesn't find http://java.sun.com/dtd/web-app_2_3.dtd

Hi,

I have compiled struts 1.2.4, because I had obtained an error, I put 
traces in the code of struts, re-compiled and when the application loads 
in Tomcat I obtain the next error.

2005-04-26 08:47:21,557 ERROR org.apache.struts.action.ActionServlet - The 
/WEB-INF/web.xml was not found.
java.io.IOException: Server returned HTTP response code: 403 for URL: 
http://java.sun.com/dtd/web-app_2_3.dtd
        at 
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:791)
        at java.net.URL.openStream(URL.java:913)
        at 
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
        at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown 
Source)
        at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown 
Source)
....

And web.xml is in WEB-INF, I haven't changed the file. When I try to 
access to   http://java.sun.com/dtd/web-app_2_3.dtd via explorer, explorer 
finds the file. ¿Which it can be? ¿Why with struts.jar works and with my 
compilations works different?

Thanks
________________________
Rodolfo 
_______________________

Re: Struts 1.2.4 compiled by me doesn't find http://java.sun.com/dtd/web-app_2_3.dtd

Posted by Joe Germuska <Jo...@Germuska.com>.
Your build is probably not correctly including a 
copy of the DTD in the JAR.  Struts uses 
commons-digester to read the web.xml  to learn 
the servlet-mapping so that it can properly 
expand action paths to resolvable URLs.  Digester 
allows you to register local copies of DTDs so as 
to support validating parses of XML files without 
needing to retrieve the DTD.

If you look at 
http://svn.apache.org/repos/asf/struts/core/tags/STRUTS_1_2_4/src/share/org/apache/struts/action/ActionServlet.java

you'll see a String[] called registrations which 
holds this information.  You should be including 
those DTDs in those locations in your Struts jar, 
and you should make sure to use exactly those DTD 
public identifiers to make sure that digester can 
find the right DTD.

Even better would be to set up Ant to build 
Struts for you the same way that Struts 1.2 
distributions have been built in the past -- that 
would take care of it for you, for only the 
effort of setting up a properties file.  The Ant 
build takes care of other esoterica for you also, 
like generating the taglib TLD files and making 
sure they get in the JAR.

Joe

At 9:01 AM +0200 4/26/05, Rodolfo García Esteban/CYII wrote:
>Hi,
>
>I have compiled struts 1.2.4, because I had obtained an error, I put
>traces in the code of struts, re-compiled and when the application loads
>in Tomcat I obtain the next error.
>
>2005-04-26 08:47:21,557 ERROR org.apache.struts.action.ActionServlet - The
>/WEB-INF/web.xml was not found.
>java.io.IOException: Server returned HTTP response code: 403 for URL:
>http://java.sun.com/dtd/web-app_2_3.dtd
>         at
>sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:791)
>         at java.net.URL.openStream(URL.java:913)
>         at
>org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
>         at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown
>Source)
>         at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown
>Source)
>....
>
>And web.xml is in WEB-INF, I haven't changed the file. When I try to
>access to   http://java.sun.com/dtd/web-app_2_3.dtd via explorer, explorer
>finds the file. ¿Which it can be? ¿Why with struts.jar works and with my
>compilations works different?
>
>Thanks
>________________________
>Rodolfo
>_______________________


-- 
Joe Germuska            
Joe@Germuska.com  
http://blog.germuska.com    
"Narrow minds are weapons made for mass destruction"  -The Ex