Tomcat 7-Servlet 3.0: nieprawidłowy znacznik bajtów w stałej puli

  • tomcat 7.0.16
  • Java 1.6.0_22
  • CentOS 5.6
Właśnie podmieniłem sieć.xml do servlet 3.0 (z aplikacji działającej wcześniej 2.4) i teraz widzę następujący błąd (włączony fine logging for org.Apacz.tomcat.util): {]}
mtyson  FINE: Scanning JAR [file:/usr/java/jdk1.6.0_22/jre/lib/ext/jcharset.jar] from classpath
mtyson  Jul 19, 2011 10:04:40 AM org.apache.catalina.startup.HostConfig deployDirectory
mtyson  SEVERE: Error deploying web application directory ROOT
mtyson  org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 60

aktualizacja: właśnie próbowałem tomcat 7.0.19-same wyniki

Author: mtyson, 2011-07-19

11 answers

To może nie twój problem, ale mój był taki sam jak ten -- stara wersja com.ibm.icu: icu4j. problem rozwiązałem zmieniając konfigurację build, aby wykluczyć starsze zależności przechodnie i jawnie w zależności od najnowszej wersji (4.8).

 23
Author: James A Wilson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-20 16:39:23

Dodawanie

metadata-complete="true" 

Do twojej sieci.xml powinien sortować problem

<web-app version="3.0"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         metadata-complete="true">

To mówi tomcat, aby nie skanować klas w poszukiwaniu adnotacji: http://www.tomcatexpert.com/blog/2011/10/12/how-use-fragments-and-annotations-configure-your-web-application

 29
Author: KeithM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-02 17:58:01

Thanks James a Wilson for your answer - Aktualizacja icu4j jak sugerowałeś zadziałała dla mnie i pozwala mi zachować version="3.0" w mojej sieci.xml (który wolę na dłuższą metę).

Icu4j 2.6.1 była wersją, która nie działała, aktualizacja do następnej wersji 3.4.4 rozwiąże ten problem. Nie poszedłem do najnowszej wersji icu4j (49.1), ponieważ jest o 4MB większy niż wersja 3.4.4.

Oto fragment konfiguracji Mavena do zablokowania w wersji transitive dependency (bez dodawania wyraźnej zależności):

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.ibm.icu</groupId>
            <artifactId>icu4j</artifactId>
            <version>3.4.4</version>
        </dependency>
    </dependencies>
</dependencyManagement>
 18
Author: Steve Jones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:00

Wpadłem dziś na ten sam problem. W moim przypadku zależność była przekazywana przez com.google.kod.findbugs: adnotations: jar: 1.3.8. Oznacza to, że ta Biblioteka jest używana tylko w czasie kompilacji, aby używać adnotacji do wyłączania niektórych ostrzeżeń findbug. W tym przypadku, zamiast zmieniać wersję, bezpiecznie jest po prostu zmienić zakres zależności i nie zabierać biblioteki w czasie wykonywania:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.ibm.icu</groupId>
            <artifactId>icu4j</artifactId>
            <scope>provided</scope>
        </dependency>
        ....
 3
Author: Assen Kolov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-12 12:02:51

Myślę, że to błąd parsujący sieć.XML file myself

Używanie tego działa na mnie...
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

<session-config> <tracking-mode>COOKIE</tracking-mode> </session-config>

Zwróć uwagę na użycie version= " 2.5 " z web-app_3_0.schemat xsd i obecność trybu śledzenia konfiguracji sesji, który jest tylko częścią specyfikacji 3.0, a nie 2.5 (AFAIK)

 2
Author: Mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-04 12:55:45

Okazało się, że jest to niezgodny jasper jar dołączony do budowy, sprzeczny z Jasperem.słoik w tomcat 7.

 2
Author: mtyson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-02 18:23:54

Miałem do czynienia z tym samym problemem od tygodnia i rozwiązany po prostu zastępując icu4j. 2. 1.plik jar z najnowszą wersją jar.

 1
Author: Ashish Malhotra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-14 11:15:09

Dodając http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd " metadane-complete= "true" >

Rozwiązałem mój problem

 1
Author: Navnath ghule,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-25 05:07:28

W wersji 2.6.1. kom.ibm.OIOM.impl.data.LocaleElements_zh _ _ PINYIN.klasa jest nieprawidłowa. Jedynym rozwiązaniem jest aktualizacja, inne rozwiązania to tylko obejścia.

Można to sprawdzić uruchamiając następujący test w projekcie (pod warunkiem icu-x.x.x.jar jest na twojej ścieżce klasowej):

@Test public void testValidityOfLocaleElements_zh__PINYINJar() throws ClassNotFoundException { getClass().forName("com.ibm.icu.impl.data.LocaleElements_zh__PINYIN"); }

 0
Author: Michiel Rop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-09 09:54:32

Zaczęliśmy otrzymywać ten sam błąd z drobną zmianą naszej aplikacji bez aktualizacji do Java, Tomcat lub zależności projektu. Mamy icu4j 2.6.1

Po spędzeniu dość dużo czasu i próbach upgrade ' u icu4j do różnych nowszych wersji (zauważyliśmy i stwierdziliśmy, że wersje icu wyszły z 4.8.x do 49.x. x, 50.x. X itp, ktoś musiał to mieć podczas budowania 4.9.0), znaleźliśmy problem.

Nasza drobna zmiana przesłała nową klasę (Class A) to jest mapowane do hibernate. Hibernate inicjuje się po rozpoczęciu wojny i sprawdza trwałe obiekty pod kątem ich mapowania. Zdarzyło się, że pojawiła się inna klasa, która jest enum (Class B) o tej samej nazwie i tym samym pakiecie w naszej bazie kodowej. Gdy naprawiliśmy tę duplikat klasy, problem zniknął.

 0
Author: Ahmet Emre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-17 15:29:30

Rozwiązano poprzez usunięcie folderu i ponowne pobranie słoików

 0
Author: Dez Udezue,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-22 20:02:40