私はejbマルチモジュールアプリケーションを使っています。私はWildfly 8.1.0.Finalを使用しています。ジオープ。注入点[BackedAnnotatedField]で@Default修飾子付きのGeoIpControllerタイプの満足していない依存関係
物理サーバーでの展開時に問題があります。プログラムはネットビーンで動作していますが、私のサーバでは動作していません。私は間違っている。これは、JBoss管理の物理サーバで使用するプロセスです。 geoipのファイルとルート:
/home/javier/Servers/wildfly-8.1.0.Final/modules/system/layers/base/com/maxmind/db/maxmind-db/1.0.0maxmind-db-1.0.0.jar
/home/javier/Servers/wildfly-8.1.0.Final/modules/system/layers/base/com/maxmind/geoip2/geoip2/2.1.0geoip2-2.1.0.jar
1私のクラス(pojos、interfaces ...)ファイルを展開します。
2度自分のejb(プログラムのロジック)ファイルをデプロイします。
3度私はwarファイル(Webコンポーネント)をデプロイしますが、この時点では問題があります。このファイルを展開することはできません。
これは私が間違ってやっている、エラーです:
17:58:45,313 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.unit."SertuxSearchIt-web-1.0-SNAPSHOT.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."SertuxSearchIt-web-1.0-SNAPSHOT.war".WeldStartService: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_111]
Caused by: org.jboss.weld.exceptions.DeploymentException: Exception List with 3 exceptions:
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type GeoIpController with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.sertux.searchit.jsf.controller.addcontent.HeaderAddContentController.geoIp
at com.sertux.searchit.jsf.controller.addcontent.HeaderAddContentController.geoIp(HeaderAddContentController.java:0)
WELD-001474: Class com.sertux.searchit.jsf.controller.geoip.GeoIpController is on the classpath, but was ignored because a class it references was not found: com.maxmind.geoip2.DatabaseReader from [Module "deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main" from Service Module Loader].
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type GeoIpController with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.sertux.searchit.jsf.controller.addcontent.MenuAddContentController.geoIp
at com.sertux.searchit.jsf.controller.addcontent.MenuAddContentController.geoIp(MenuAddContentController.java:0)
WELD-001474: Class com.sertux.searchit.jsf.controller.geoip.GeoIpController is on the classpath, but was ignored because a class it references was not found: com.maxmind.geoip2.DatabaseReader from [Module "deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main" from Service Module Loader].
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type AppScoped with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.sertux.searchit.jsf.filter.SearchFilter.appScoped
at com.sertux.searchit.jsf.filter.SearchFilter.appScoped(SearchFilter.java:0)
WELD-001474: Class com.sertux.searchit.jsf.controller.util.AppScoped is on the classpath, but was ignored because a class it references was not found: com.sertux.searchit.api.domain.type.EditionType from [Module "deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main" from Service Module Loader].
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.weld.bootstrap.ConcurrentValidator.validateBeans(ConcurrentValidator.java:76)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:475)
at org.jboss.weld.bootstrap.WeldStartup.validateBeans(WeldStartup.java:392)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:85)
at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:93)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
... 3 more
17:58:45,320 ERROR [org.jboss.as.controller.management-operation] (XNIO-1 task-2) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "SertuxSearchIt-web-1.0-SNAPSHOT.war")]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"SertuxSearchIt-web-1.0-SNAPSHOT.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"SertuxSearchIt-web-1.0-SNAPSHOT.war\".WeldStartService: Failed to start service
Caused by: org.jboss.weld.exceptions.DeploymentException: Exception List with 3 exceptions:
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type GeoIpController with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.sertux.searchit.jsf.controller.addcontent.HeaderAddContentController.geoIp
at com.sertux.searchit.jsf.controller.addcontent.HeaderAddContentController.geoIp(HeaderAddContentController.java:0)
WELD-001474: Class com.sertux.searchit.jsf.controller.geoip.GeoIpController is on the classpath, but was ignored because a class it references was not found: com.maxmind.geoip2.DatabaseReader from [Module \"deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main\" from Service Module Loader].
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type GeoIpController with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.sertux.searchit.jsf.controller.addcontent.MenuAddContentController.geoIp
at com.sertux.searchit.jsf.controller.addcontent.MenuAddContentController.geoIp(MenuAddContentController.java:0)
WELD-001474: Class com.sertux.searchit.jsf.controller.geoip.GeoIpController is on the classpath, but was ignored because a class it references was not found: com.maxmind.geoip2.DatabaseReader from [Module \"deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main\" from Service Module Loader].
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type AppScoped with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.sertux.searchit.jsf.filter.SearchFilter.appScoped
at com.sertux.searchit.jsf.filter.SearchFilter.appScoped(SearchFilter.java:0)
WELD-001474: Class com.sertux.searchit.jsf.controller.util.AppScoped is on the classpath, but was ignored because a class it references was not found: com.sertux.searchit.api.domain.type.EditionType from [Module \"deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main\" from Service Module Loader].
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"}}
17:58:45,325 ERROR [org.jboss.as.server] (XNIO-1 task-2) JBAS015870: Deploy of deployment "SertuxSearchIt-web-1.0-SNAPSHOT.war" was rolled back with the following failure message:
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"SertuxSearchIt-web-1.0-SNAPSHOT.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"SertuxSearchIt-web-1.0-SNAPSHOT.war\".WeldStartService: Failed to start service
Caused by: org.jboss.weld.exceptions.DeploymentException: Exception List with 3 exceptions:
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type GeoIpController with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.sertux.searchit.jsf.controller.addcontent.HeaderAddContentController.geoIp
at com.sertux.searchit.jsf.controller.addcontent.HeaderAddContentController.geoIp(HeaderAddContentController.java:0)
WELD-001474: Class com.sertux.searchit.jsf.controller.geoip.GeoIpController is on the classpath, but was ignored because a class it references was not found: com.maxmind.geoip2.DatabaseReader from [Module \"deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main\" from Service Module Loader].
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Exception 0 :
org.jboss.weld.exceptions.DeploymentException:WELD-001408:注入点で @default修飾子を持つタイプGeoIpControllerのための不満の依存関係を[BackedAnnotatedField] @Inject private com.sertux.searchit.jsf.controller.addcontent.MenuAddContentController.geoIp com.sertux.searchit.jsf.controller.addcontent.MenuAddContentController.geoIp(MenuAddContentController.java:0) WELD-001474:クラスcom.sertux.searchit.jsf.controller.geoip.GeoIpControllerはクラスパス上にありますが、参照されているクラスサービスモジュールローダの[Module \ "deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main \"]のcom.maxmind.geoip2.DatabaseReaderが見つかりませんでした。
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Exception 0 :
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type AppScoped with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.sertux.searchit.jsf.filter.SearchFilter.appScoped
at com.sertux.searchit.jsf.filter.SearchFilter.appScoped(SearchFilter.java:0)
WELD-001474: Class com.sertux.searchit.jsf.controller.util.AppScoped is on the classpath, but was ignored because a class it references was not found: com.sertux.searchit.api.domain.type.EditionType from [Module \"deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main\" from Service Module Loader].
at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"}}
クラス:
package com.sertux.searchit.jsf.controller.addcontent;
import com.sertux.searchit.api.shiro.ShiroSecured;
import com.sertux.searchit.jsf.controller.geoip.GeoIpController;
import java.io.Serializable;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.slf4j.LoggerFactory;
@Named
@ViewScoped
@ShiroSecured
public class HeaderAddContentController implements Serializable {
private static final org.slf4j.Logger log = LoggerFactory.getLogger(HeaderAddContentController.class);
private static final String KEY_SERVICE_NULL_OR_EMPTY_LOGIN_NAME_EXCEPTION = "View_global_SERVICE_NULL_OR_EMPTY_LOGIN_NAME_EXCEPTION";
private static final String KEY_SERVICE_UNKNOWN_USER_WITH_LOGIN_NAME_EXCEPTION = "View_global_SERVICE_UNKNOWN_USER_WITH_LOGIN_NAME_EXCEPTION";
@Inject
private GeoIpController geoIp;
public HeaderAddContentController() {
}
public GeoIpController getGeoIp() {
return geoIp;
}
public void setGeoIp(GeoIpController geoIp) {
this.geoIp = geoIp;
}
}
GeoIpController:WARファイルをパッケージ化された方法
package com.sertux.searchit.jsf.controller.geoip;
import com.maxmind.geoip2.DatabaseReader;
import com.maxmind.geoip2.exception.GeoIp2Exception;
import com.maxmind.geoip2.model.CityResponse;
import com.maxmind.geoip2.record.City;
import com.maxmind.geoip2.record.Country;
import com.maxmind.geoip2.record.Location;
import com.maxmind.geoip2.record.Postal;
import com.maxmind.geoip2.record.Subdivision;
import com.sertux.searchit.api.domain.util.LocationIpSertux;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
import org.slf4j.LoggerFactory;
@Named
@ApplicationScoped
public class GeoIpController {
private static final org.slf4j.Logger log = LoggerFactory.getLogger(GeoIpController.class);
private static final String PATH_GEOIP_DATABASE = "/usr/share/GeoIP/GeoLite2-City.mmdb";
private static DatabaseReader reader;
public GeoIpController() {
log.info(String.format("Loading GeoIpController file: %s", PATH_GEOIP_DATABASE));
try {
// A File object pointing to your GeoIP2 or GeoLite2 database
File database = new File(PATH_GEOIP_DATABASE);
// This creates the DatabaseReader object, which should be reused across
// lookups.
reader = new DatabaseReader.Builder(database).build();
log.info(String.format("Loaded GeoIpController file successfully: %s", PATH_GEOIP_DATABASE));
} catch (IOException ex) {
log.error("Error loading GeoIpController", ex);
}
}
/**
* latitude longitude locationText locationAccuracy countryIsoCode
* countryName mostSpecificSubdivisionIsoCode mostSpecificSubdivisionName
* cityName postalCode
*
* @param ip ip address
*
*/
public LocationIpSertux getCoords(String ip) {
try {
InetAddress ipAddress = InetAddress.getByName(ip);
CityResponse response = reader.city(ipAddress);
Country country = response.getCountry();
Subdivision subdivision = response.getMostSpecificSubdivision();
City city = response.getCity();
Postal postal = response.getPostal();
Location location = response.getLocation();
return new LocationIpSertux(
String.format("%s_%s_%s_%s_%s_%s_%s_%s_%s",
country.getIsoCode(), country.getName(),
subdivision.getName(), subdivision.getIsoCode(),
city.getName(),
postal.getCode(),
location.getLatitude(),
location.getLongitude(),
location.getAccuracyRadius()),
location.getLatitude(),
location.getLongitude(),
location.getAccuracyRadius() == null ? 0 : location.getAccuracyRadius(),
country.getIsoCode(),
country.getName(),
subdivision.getIsoCode(),
subdivision.getName(),
city.getName(),
postal.getCode());
} catch (UnknownHostException ex) {
// log.error("UnknownHostException:", ex);
} catch (IOException ex) {
// log.error("IOException:", ex);
} catch (GeoIp2Exception ex) {
// log.error("GeoIp2Exception:", ex);
}
return null;
}
public DatabaseReader getReader() {
return reader;
}
public void setReader(DatabaseReader reader) {
this.reader = reader;
}
}
GeoIpControllerは、warファイルのJavaクラスです。ウェブパッケージ内にあります。 Geoipは依存関係です。スタックトレースを見ると com.maxmind.geoip2 geoip2 2.1.0 –
xav56883728
、いくつかのメッセージが関連しています: 'WELD-001474:クラスcom.sertux.searchit.jsf.controller.geoip .GeoIpControllerはクラスパス上にありますが、参照するクラスが見つからないため無視されました:com.maxmind.geoip2.DatabaseReaderから[Module \ "deployment.SertuxSearchIt-web-1.0-SNAPSHOT.war:main \" from Service Module Loader ] .' 'DatabaseReader'はどこにありますか? – Rouliboy
はい、どうすればこの問題を解決できますか?いくつかのアイデア? – xav56883728