我在开发机器上的 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)
我的支柱配置.xml文件:http://pastebin.com/i0XanZZt我的网站.xml文件:http://pastebin.com/jMPAdSUm
这里可能有什么问题?缺少一些库?不正确的库版本(使用最新的 Struts 1 版本)?
提前感谢!
刚刚经历了非常相似的事情的挣扎。还收到 org.xml.sax.SAXParseException: 文档无效: 找不到语法。 最初的开发人员为消化器设置了验证(true),然后尝试使用模式进行验证。 当验证设置为 true 时,它需要在 XML 的 DOCTYPE 声明中使用 DTD。 因此,当找不到异常时,会发生异常。
解决方案:使用架构进行验证时,请勿在消化器上将验证设置为 true。
下面的链接很好,显示了如何设置消化器,其中定义了消化器要使用的架构。 当然,如果在 xml 中定义了模式,则无需为 Digester 定义模式,验证将自动发生。
http://alvinalexander.com/java/jwarehouse/commons-digester/src/test/java/org/apache/commons/digester/XMLSchemaTestCase.java.shtml
希望这有帮助...
对于那些做JPOS
的人,将这两行添加到xml
文件中
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager SYSTEM "genericpackager.dtd">
只需检查struts.xml
,更正以下内容并运行程序。
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.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);
参考: https://docs.oracle.com/javase/tutorial/jaxp/sax/validation.html