2

(もしそうなら、どのように?)

他のポートレットにサービスを提供するサービス ビルダーを使用して構築された Liferay ポートレットがあり、サーブレットで同じ jar を使用できるかどうか疑問に思っています。これまでのところ、私は成功していません。ポートレットを作成して、そのポートレットから同じサービスを呼び出してみましたが、どちらもうまくいきませんでした。したがって、これらのサービスを利用できるようにするポートレットとサーブレットの構成に何かが欠けているに違いありません。私は何を取りこぼしたか?

それが違いを生む場合、WindowsでLiferay 6.1.1 Tomcat(7)バンドルを実行します...

4

1 に答える 1

4

PortalDelegateServletサーブレットが Liferayを使用していることを確認してください。そうしないと、Liferay サービス API にアクセスできません (サービス ビルダーで生成されたクラスのクラスによって最終的に使用されます)。

<?xml version="1.0" encoding="UTF-8"?>
<web-app ...>
    ...
    <servlet>
        <servlet-name>my-servlet</servlet-name>
        <servlet-class>com.liferay.portal.kernel.servlet.PortalDelegateServlet</servlet-class>
        <init-param>
            <param-name>servlet-class</param-name>
            <param-value>org.example.YourOwnServlet</param-value>
        </init-param>
        <init-param>
            <param-name>sub-context</param-name>
            <param-value>do-something</param-value>
        </init-param>
    <servlet>
</web-app>

正しい初期パラメーターを入力することを忘れないでください。

  • servlet-classサーブレットを表すクラスです
  • sub-contextサーブレットがリッスンするサブコンテキストです

デプロイすると、次の URL からサーブレットにアクセスできるようになります。

http://localhost:8080/delegate/do-something
于 2013-04-26T13:59:23.717 に答える