この記事では、インターネット接続なしで起動するためのIP Geocoderモジュールの設定方法を説明します。 デフォルトでは、このモジュールは起動時にインターネットに接続する必要があります。 しかし、お客様によっては接続ができず、Webに接続されていない環境のままになっている場合もあります。 その他のものは、代替としてプロキシ接続を必要とします; プロキシ経由で接続するためのLCSの事前設定 セクションを参照してください。
Web 接続が必要な理由は、起動時に GeoIPCity.dat
というファイルが、アプリケーションサーバーの新しく作成された /.../liferay/geoip
フォルダに自動的にダウンロードされるからです。 (例えばApache Tomcatの場合、フォルダは /temp/liferay/geoip
フォルダにあります)。
そうでない場合、起動処理中に以下のようなエラーが発生します。
13:01:34,728 ERROR [main][IPGeocoderImpl:108] Unable to activate Liferay IP Geocoder java.net.ConnectException: Connection timed out (Connection timed out) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at sun.net.NetworkClient.doConnect(NetworkClient.java:180) at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) at sun.net.www.http.HttpClient.(HttpClient.java:211) at sun.net.www.http.HttpClient.New(HttpClient.java:308) at sun.net.www.http.HttpClient.New(HttpClient.java:326) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202) at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474) at com.liferay.ip.geocoder.internal.IPGeocoderImpl.getIPGeocoderFile(IPGeocoderImpl.java:138) at com.liferay.ip.geocoder.internal.IPGeocoderImpl.configure(IPGeocoderImpl.java:101) at com.liferay.ip.geocoder.internal.IPGeocoderImpl.activate(IPGeocoderImpl.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.felix.scr.impl.inject.BaseMethod.invokeMethod(BaseMethod.java:224) at org.apache.felix.scr.impl.inject.BaseMethod.access$500(BaseMethod.java:39) at org.apache.felix.scr.impl.inject.BaseMethod$Resolved.invoke(BaseMethod.java:617) at org.apache.felix.scr.impl.inject.BaseMethod.invoke(BaseMethod.java:501) at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:302) at org.apache.felix.scr.impl.inject.ActivateMethod.invoke(ActivateMethod.java:294) at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:297) at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:108) at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:906) at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:879) at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:823) at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) at java.security.AccessController.doPrivileged(Native Method)
決議
この特定のユースケースでは、システム管理者は GeoLiteCity.dat.xz
から GeoLite Legacy Downloadable Databasesをダウンロードする必要があります。
上述のように、デフォルトでは、このファイルは自動的にダウンロードされますが、アプリケーションサーバーのキャッシュをクリアするときに削除される一時的なフォルダにダウンロードされるためです。 システム管理者は、以下の手順を実行する必要があります。
- 変更を適用する前にアプリケーションサーバーを停止します。
.xz
をキャッシュフォルダ以外の任意のフォルダに展開します。/osgi/configs
フォルダに、com.liferay.ip.geocoder.internal.IPGeocoderConfiguration.cfg
というファイルを作成します。- テキストエディタを使用して、
com.liferay.ip.geocoder.internal.IPGeocoderConfiguration.cfg
ファイルを開きます。 - 以下のように入力します。
filePath=/path/to/permanent/location/of/GeoLiteCity.dat
(例: /opt/liferay/geoip/GeoLiteCity.dat
)。 - ファイルを保存します。
/osgi/state
フォルダを削除します。- アプリケーションサーバーを起動します。
これらの手順を適用することで、インターネット接続を必要とせずにプラットフォームを起動することができます。
追加情報
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン