Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

org.xml.sax.SAXParseException: Document is invalid: no grammar found.

I'm getting the errors in my Struts application, on my development machine, saying apparently my config files have errors (which I already checked and seem ok):

org.apache.commons.digester.Digester error
    SEVERE: Parse Error at line 3 column 15: Document is invalid: no grammar found.
    org.xml.sax.SAXParseException: Document is invalid: no grammar found.


org.apache.commons.digester.Digester error
    SEVERE: Parse Error at line 3 column 15: Document root element "struts-config", must match DOCTYPE root "null".
    org.xml.sax.SAXParseException: Document root element "struts-config", must match DOCTYPE root "null".

Apparently, on development machine the application manages to run. However, on the deploy server I get the following errors, which I don't know if might be related:

    org.apache.struts.action.ActionServlet handleConfigException 
SEVERE: Parsing error processing resource path /WEB-INF/struts-config.xml java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)

My struts-config.xml file: http://pastebin.com/i0XanZZt My web.xml file: http://pastebin.com/jMPAdSUm

What can possibly be wrong here? Some lib missing? Incorrect lib versions (using latest Struts 1 release)?

Thanks in advance!

like image 739
Rui Avatar asked Apr 26 '12 19:04

Rui


3 Answers

Just went through the struggles of something very similar. Was also receiving the org.xml.sax.SAXParseException: Document is invalid: no grammar found. Original developer had setValidation(true) for the Digester and then was trying to validate using a schema. When validation is set to true it expects a DTD in the DOCTYPE declaration of the XML. So when one is not found the Exception occurs.

Solution: DO NOT set validation to true on the Digester when validating using a schema.

Below is good link that shows how to set up the Digester where it defines schema for the Digester to use. Of course if schema is defined in the xml then there is no need to define a schema for the Digester and validation will occur automatically.

http://alvinalexander.com/java/jwarehouse/commons-digester/src/test/java/org/apache/commons/digester/XMLSchemaTestCase.java.shtml

Hope this helps...

like image 143
user2543287 Avatar answered Nov 20 '22 17:11

user2543287


For those who doing JPOS, add these two lines in xml file

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager SYSTEM "genericpackager.dtd">
like image 31
John Joe Avatar answered Nov 20 '22 16:11

John Joe


Just check struts.xml, correct the following and run your program.

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
like image 2
Pradeep Yadava Avatar answered Nov 20 '22 16:11

Pradeep Yadava