5

システムでubuntu 12.04、liferayバージョン6.0.1、open jdk 6を使用しています。JavaでリモートIPと場所を取得しようとしていました。このために、Apache http get メソッドを使用して場所を取得できるHost Ipサービスを見つけました。これをローカル システムで正常に実行しました。しかし、実際のサーバーでは、liferay ポートレットは実行されておらず、複数のインスタンスが同時に実行されているため、エラーを見つけるのは困難です。サーバーはウィンドウベースです。MVC ポートレットの doView() でこのメソッドを使用して IP を取得しています

com.liferay.portal.util.PortalUtil.getHttpServletRequest(renderRequest).getRemoteAddr()
4

2 に答える 2

1

http ヘッダー情報にアクセスしたくない場合は、次を使用します。

HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(portletRequest);
HttpServletRequest originalServletRequest = PortalUtil.getOriginalServletRequest(httpServletRequest);
originalServletRequest.getRemoteAddr();

通常、 httpServletRequestで実際のヘッダー情報を見つけることはできませんが、 originalServletRequestで利用できます。

于 2013-03-09T15:43:02.337 に答える
0

これは部分的な答えです。答えの場所の部分がわかりません。お役に立てれば

Liferay Marketplaceで MyIPポートレットを確認してください。これには、RenderRequest または PortletRequest オブジェクトから IP アドレスを取得する部分のみを実行するユーティリティ関数があります。

IPAddressUtil.javaで同じのgithub ソースを見ることに興味があるかもしれません。

于 2013-05-09T20:00:18.847 に答える