インターネットに接続していない状態で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人がこの記事が役に立ったと言っています