2012-04-26 314 views
10

私は、私の開発マシン上で、私の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が見つからない?不正なlibバージョン(最新のStruts 1リリースを使用しています)?

ありがとうございます!

+0

Doctypeとテストを削除できますか? – bluesman

+0

ちょっと、私はテストして、同じエラーが発生します:S – Rui

+0

FWIW、私は最近、私が取り組んでいるアプリケーションのコンソールに最初の2に似たエラーを導入しました。しかし、すべてが正常に動作するように見えるので、私はこれをエラーではなくエラーとみなします。 (まだ、この警告を引き起こしているものを修正するのは良いことですが、私はまだこの問題を抱えています。)あなたが挙げた3番目のエラーは無関係です。 – apollodude217

答えて

6

ちょうど非常に似たような闘いを経験しました。また、org.xml.sax.SAXParseExceptionを受け取りました:Document is invalid:文法が見つかりません。元の開発者はDigesterのsetValidation(true)を持っていて、次にスキーマを使用して検証しようとしていました。 validationがtrueに設定されている場合、XMLのDOCTYPE宣言にDTDが必要です。したがって、例外が見つからない場合、例外が発生します。

解決策:スキーマを使用して検証する場合、Digesterで検証をtrueに設定しないでください。

以下はDigesterが使用するスキーマを定義するDigesterを設定する方法を示すよいリンクです。もちろん、スキーマがxmlで定義されている場合、Digesterのスキーマを定義する必要はなく、検証は自動的に行われます。

​​

希望これはちょうど、struts.xmlをチェックし、以下を修正して、プログラムを実行します...

1

に役立ちます。 JPOSをやって人のために

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

xmlファイル内の2行

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

を追加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

関連する問題