Подтвердить что ты не робот

Java.lang.InternalError: имя слишком длинное для представления

Я получаю эту ошибку:

java.lang.InternalError: name is too long to represent
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:338)
        at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:291)
        at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:259)

Что похоже на некоторые функции отладки (на самом деле удаление опции командной строки -Xdebug ошибка исчезает). Я также нашел некоторую информацию в ASF Bugzilla. Есть ли способ решить это?

Возможные решения, которые я могу придумать, - это изменить JVM (используя JRockit, который должен иметь эту проблему), но я действительно не знаю, может ли это решить проблему и может ли она сломать что-то еще.

4b9b3361

Ответ 1

update Ошибка, упомянутая в первоначальном ответе ниже, теперь закрыта!


Как отмечено в статье, которую вы ссылаетесь, это bug в реализации JVM Sun/Oracle. На момент написания статьи она не была решена.

Я могу подумать о трех способах решения проблемы:

  • Не создавайте файлы SMAP вообще (например: не запускайте с -Xdebug или не используйте параметры suppressSmap)
  • Попробуйте убедиться, что размер отладочной информации невелик (например: уменьшите размер вашего кода).
  • Используйте другую реализацию виртуальной машины.

Ответ 2

Одна работа, которая работала для меня, добавляет следующую запись в tomcat/conf/web.xml:

<init-param> 
   <param-name>suppressSmap</param-name> 
   <param-value>true</param-value> 
</init-param>

Ответ 3

Если вы можете определить класс, вызывающий проблему, вы должны использовать Stripper, чтобы удалить информацию об отладочном расширении из этого один класс и все еще сможет отлаживать остальных.

Ответ 4

Я столкнулся с такой же ошибкой. Эта ошибка будет сообщена только при запуске Tomcat в режиме отладки и для определенного JSP файла (большой размер). Когда я запускаю Tomcat в обычном режиме (не используя Debug), ошибка устраняется. Эта ошибка начала проявляться в последнее время после того, как файл JSP со временем увеличился.

Единственный способ решить эту ошибку - обновить Tomcat с версии 5.5 до версии 7.0 и JRE до jdk1.7.

См. снимок ниже, чтобы помочь вам получить изображение.

введите описание изображения здесь

Кроме того, не забудьте добавить необходимые библиотеки для Tomcat 7 и новой JRE.

Первоначально обновление файла web.xml для включения в следующий раздел разрешило бы проблему, но в последнее время оно больше не работает:

    <init-param>
            <param-name>mappedfile</param-name>
            <param-value>false</param-value>
    </init-param>