Java geoip2 java .io.FileNotFoundException: - PullRequest
0 голосов
/ 29 апреля 2020

Я использую geoip2, чтобы определить страну по ip. Во время разработки и тестирования кода у меня нет проблем, но когда я запускаю скомпилированный архив, я сталкиваюсь с исключением java .io.FileNotFoundException. Я так понимаю, это потому, что путь к файлу абсолютный, а в архиве он меняется. Вопрос: Как мне изменить свой код, чтобы даже из архива я мог получить доступ к файлу?

   public static String getCountryByIp(String ip) throws Exception {
    File database = new File(URLDecoder.decode(GeoUtils.class.getResource("/GeoLite2-Country.mmdb").getFile(),"UTF-8"));


    DatabaseReader dbReader = new DatabaseReader.Builder(database).build();
    InetAddress ipAddress = InetAddress.getByName(ip);
    CountryResponse response = dbReader.country(ipAddress);

    return response.getCountry().getName();
}

test.war / test.war / WEB- INF / классы

1 Ответ

0 голосов
/ 29 апреля 2020

Вы можете попробовать это

InputStream is = this.getClass().getClassLoader().getResourceAsStream("GeoLite2-Country.mmdb");
...