org.xml.sax.SAXParseException:文档无效:找不到语法。
我得到的错误在我的Struts应用程序,我的开发机上,说我明显的配置文件存在错误(我已经检查,似乎OK):org.xml.sax.SAXParseException:文档无效:找不到语法。
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".
显然,开发机器上的应用程序管理跑步。但是,部署服务器上,我得到以下错误,我不知道是否可能涉及:
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)
我的struts-config.xml文件:http://pastebin.com/i0XanZZt 我的web.xml文件:http://pastebin.com/jMPAdSUm
这里可能有什么错误?有些库丢失?不正确的lib版本(使用最新的Struts 1版本)?
在此先感谢!
刚刚经历了非常相似的事情的斗争。还收到org.xml.sax.SAXParseException:文档无效:找不到语法。原始开发者为Digester设置了验证(true),然后尝试使用模式进行验证。当验证设置为true时,它需要在XML的DOCTYPE声明中使用DTD。所以当找不到时会发生异常。
解决方案:在使用模式进行验证时,请勿在Digester上将验证设置为true。
下面是一个很好的链接,它显示了如何设置Digester,它定义了Digester使用的模式。当然,如果模式是在xml中定义的,那么就不需要为Digester定义一个模式,并且验证会自动发生。
希望这有助于...
只要检查struts.xml
,更正以下和运行程序。
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
对于那些谁做JPOS
,在xml
文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager SYSTEM "genericpackager.dtd">
得到这个尝试使用SAX做XSD验证添加以下两行:
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)
修复似乎是添加此:
saxParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
ref:https://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html
你可以删除文档类型并测试吗? – bluesman 2012-04-26 19:39:59
嗨,我已经测试过,并且出现了相同的错误:S – Rui 2012-04-26 20:56:45
FWIW,我最近在我正在开发的应用程序中引入类似于前两个错误的错误。然而,一切看起来都很好,所以我认为这是一个警告,而不是一个错误。 (尽管如此,解决引起警告的任何问题都是很好的,我仍然在使用这个问题。)列出的第三个错误与我无关,我很确定。 – apollodude217 2012-12-18 15:13:08