Я работаю над веб-приложением для Apache Tomcat.Я использую класс с именем Location, в котором я определил поле с именем ipAddresses.Вот оно:
package com.maxmind.geoip;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
public class Location {
private final static double EARTH_DIAMETER = 2 * 6378.2;
private final static double PI = 3.14159265;
private final static double RAD_CONVERT = PI / 180;
public Set<String> ipAddresses;
public String countryCode;
public String countryName;
public String region;
public String city;
public String postalCode;
public float latitude;
public float longitude;
public int dma_code;
public int area_code;
public int metro_code;
public Location() {
ipAddresses = new HashSet<String>();
}
...
}
Однако после развертывания веб-приложения на сервере (файл war) и попытки запустить сервлет, использующий в нем этот класс, я получаю исключение java.lang.NoSuchFieldError для ipAddresses .
Более того, при попытке отладки (Eclipse), когда я добираюсь до места, где Location loc = new Location () *Вызывается 1011 *, происходят две странные вещи:
- Код, который я кодировал, не вызывается, отладчик не вступает в него, вместо этого отображается стрелка счетчика программы при импортев файле Location.java.
- После "возврата" из вызова Location loc = new Location () , когда я просматриваю содержимое объекта, поле фактически не существует.
- Исходный файл, который был развернут с помощью файла jar, включает это поле.
Я пробовал много вещей:
- очистка и сборка проекта иповторное развертывание.
- очистка работы сервераВ этом каталоге, как вручную, так и с помощью Eclipse.
- изменяя рабочий каталог сервера, в Eclipse.
- переустановка сервера в Eclipse.
- переустановкаTomcat целиком, трижды и в разных местах!
Я застрял.Что бы это могло быть?