1

OpenXava4.6でポートレットを作成しました。ただし、Liferay 6.1.1 CE GAでデプロイすると、正しく実行されません。

これらは問題です:

a。)OX 4.5.1および4.6で作成されたweb.xmlは、Liferay6.1で認識されません。

15:23:28,665 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:182] Processing <..>.war. This is attempt 2.
15:23:28,673 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][PortletAutoDeployListener:77] Copying portlets for ../liferay-portal-6.1.1-ce-ga2/deploy/<..>.war
15:23:28,676 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:1674] ../liferay-portal-6.1.1-ce-ga2/deploy/<..>.war does not have a WEB-INF/liferay-plugin-package.xml or WEB-INF/liferay-plugin-package.properties
15:23:28,677 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:763] Deploying <..>.war
15:23:33,110 ERROR [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:210] com.liferay.portal.kernel.deploy.auto.AutoDeployException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: web.xml must be updated to the Servlet 2.4 specification

b。)web.xmlファイルには次のヘッダーが必要です。

<?xml version="1.0" encoding="UTF-8"?>

<web-app id=".." version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
<http://java.sun.com/xml/ns/j2ee%5C>" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance\
<http://www.w3.org/2001/XMLSchema-instance%5C>"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\
<http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd%5C>">

<display-name>...</display-name>
...

c。)上記のように「web.xml」ファイルを変更した後(および新しいWARファイルを作成した後でも)、Liferayはポートレットをロードでき、使用可能なポートレットのリストに表示されます。ただし、ポートレットは機能しません。

15:35:01,457 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][PortletAutoDeployListener:87] Portlets for ../liferay-portal-6.1.1-ce-ga2/deploy/<..>.war copied successfully. Deployment will start in a few seconds.
15:35:04,651 INFO  [pool-2-thread-2][HotDeployImpl:178] Deploying <..> from queue
15:35:04,653 INFO  [pool-2-thread-2][PluginPackageUtil:1033] Reading plugin package for <..>
15:35:04,653 WARN  [pool-2-thread-2][PluginPackageUtil:1131] Plugin package on context <..> cannot be tracked because this WAR does not contain a liferay-plugin-package.xml file

d。)ファイル「liferay-plugin-package.xml」をWARファイルに手動で追加しましたが、Liferayはまだポートレットを正しく表示しません。

どんな提案も歓迎します。ありがとう。

4

2 に答える 2

1

OpenXava はまだ Liferay 6.1 をサポートしていません。今後の OX バージョンで Liferay 6.1 のサポートを追加する予定です。

ただし、一部の OX ユーザーは、web.xml を更新するだけで Liferay 6.1 に OX アプリケーションをデプロイできます。OpenXava フォーラムの次のスレッドを参照してください。

https://sourceforge.net/p/openxava/discussion/419690/thread/79695196/

https://sourceforge.net/p/openxava/discussion/419690/thread/da118e74/

ですから、あなたの問題d)は他の問題に関連していると思います。jta.jar と ejb.jar を Liferay の lib フォルダーにコピーしましたか? スタックトレースが生成するポートレットが表示される場所をここに配置できますか?

于 2012-11-29T16:53:34.880 に答える
1

Liferay IDE を使用してポートレットを作成しているようには思えませんが、実際に開発に役立つので、そうすることをお勧めします! ( Liferay IDE インストールガイド& Liferay IDE 入門ガイド)

注意として、liferay-plugin-package を含める必要があります。ポートレットの docroot/WEB-INF フォルダー内のproperties、liferay-portlet.xml、portlet.xml、liferay-display.xml、および web.xml。

各ファイルの内容は次のようになります。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" 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">
     <display-name>my-portlet</display-name>
    <jsp-config>
        <taglib>
            <taglib-uri>http://java.sun.com/portlet_2_0</taglib-uri>
            <taglib-location>
                    /WEB-INF/tld/liferay-portlet.tld
            </taglib-location>
         </taglib>
         <taglib>
            <taglib-uri>http://liferay.com/tld/aui</taglib-uri>
            <taglib-location>/WEB-INF/tld/aui.tld</taglib-location>
            </taglib>
    </jsp-config>   
</web-app>

liferay-display.xml

<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 6.1.0//EN" "http://www.liferay.com/dtd/liferay-display_6_1_0.dtd">
<display>
    <category name="category.sample">
        <portlet id="my-portlet" />
    </category>
</display>

liferay-plugin-package.properties

name=My Portlet
module-group-id=liferay
module-incremental-version=1
tags= 
short-description=
change-log=
page-url=http://www.liferay.com
author=Liferay, Inc.
licenses=LGPL
liferay-versions=6.1.1

liferay-portlet.xml

<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.1.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_1_0.dtd">
<liferay-portlet-app>
    <portlet>
        <portlet-name>my-portlet</portlet-name>
        <icon>/icon.png</icon>
        <instanceable>false</instanceable>
        <header-portlet-css>/css/main.css</header-portlet-css>
        <footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
    <css-class-wrapper>my-portlet</css-class-wrapper>
</portlet>
<role-mapper>
    <role-name>administrator</role-name>
    <role-link>Administrator</role-link>
</role-mapper>
<role-mapper>
    <role-name>guest</role-name>
    <role-link>Guest</role-link>
</role-mapper>
<role-mapper>
        <role-name>power-user</role-name>
        <role-link>Power User</role-link>
    </role-mapper>
    <role-mapper>
        <role-name>user</role-name>
        <role-link>User</role-link>
    </role-mapper>
</liferay-portlet-app>
于 2012-11-28T10:39:18.683 に答える