サービス ビルダーを使用して構築された Liferay ポータル プロジェクトがあります。ポートレットを生成する際に jar も作成され、その jar を他のポートレットで使用したいと考えています。ここや他の場所の投稿から、myPortletName-portlet-services.jar を他のポートレットの WEB-INF/lib フォルダーに配置することをお勧めします。*-portlet-services.jar が Tomcat の /lib/ext フォルダーに配置されている場所も確認しました。また、依存関係で liferay-plugin-package.properties を更新する必要がある場所も読みました。
私はそれぞれのアプローチを試してみましたが、それぞれが興味をそそるほど効果的な結果を生み出しています. サービス ビルダーで構築された jar は、LR データベースとは異なる jndi/jdbc グローバル リソースを参照し、メソッドがその jar から呼び出されると、「ユーザーに権限がないか、オブジェクトが見つかりません:」というエラーが表示されます (これについては他の場所で投稿しました)。 )。
私の推測では、jar には満たされていない Spring/Hibernate への依存関係がいくつかあります。または、jar がサービス ビルダーのデプロイされたポータルの外部に配置されている場合、jndi/jdbc リソースは「表示」されません。いずれにせよ、jar のメソッドが見つかっていることは明らかなので (それ以外の場合は恐ろしい beanLocator エラー)、これは単に DB 接続の問題です。
問題は、サービス ビルダーによって生成された jar が元のポータルの外部の他のポータルに配置された場合に満たされない構造上の依存関係があるかどうかです。