java.lang.InternalError:name太长而无法表示

时间:2011-11-21 09:31:54

标签: java weblogic java-5

我收到此错误:

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),但我真的不知道这是否可以解决问题,是否可以破坏别的东西。

5 个答案:

答案 0 :(得分:10)

更新以下原始答案中提到的错误现已关闭!


如您所引用的文章中所述,这是Sun / Oracle JVM实现中的bug。在撰写本文时,尚未解决。

我可以想出三种方法来解决这个问题:

  1. 根本不生成SMAP文件(例如:不要使用-Xdebug运行或使用类似suppressSmap的设置)
  2. 尝试确保调试信息的大小很小(例如:减小代码的大小)
  3. 使用其他虚拟机实现。

答案 1 :(得分:2)

一项适用于我的工作是在tomcat/conf/web.xml中添加以下条目:

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

答案 2 :(得分:1)

如果您可以确定导致问题的类,您应该能够使用Stripper从该类中删除调试扩展信息,并且仍然可以调试其余类。

答案 3 :(得分:0)

我遇到了完全相同的错误。仅当我在调试模式下启动Tomcat时,以及某些JSP文件(大型)时,才会报告此错误。当我以正常模式启动Tomcat(不使用Debug)时,错误被清除。在JSP文件随着时间的推移增加之后,此错误最近开始显示。

我能够解决此错误的唯一方法是将Tomcat从版本5.5升级到版本7.0,将JRE升级到jdk1.7。

请参阅下面的快照,以帮助您了解相关信息。

enter image description here

另外,不要忘记添加Tomcat 7和新JRE所需的库。

最初,更新文件 <init-param> <param-name>mappedfile</param-name> <param-value>false</param-value> </init-param> 以包含以下部分可以解决问题,但最近它已不再有效:

from selenium import webdriver
browser = webdriver.Chrome('/usr/local/bin/chromedriver')
browser.get('xxx')
browser.implicitly_wait(5)

button = browser.find_element_by_css_selector('#softGateBox > div.button_softgate > a')
button.click()

答案 4 :(得分:-1)

指向Jdk7并将Java堆大小增加到1024可解决此问题。

更新setDomainEnv.cmd以反映以下值。

JAVA内存参数:-Xms128m -Xmx3072m -XX:CompileThreshold = 8000 -XX:PermSize = 1024m -XX:MaxPermSize = 1024m 。 WLS启动模式=开发 。 CLASSPATH = C:\ Oracle \ MIDDLE〜1 \ patch_wls1035 \ profiles \ default \ sys_manifest_classpath \ weblogic_patch.jar; C:\ Oracle \ MIDDLE〜1 \ patch_oepe1050 \ profiles \ default \ sys_manifest_classpath \ weblogic_patch.jar; C:\ Oracle \ MIDDLE 〜1 \ patch_ocp360 \ profiles \ default \ sys_manifest_classpath \ weblogic_patch.jar; C:\ PROGRA〜1 \ Java \ JDK17〜1.0_4 \ lib \ tools.jar; C:\ Oracle \ MIDDLE〜1 \ WLSERV〜1.3 \ server \ lib \ weblogic_sp.jar; C:\ Oracle \ MIDDLE〜1 \ WLSERV〜1.3 \ server \ lib \ weblogic.jar; C:\ Oracle \ MIDDLE〜1 \ modules \ features \ weblogic.server.modules_10.3.5.0。 jar; C:\ Oracle \ MIDDLE〜1 \ WLSERV〜1.3 \ server \ lib \ webservices.jar; C:\ Oracle \ MIDDLE〜1 \ modules \ ORGAPA〜1.1 / lib / ant-all.jar; C:\ Oracle \ MIDDLE〜1 \ modules \ NETSFA〜1.0_1 / lib / ant-contrib.jar; C:\ Oracle \ MIDDLE〜1 \ WLSERV〜1.3 \ common \ derby \ lib \ derbyclient.jar; C:\ Oracle \ MIDDLE〜 1 \ WLSERV〜1.3 \ server \ lib \ xqrl.jar 。 PATH = C:\ Oracle \ MIDDLE〜1 \ patch_wls1035 \ profiles \ default \ native; C:\ Oracle \ MIDDLE〜1 \ patch_oepe1050 \ profiles \ default \ native; C:\ Oracle \ MIDDLE〜1 \ patch_ocp360 \ profiles \ default \ native; C:\ Oracle \ MIDDLE〜1 \ WLSERV〜1.3 \ server \ native \ win \ 32; C:\ Oracle \ MIDDLE〜1 \ WLSERV〜1.3 \ server \ bin; C:\ Oracle \ MIDDLE〜1 \ modules \ ORGAPA〜1.1 \ bin; C:\ PROGRA〜1 \ Java \ JDK17〜1.0_4 \ jre \ bin; C:\ PROGRA〜1 \ Java \ JDK17〜1.0_4 \ bin; C:\ Program Files(x86) \ Common Files \ Oracle \ Java \ javapath; C:\ ProgramData \ Oracle \ Java \ javapath; C:\ WINDOWS \ system32; C:\ WINDOWS; C:\ WINDOWS \ System32 \ Wbem; C:\ WINDOWS \ System32 \ WindowsPowerShell \ v1.0 \; C:\ Program Files \ Cloud Foundry; C:\ Program Files \ PuTTY \; C:\ Program Files \ TortoiseGit \ bin; C:\ Program Files \ MySQL \ MySQL Utilities 1.6 \; C:\程序文件\ Git \ cmd; D:\ nodejs \; C:\ Program Files(x86)\ Webex \ Webex \ Applications; C:\ WINDOWS \ System32 \ OpenSSH \; C :\ Users \ 181443 \ AppData \ Roaming \ npm; C:\ Users \ 181443 \ AppData \ Local \ Microsoft \ WindowsApps; C:\ Users \ 181443 \ AppData \ Local \ Programs \ Microsoft VS Code \ bin ;; C:\ Oracle \ MIDDLE〜1 \ WLSERV〜1.3 \ server \ native \ win \ 32 \ oci920_8