この記事では、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件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン