6

アプリケーションをliferay6.1.1にデプロイしようとすると、このエラーが発生します(6.0.6でこのアプリケーションをテストしたとき、すべて問題ありません)。どういう意味ですか?

原因:com.liferay.portal.kernel.xml.DocumentException:ドキュメントの1行目のエラー:XML宣言の「version」に続く値は引用符で囲まれた文字列である必要があります。ネストされた例外:XML宣言の「version」に続く値は引用符で囲まれた文字列である必要があります。

up:このエラーが発生したファイルがわかりません。完全なログ

このエラーが発生しているファイルがわかりません...すべてのログ[#| 2012-08-09T15:12:20.322 + 0400 | INFO | glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise。 server.logging | _ThreadID = 17; _ThreadName = Thread-3; | 15:12:20,321エラー[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宣言では、引用符で囲まれた文字列である必要があります。ネストされた例外:XML宣言の「version」に続く値は引用符で囲まれた文字列である必要があります。com.liferay.portal.tools.deploy.BaseDeployer.autoDeploy(BaseDeployer.java:201)at com.liferay.portal.deploy.auto.PortletAutoDeployListener.deploy(PortletAutoDeployListener.java:84)at 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.kernel.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)atcom。 Liferay.portal.tools.deploy.BaseDeployer.updateWebXml(BaseDeployer.java:2078)at com.liferay.portal.tools.deploy.BaseDeployer.deployDirectory(BaseDeployer.java:576)atcom.liferay.portal.tools.deploy。 com.liferay.portal.tools.deploy.BaseDeployer.deployFile(BaseDeployer.java:889)のBaseDeployer.deployFile(BaseDeployer.java:957)。liferay.portal.tools.deploy.BaseDeployer.autoDeploy(BaseDeployer.java:198)... 4 more原因:org.dom4j.DocumentException:ドキュメントの1行目のエラー:XML宣言の「バージョン」に続く値は引用符で囲まれた文字列である。ネストされた例外:XML宣言の「version」に続く値は引用符で囲まれた文字列である必要があります。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)... 13詳細|#] XML宣言の「version」に続く値は、引用符で囲まれた文字列である必要があります。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)... 13詳細|#] XML宣言の「version」に続く値は、引用符で囲まれた文字列である必要があります。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)... 13詳細|#]

4

3 に答える 3

8

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

私の場合、Liferayはweb.xmlの最初の部分をから変更しました

<?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">

のようなものに

<?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がコメントアウトされました。しかし、それは私見のバグです。

于 2012-08-12T10:45:54.127 に答える
1

web.xmlのタグ「display-name」に注意してください。時々(そしてこれは私の場合です)Eclipseプラグインは「j2ee:display-name」タグを使用してweb.xmlを作成します。Deployerは、「/display-name」タグの位置の後にフィルターブロック構成を追加しようとします。「j2ee:display-name」が存在する場合、デプロイヤーは「バージョン」属性などのファイル内の不適切な位置にフィルターブロック構成を追加します。「j2ee:display-name」タグを「display-name」タグに置き換えると、問題が解決します。

于 2013-09-10T08:45:47.027 に答える
0

エラーの原因となっているプラ​​グイン(フック、テーマ、ポートレットなど)がわかっている場合は、そのフォルダー構造内のすべてのXMLファイルをチェックし、最初の行をチェックして、次のことを確認する必要があります。

<?xml version="1.0"?>

それは退屈な作業になるでしょうが、他にできることはたくさんありません!

エラーの原因がわからない場合は、プラグインが見つかるまで1つずつデプロイしてください。

お役に立てれば!

于 2012-08-09T19:11:44.313 に答える