2012-04-26 98 views
10

estoy recibiendo los errores en mi aplicación Struts, en mi máquina de desarrollo, diciendo al parecer mis archivos de configuración han errores (que ya comprobado y parece bien):org.xml.sax.SAXParseException: El documento no es válido: no se ha encontrado la gramática.

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". 

Al parecer, el equipo de desarrollo de la aplicación gestiona correr. Sin embargo, en el servidor de implementación consigo los siguientes errores, que no sé si podrían estar relacionados:

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) 

Mi archivo struts-config.xml: http://pastebin.com/i0XanZZt Mi archivo web.xml: http://pastebin.com/jMPAdSUm

¿Qué puede estar mal aquí? ¿Alguna lib desaparecida? ¿Versiones de lib incorrectas (utilizando la última versión de Struts 1)?

¡Gracias de antemano!

+0

¿Se puede eliminar el doctype y probar? – bluesman

+0

Oye, he probado y obtengo los mismos errores: S – Rui

+0

FWIW, recientemente introduje errores similares a los 2 primeros en la consola en una aplicación en la que estoy trabajando. Sin embargo, todo parece funcionar bien, así que lo consideraría una advertencia, no un error. (Aún así, es bueno arreglar lo que está causando la advertencia. Todavía estoy buscando en Google este problema). El tercer error que enumeró no está relacionado, estoy bastante seguro. – apollodude217

Respuesta

6

Acabo de pasar por la lucha de algo muy similar. También recibía org.xml.sax.SAXParseException: el documento no es válido: no se ha encontrado la gramática. El desarrollador original tenía setValidation (verdadero) para Digester y luego intentaba validar usando un esquema. Cuando la validación se establece en verdadero, espera una DTD en la declaración DOCTYPE del XML. Entonces, cuando no se encuentra uno, ocurre la Excepción.

Solución: NO configure la validación como verdadera en el digestor al validar usando un esquema.

A continuación se muestra un buen enlace que muestra cómo configurar el digestor donde define el esquema para el uso del digestor. Por supuesto, si el esquema está definido en el xml, entonces no hay necesidad de definir un esquema para el digestor y la validación se realizará automáticamente.

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

Espero que esto ayude ...

1

Sólo echa struts.xml, corregir lo siguiente y ejecutar el programa.

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> 
0

Para aquellos que haciendo JPOS, añadir estas dos líneas en xml archivo

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE isopackager SYSTEM "genericpackager.dtd"> 
0

consiguió esta tratando de hacer la validación XSD usando SAX:

Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 30; Document is invalid: no grammar found. 
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 

Fix parecía ser agregar este :

saxParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); 

ref: https://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html

Cuestiones relacionadas