2

既存のポートレットのソースがあります。いくつかのエラーを修正するために少し変更したので、修正したソースを liferay にデプロイする必要があります。アーティファクト オプションを使用して war ファイルをビルドし、この war ファイルを通常どおりデプロイします。しかし、ポートレットがリストに表示されないため、ページに追加できません。私は何を間違っていますか?

重要な場合は、Idea 11.1 と liferay 6.0.6 を使用します。

他の war ファイル (自分でコンパイルしなかったもの) が正常にデプロイされたため、間違った war ファイルの問題のようです。

また、重要な場合は、アーティファクトをビルドするときに war ファイルを作成し、Ant を使用しません。


ログ:

09:37:09,430 INFO  [PortletAutoDeployListener:71] Copying portlets for D:\odesk_work\liferay\liferay-portal-6.0.6\deploy\Comply-Activities-portlet-6.0.5.2.war
  Expanding: D:\odesk_work\liferay\liferay-portal-6.0.6\deploy\Comply-Activities-portlet-6.0.5.2.war into D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483\WEB-INF
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483\WEB-INF\classes
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483\WEB-INF\classes
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483\META-INF
  Copying 119 files to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\webapps\Comply-Activities-portlet
  Copying 1 file to D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\webapps\Comply-Activities-portlet
  Deleting directory D:\odesk_work\liferay\liferay-portal-6.0.6\tomcat-6.0.29\temp\20120409093709483
09:37:12,456 INFO  [PortletAutoDeployListener:81] Portlets for D:\odesk_work\liferay\liferay-portal-6.0.6\deploy\Comply-Activities-portlet-6.0.5.2.war copied successfully. Deployment will start in a few seconds.

展開時にクラッシュするようです。有効なポートレットをデプロイしようとすると、ログに次のような追加情報があるためです

09:13:37,874 INFO  [PortletHotDeployListener:220] Registering portlets for Comply-Activities-portlet
09:13:37,976 INFO  [PortletHotDeployListener:369] 1 portlet for Comply-Activities-portlet is available for use

UPD: 誰かが *.war を適切にビルドする方法を教えてくれるでしょうか? それで十分だと思います。

4

3 に答える 3

1

liferay-display.xmlが戦争のWEB-INFディレクトリにあり、その内容に問題がないことを確認してください。

次のようなものが含まれている必要があります。

<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 5.2.0//EN"     "http://www.liferay.com/dtd/liferay-display_5_2_0.dtd">

<display>
<category name="${liferay.category}">
    <portlet id="yourPortletID" />
    <portlet id="yourPortletID2" />
            <!-- more portlet ids -->
</category>
</display>

戦争を作成するときに、ビルドシステムがそれを見逃している可能性があります。

そうでない場合は、手動でそこに入れ、それが機能するかどうかを確認してください。

編集

Ok。servlet-apiより多くの情報が得られたので、戦争に含めているようです。その jar (およびその中のクラス) は、ポータル (より具体的にはサーブレット コンテナー) によって提供されます。についても同様ですportlet-api。デプロイされたアプリケーションにそれらを含めるべきではありません。

それらの依存関係が<scope>provided</scope>pom.xml のように指定されているかどうかを確認してください。

于 2012-04-08T23:38:57.260 に答える
0

アリでプロジェクトを構築し、戦争を作成すると、それが機能します。しかし、おそらくIDEAを使用するだけで、antを使用せずにそれを行うことが可能です。確認する必要があります。

于 2012-04-09T13:43:30.840 に答える
0

最初に bundles/tomcat/webapps からポートレットをアンデプロイしてみてください - ポートレット ディレクトリを削除してください。その後、ポートレットを再度デプロイします。

于 2012-04-08T22:04:25.997 に答える