2016-04-09 19 views
0

私はLiferayで簡単なサーブレットを開発します。私はそれがinit(System.outをinit()メソッドに置くことによって検証されている)を見ています。しかし、私はいくつかのデータをサーブレットにポストすると、呼び出されません。これをどのようにデバッグすることができますか、それを動作させるために追加する必要があります。サーブレットが呼び出されない

サーブレットエントリファイルwebapps/ROOT/WEB-INF/web.xml、liferayには他のカスタムWebアプリケーションが動作しています。

..... 
    <servlet> 
     <servlet-name>HealthCheckServelet</servlet-name> 
     <servlet-class>com.test.HealthCheck</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>HealthCheckServelet</servlet-name> 
     <url-pattern>/health-check/*</url-pattern> 
    </servlet-mapping> 
    ....... 

サーブレットはHTTP GET http://host-ip/health-check/temperature

+1

これとは別に、スタイルが悪く、サポートされておらず、メンテナンスが困難な場合があります。実際にこのサーブレットをどのように呼び出そうとしているのかはわかりません。 –

+0

ありがとうございました。私は逃しました。また、上記の悪い練習のコメントをどうやって改善できるか教えてください。 – iam

答えて

1

呼び出し元のURLがヘルスチェックではなく、アプリケーションが稼働しているサーバーで、Liferayのとは何の関係もないことを示唆している使用して起動します。私はこれをLiferayから完全に独立した別のWebアプリケーションに実装し、同じアプリケーションサーバーに展開します。この方法では、Liferayのweb.xml(Liferayを更新する必要があります)を混乱させる必要はなく、同じ利点があります。ヘルスチェックでLiferay情報が必要な場合は、APIを使用して必要なデータを取得してください。再び - メンテナンス性ははるかに向上します。

この副作用は、Liferayを実行する必要のない小さなWebアプリケーションで簡単にデバッグできることです。 post a MCVEここにアドバイスを求めているすべてのコードを簡単に記入してください。

また、Liferayの外部で実行することで、Liferayが要求処理に適用するサーブレットフィルタの対象にはならないため、要求は既に知っている人に捕まってしまう可能性があります。簡単な問題ではあまりにも複雑な解決策です。

+0

あなたは答えが良いです。しかし、私の場合は、Liferay API(フィルタap)などの一部を拡張する必要があります。それをseprate webappに入れておくと、私が思うより多くの問題を解決することができます。それで、今私はそれを私が描写しているようにしたいと思っています。 – iam

+0

縮小されたサーブレットコードを表示できますか?関連する部分のみをここにコピーしてください。 –

+0

確かに、私は戻ってきます – iam

関連する問題