English 中文(简体)
在班级文件 javax/servlet/Servlet/ServletExption 中非本地或抽象的方法中不存在代码属性
原标题:Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException

我计划在我的申请中使用爪哇服务站。我在我的项目S POM.xml 文件中包括了以下内容,以装载爪哇服务站3.0 执行罐。

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.servlet</artifactId>
    <version>3.2-b05</version>
</dependency> 

项目编译精细。 然而, 当我运行它时, 我得到以下错误 :

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException

我在这里搜索了它, 找到了一些< a href="https://stackoverflow.com/ questions/2979968/cant-intantiate-javax-servlet-servlet-servlet Excertion? questionettab=votes#tab-top" 标题 =“好答案” > 答案 。

我从他们身上发现,当我们把JAR(JAR)包括进来时,这个错误就会发生。 JAR只包含由服务器API定义的接口,而不是实际执行。所以,我检查了我使用的玻璃鱼罐只是接口,或者它也包含执行。我发现这是一个执行,而不仅仅是接口。

所以,我想知道我为什么在运行时会犯这个错误,有人吗?

更新:

刚才,我发现这是从我这边一个公然的错误(我在将罐子加到一个项目上,而当时却在运行一个完全不同的项目! ) 。 我很抱歉。 加上玻璃鱼服务站的实施,DOES解决了这个问题。

Thanks, Sandeep

问题回答

过去两小时左右,我一直在与用于定火插件的 Javaee-api 和 javaee-web-web-api 依赖性有关的问题抗争。 JBoss 论坛的各位朋友恳请< a href="https://community.jboss.org/wiki/WhatsThecause of this Exception JavalangClass FormatErrorAbsentCode" rel=“norefererr” 重新张贴在前 , 整个 JEE6 图书馆(按Sun/Oracle决定)被分割为API (仅包括Interfaces/stubs) JAR 和 提供者 。

这又有什么关系?如果您对 >FacesContext类 有问题,您会有这样的错误:

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/context/FacesContext

如果您看一下树上的树, 就会在编译类路径中发现一个默认的 API JAR, 这也会妨碍运行时间 :

javax.faces:javax.faces-api:jar:2.1:provided

添加明确排除的定火插件配置将强制使用测试时提供商 JAR 依附关系 :

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
    <configuration>
        <classpathDependencyExcludes>
            <!-- exclude code absent api -->
            <classpathDependencyExclude>javax.faces:javax.faces-api</classpathDependencyExclude>
        </classpathDependencyExcludes>
    </configuration>
</plugin>

希望那有帮助, 它确实对我有用。

我以玻璃鱼为交易对象 解决了这个问题

    <dependency>
        <groupId>org.glassfish.main.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <version>3.1.2.2</version>
        <scope>provided</scope>
    </dependency>
<dependency>
<groupId>org.glassfish.main.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.1.2.2</version>
<scope>provided</scope>

It worked for me. Thanks. But order in pom.xml also matters as for me

 <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish.main.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <version>3.1.2.2</version>
        <scope>test</scope>
    </dependency>

工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作 工作

<dependency>
        <groupId>org.glassfish.main.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <version>3.1.2.2</version>
        <scope>test</scope>
    </dependency>
 <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>

重于秩序工程

我特别在测试时(J United + Mockito + Mockito)在使用泽西时也遇到同样的错误。 我的工作就是在我的pom.xml档案中添加下面的代码。

<dependency>
   <groupId>com.sun.jersey</groupId>
   <artifactId>jersey-test-framework</artifactId>
   <version>1.1.5.1</version>
   <scope>test</scope>
</dependency>

注: Im 使用泽西岛1.17

我最近遇到同样的错误,由于这个问题和上述答案,特别是Lindro.freitos,我得以用下列方法解决这个问题:

 <dependency>
    <groupId>org.glassfish.main.extras</groupId>
    <artifactId>glassfish-embedded-all</artifactId>
    <version>3.1.2.2</version>
    <scope>provided</scope>
</dependency>

原来我和Javax.servlet有关

我有一个和Josdem类似的案例(与Mockito一起经营JUM时也有同样的错误),但没有泽西岛。因此,一个独立泽西岛的解决方案对我有效:

    <dependency> 
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-servlet_3.0_spec</artifactId>
        <version>1.0</version>
        <scope>test</scope>
    </dependency>

同样的问题在这里。 虽然对我来说,这与我宣称的依附关系的顺序是相同的。 玻璃鱼的依附关系需要提前宣布,而不是提供 Javaee-web-api 的依附关系。

    <dependency>
        <groupId>org.glassfish.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <version>3.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>

我不知道为什么在测试中,玻璃鱼嵌入的鱼被放置在 Javaee-web-api 之后,班级路径会变得混乱。 我想JVM 试图先解决提供中的 Javax 类,然后在测试中放弃。 我想宣布测试范围将居于优先地位,但在我的情况下情况似乎并非如此。 希望这对某人有所帮助。

got same problem compiling with netbeans 7.2.1. However the output specified one of my own java source files as having "absent code attribute.......etc"

与此同时,我可以用JDeveloper来编译和运行同样的项目。 在“清理”了几个“清洁”之后,并重新启动了网络,但同样的问题仍然存在。

最后我把它固定了起来,在“java”中添加了一种主要方法,被报告为具有“缺席代码属性”并使用与调试目标相同的方法。所有方法都恢复正常。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签