首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Geoip2:获取"java.lang.reflect.InvocationTargetException“异常

Java Geoip2:获取"java.lang.reflect.InvocationTargetException“异常
EN

Stack Overflow用户
提问于 2017-03-02 18:43:16
回答 1查看 201关注 0票数 0

我正在使用Java中的GeoIP2将IP地址转换为maxmind数据库中的位置信息。

我的java代码:

代码语言:javascript
复制
try {
    ClassLoader classLoader = getClass().getClassLoader();
    File database = new File(classLoader.getResource("GeoLite2-City.mmdb").getFile());

    DatabaseReader reader =  new DatabaseReader.Builder(database).build();
    InetAddress ipAddress = InetAddress.getByName(ip);
    CityResponse response = reader.city(ipAddress);

    City city = response.getCity();
    ...

} catch (UnknownHostException e) {
    logger.logError(getClass(), "getGeoIp", " transactionId:" + transactionId + " > " + e.getMessage(), null);
} catch (IOException e) {
    logger.logError(getClass(), "getGeoIp", " transactionId:" + transactionId + " > " + e.getMessage(), null);
} catch (GeoIp2Exception e) {
    logger.logError(getClass(), "getGeoIp", " transactionId:" + transactionId + " > " + e.getMessage(), null);
}

当我构建我的阅读器时,我得到了java.lang.reflect.InvocationTargetException异常。我认为杰克逊版本(2.5.3)与geoip2不兼容。但我不能修复。

我的依赖版本是:

代码语言:javascript
复制
<dependency>
    <groupId>com.maxmind.geoip2</groupId>
    <artifactId>geoip2</artifactId>
    <version>2.8.1</version>
</dependency>

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.9.13</version>
</dependency>   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-02 21:03:14

使用2.3.0版本的geoip2。

代码语言:javascript
复制
<dependency>
    <groupId>com.maxmind.geoip2</groupId>
    <artifactId>geoip2</artifactId>
    <version>2.3.0</version>
</dependency>

2.8.1使用较新版本的Jackson,导致与您的Jackson依赖冲突。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42553167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档