我在我的开发机器上的 Struts 应用程序中遇到错误,显然我的配置文件有错误(我已经检查过并且看起来没问题):
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
这里可能有什么问题?缺少一些库?库版本不正确(使用最新的 Struts 1 版本)?
提前致谢!
最佳答案
刚刚经历了非常相似的事情的挣扎。还收到 org.xml.sax.SAXParseException:文档无效:未找到语法。原始开发人员为 Digester 设置了 setValidation(true),然后尝试使用模式进行验证。当验证设置为真时,它需要 XML 的 DOCTYPE 声明中的 DTD。因此,当找不到一个时,就会发生异常。
解决方案:在使用模式进行验证时,不要在 Digester 上将验证设置为 true。
下面是一个很好的链接,它显示了如何设置 Digester,它定义了 Digester 使用的模式。当然,如果在 xml 中定义了模式,则无需为 Digester 定义模式,验证将自动进行。
希望这有助于...
关于java - org.xml.sax.SAXParseException : Document is invalid: no grammar found.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10340126/