java.lang.ClassFormatError:JVMCFRE074未指定Code属性; class = javax / ejb / RemoveException,method = <init>()V,pc = 0

时间:2017-05-02 18:10:31

标签: java maven java-ee websphere

尝试在服务器中发布应用程序EAR时出现以下错误。

Deployment from com.ibm.etools.ejbdeploy.EJBDeployer had errors:  

    RMIC Command returns RC = MyApplicationEJB. The problems which stopped RMIC are displayed, and have also been recorded in the .log file in error: An error has occurred in the compiler; please file a bug report (http://java.sun.com/cgi-bin/bugreport.cgi).
    java.lang.ClassFormatError: JVMCFRE074 no Code attribute specified; class=javax/ejb/RemoveException, method=<init>()V, pc=0
        at java.lang.ClassLoader.defineClass(ClassLoader.java:275)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:212)
        at com.ibm.tools.rmic.iiop.DirectoryLoader.loadClass(DirectoryLoader.java:149)
        at com.ibm.tools.rmic.iiop.CompoundType.loadClass(CompoundType.java:354)
        at com.ibm.tools.rmic.iiop.Type.initClass(Type.java:1008)
        at com.ibm.tools.rmic.iiop.Type.setRepositoryID(Type.java:1025)
        at com.ibm.tools.rmic.iiop.CompoundType.initialize(CompoundType.java:762)
        at com.ibm.tools.rmic.iiop.ValueType.initialize(ValueType.java:323)
        at com.ibm.tools.rmic.iiop.ValueType.forValue(ValueType.java:131)
        at com.ibm.tools.rmic.iiop.CompoundType.getMethodExceptions(CompoundType.java:1678)
        at com.ibm.tools.rmic.iiop.CompoundType$Method.<init>(CompoundType.java:2457)
        at com.ibm.tools.rmic.iiop.CompoundType.addAllMethods(CompoundType.java:1308)
        at com.ibm.tools.rmic.iiop.RemoteType.isConformingRemoteInterface(RemoteType.java:222)
        at com.ibm.tools.rmic.iiop.RemoteType.initialize(RemoteType.java:171)
        at com.ibm.tools.rmic.iiop.RemoteType.forRemote(RemoteType.java:90)
        at com.ibm.tools.rmic.iiop.CompoundType.makeType(CompoundType.java:852)
        at com.ibm.tools.rmic.iiop.CompoundType$Method.<init>(CompoundType.java:2408)
        at com.ibm.tools.rmic.iiop.CompoundType.addAllMethods(CompoundType.java:1308)
        at com.ibm.tools.rmic.iiop.RemoteType.isConformingRemoteInterface(RemoteType.java:222)
        at com.ibm.tools.rmic.iiop.RemoteType.initialize(RemoteType.java:171)
        at com.ibm.tools.rmic.iiop.RemoteType.forRemote(RemoteType.java:90)
        at com.ibm.tools.rmic.iiop.CompoundType.addRemoteInterfaces(CompoundType.java:1455)
        at com.ibm.tools.rmic.iiop.ImplementationType.initialize(ImplementationType.java:166)
        at com.ibm.tools.rmic.iiop.ImplementationType.forImplementation(ImplementationType.java:92)
        at com.ibm.tools.rmic.iiop.CompoundType.makeType(CompoundType.java:892)
        at com.ibm.tools.rmic.iiop.ClassType.initParents(ClassType.java:197)
        at com.ibm.tools.rmic.iiop.ImplementationType.initialize(ImplementationType.java:156)
        at com.ibm.tools.rmic.iiop.ImplementationType.forImplementation(ImplementationType.java:92)
        at com.ibm.tools.rmic.iiop.StubGenerator.getTopType(StubGenerator.java:151)
        at com.ibm.tools.rmic.iiop.Generator.generate(Generator.java:285)
        at sun.rmi.rmic.Main.doCompile(Main.java:547)
        at sun.rmi.rmic.Main.compile(Main.java:148)
        at sun.rmi.rmic.Main.main(Main.java:786)
    1 error

任何人都可以帮助我。

我正在使用 - Websphere 9.1和jdk 1.6。有趣的是,我的同事拥有较低版本的Websphere - 8.0,不会出现此错误。

更新:我的Websphere的运行时环境是 - WebSphere Application Server v7.0

1 个答案:

答案 0 :(得分:0)

通常,ClassFormatError表示带有错误的类是在java级别编译的,该级别大于运行时使用的java级别。

对于WebSphere v9.0(which only support Java 8+),javax/ejb/RemoveException类是在Java 7级别编译的,因此在Java 6上使用Java 7或更高版本编译的类运行WAS级别将产生ClassFormatError

更新:
您在评论中提到您使用的是WAS v7.0而不是WAS v9。无论您使用的是什么版本的WAS,总体解释都是相同的,即,您不能在比编译类更低的java级别上运行。

我建议编译WAS安装中的javax/ejb/RemoveExceptionchecking what java version,并将其与您运行的Java级别进行比较。