2012-08-09 18 views
6

私のアプリケーションをliferay 6.1.1にデプロイしようとしましたが、このエラーが発生しました(このアプリケーションを6.0.6でテストしたところすべて問題ありません)。それはどういう意味ですか? com.liferay.portal.kernel.xml.DocumentException:によって引き起こさxml-parsing error in liferay 6.1.1

文書の 行1でエラーが発生:次の値「バージョン」XMLに 宣言は引用符で囲まれた文字列でなければなりません。ネストされた例外:XML宣言の "version"に続く値 は、引用符付きの文字列でなければなりません。

up:どのファイルがこのエラーを出すのか分かりません。 全ログ

私はこのエラーを与えてどのファイルか分からない... すべて をログには、[#| 2012-08-09T15:12:+ 0400 20.322 | INFO | glassfish3.1.2 | javax.enterprise .system.store.com.sun.enterprise.server.logging | _ThreadID = 17; _ThreadName = Thread-3; | 15:12:20,321 ERROR [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner] [AutoDeployDir: 210] com.liferay.portal.kernel.deploy.auto.AutoDeployException:com.liferay.portal.kernel.xml.DocumentException:ドキュメントの1行目のエラー:XML宣言の "version"に続く値は、引用符付きの文字列でなければなりません。ネストされた例外:XML宣言の "version"に続く値は、引用符付きの文字列でなければなりません。 com.liferay.portal.kernel.deploy.auto.AutoDeployException:com.liferay.portal.kernel.xml.DocumentException:ドキュメントの1行目のエラー:XML宣言の "version"の後の値を引用符付きの文字列にする必要があります。ネストされた例外:XML宣言の "version"に続く値は、引用符付きの文字列でなければなりません。 com.liferay.portal.deploy.auto.PortletAutoDeployListener.deployでcom.liferay.portal.tools.deploy.BaseDeployer.autoDeploy(BaseDeployer.java:201) (PortletAutoDeployListener.java:84)com.liferayで で。 portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoDeployDir.java:193) at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(AutoDeployDir.java:235) at com.liferay.portal。カーネル.deploy.auto.AutoDeployScanner.run(AutoDeployScanner.java:54) 原因:com.liferay.portal.kernel.xml.DocumentException:ドキュメントの1行目のエラー:XML宣言の "version"の後の値は、引用符で囲まれた文字列です。ネストされた例外:XML宣言の "version"に続く値は、引用符付きの文字列でなければなりません。 com.liferay.portal.xml.SAXReaderImpl.read(SAXReaderImpl.java:399) at com.liferay.portal.xml.SAXReaderImpl.read(SAXReaderImpl.java:378) at com.liferay.portal.xml。 SAXReaderImpl.read(SAXReaderImpl.java:409) at com.liferay.portal.kernel.xml.SAXReaderUtil.read(SAXReaderUtil.java:155) at com.liferay.portal.tools.WebXMLBuilder.organizeWebXML(WebXMLBuilder.java: 60) at com.liferay.portal.tools.deploy.BaseDeployer.updateWebXml(BaseDeployer.java:2078) at com.liferay.portal.tools.deploy.BaseDeployer.deployDirectory(BaseDeployer.java:576) at com。 liferay.portal.tools.deploy.BaseDeployer.deployFile(BaseDeployer.java:957) at com.liferay.portal.tools.deploy.BaseDeployer.deployFile(BaseDeployer.java:889)(バージョン:1.0.1)詳細はこちらをご参照ください。 原因:org.dom4j.DocumentException:ドキュメントの1行目のエラー: "version XML宣言では引用符で囲まれた文字列でなければなりません。ネストされた例外:XML宣言の "version"に続く値は、引用符付きの文字列でなければなりません。 at org.dom4j.io.SAXReader.read(SAXReader.java:482) at org.dom4j.io.SAXReader.read(SAXReader.java:365) at com.liferay.portal.xml.SAXReaderImpl.read( SAXReaderImpl.java:396) ...あなたは(フック、テーマ、ポートレットなど)は、エラーの原因となっているプラ​​グインがわかっている場合、あなたはそのフォルダ構造やチェックのすべてのXMLファイルをチェックする必要があるとしている、#]

+0

web.xmlを表示する –

+1

"deploy"ディレクトリに何かがありますか?プラグイン?どのバージョンですか? –

+0

web.xml http://pastebin.com/bsRtCwvy – dmitrievanthony

答えて

8

web.xmlファイルに問題がある可能性があります。 6.1GA1では正常に動作し、6.1GA2では正常に機能しなかったポートレットで同様の問題が発生しました。 Liferayはポートレット(およびフックなど)をデプロイするときに、ファイルやその他のファイルを書き換えてフィルタやライブラリなどを追加します。そのため、Liferayが生成したファイルとのエラーはおそらくファイルではありません。私の場合は

、Liferayのは、だから、が問題を引き起こした最初の行を変更した

<?xml version=<filters>[other stuff]</filters> 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

のようなものに

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

からのweb.xmlの最初の部分を変更しました。私は<!-- -->を使っていくつかのXMLをコメントアウトし、それらのセクションを削除することで問題が解決されました。しかし、バグIMHOです。

+4

同じ問題が発生しましたが、あなたの回避策は動作しますが、確かにLiferayのバグですので、先に進み、問題を作成しました:http://issues.liferay.com/browse/LPS-29373 – fimez

0

| 13より

これは本当に面倒な作業ですが、他にはできることはたくさんあります。

エラーの原因となっているプラ​​グインがわからない場合は、見つけられるまで1つずつ展開してください!

希望すると便利です。

+0

./ -name "* .xml" -exec head -1 {} \を検索します。 | grepバージョン。 find ./ -name "* .xhtml" -exec head -1 {} \; | grepのバージョン でも、libの部分もすべてOKです。 – dmitrievanthony

+0

6.1.1 Plugins-SDKを使用してポートレットを再作成しようとしましたか?あなたのソースにコピーしますか? – Jonny

1

web.xmlのタグ "display-name"に注意してください。 時には(これは私の場合です)Eclipseプラグインは、 "j2ee:display-name"タグを使用してweb.xmlを作成します。 Deployerは、 "/ display-name"タグ位置の後にフィルタブロック設定を追加しようとします。 "j2ee:display-name"が存在する場合、deployerは "version"属性などのファイルの不正な位置にフィルタブロック設定を追加します。 "j2ee:display-name"タグを "display-name"タグに置き換えると、問題が解決されます。