インターネット接続なしで起動するためのIPGeocoderモジュールの設定

この記事では、インターネット接続なしで起動するための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をダウンロードする必要があります。

上述のように、デフォルトでは、このファイルは自動的にダウンロードされますが、アプリケーションサーバーのキャッシュをクリアするときに削除される一時的なフォルダにダウンロードされるためです。 システム管理者は、以下の手順を実行する必要があります。

  1. 変更を適用する前にアプリケーションサーバーを停止します。
  2. .xz をキャッシュフォルダ以外の任意のフォルダに展開します。
  3. /osgi/configs フォルダに、 com.liferay.ip.geocoder.internal.IPGeocoderConfiguration.cfgというファイルを作成します。
  4. テキストエディタを使用して、 com.liferay.ip.geocoder.internal.IPGeocoderConfiguration.cfg ファイルを開きます。
  5. 以下のように入力します。 filePath=/path/to/permanent/location/of/GeoLiteCity.dat (例: /opt/liferay/geoip/GeoLiteCity.dat)。
  6. ファイルを保存します。
  7. /osgi/state フォルダを削除します。
  8. アプリケーションサーバーを起動します。

これらの手順を適用することで、インターネット接続を必要とせずにプラットフォームを起動することができます。

追加情報

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています