org.xml.sax.SAXParseException:文档无效:未找到语法.

Rui*_*Rui 12 java struts exception struts-config

我在我的开发机器上的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".
Run Code Online (Sandbox Code Playgroud)

显然,在开发机器上,应用程序可以运行.但是,在部署服务器上,我收到以下错误,我不知道是否可能相关:

    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)
Run Code Online (Sandbox Code Playgroud)

我的struts-config.xml文件:http://pastebin.com/i0XanZZt 我的web.xml文件:http://pastebin.com/jMPAdSUm

这可能有什么问题?有些lib丢失了?lib版本不正确(使用最新的Struts 1版本)?

提前致谢!

小智 8

刚刚经历了非常相似的挣扎.还收到了org.xml.sax.SAXParseException:文档无效:找不到语法.原始开发人员为Digester设置了setValidation(true),然后尝试使用模式进行验证.当验证设置为true时,它需要XML的DOCTYPE声明中的DTD.因此,当找不到一个异常时.

解决方案:在使用模式进行验证时,请勿在Digester上将验证设置为true.

下面是一个很好的链接,显示了如何设置Digester,它定义了Digester使用的模式.当然,如果在xml中定义了模式,则无需为Digester定义模式,并且将自动进行验证.

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

希望这可以帮助...