你知道是否有一个列表包含Java EE 6的每个组件的所有参考实现?即GlassFish是参考容器,Hibernate Validator用于验证等.
我正在尝试构建一个依赖于JPA2的实现不可知的maven模块.不幸的是,唯一的Maven JPA依赖是基于JPA1,因此,我不能使用EntityManager.detach()方法,因为它只是JPA2选项.
理想情况下,我希望能够在我的Pom中指定我的javax.persistence依赖项,并要求app/container提供JPA2实现.不幸的是,我找不到任何这样的依赖.
在这一点上,我唯一的选择是将hibernate-jpa-2.0-api 1.0.0.FINAL声明为提供的依赖项吗?
我打算在我的应用程序中使用Java servlet.我在我的项目的POM.xml文件中包含以下内容以加载Java servlet 3.0实现jar.
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.servlet</artifactId>
<version>3.2-b05</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
该项目编译得很好.但是,当我运行它时,我收到以下错误:
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException
Run Code Online (Sandbox Code Playgroud)
我在这里搜索它并找到了一些很好的答案.
我从他们中发现,当我们包含仅包含由servlet API定义的接口而不是实际实现的JAR时,会发生此错误.所以,我检查了我正在使用的glassfish jar只是接口或它也包含实现.我发现它是一个实现而不仅仅是接口.
所以现在,我想知道为什么我在运行时收到此错误.任何人?
更新:
刚才,我发现这是我身边一个明显的错误(我正在将jar添加到一个项目中,而正在运行一个完全不同的项目!).对不起,我很抱歉.添加glassfish servlet实现可以解决问题.
谢谢,Sandeep
我正在尝试使用Java 7和Tomcat 7构建JSF/Hibernate应用程序.我已经安装了Java SDK和JavaEE SDK,并将javaee.jar和javaee-api-6.jar复制到我的Tomcat LIB文件夹中.通过我对这篇文章和这篇文章的理解,我应该拥有我需要的所有罐子,据我所知,我在这个文件夹中没有其他罐子,这些罐子有相互冲突的资源.
javaee.jar文件包含看起来像Maven pom文件的内容,没有别的.我不确定它的价值是什么.
我的javaee-api-6 jar大小约为950k,包含了我期望的所有.class文件.我正在使用的代码编译得很好,我只在尝试部署到Tomcat时看到错误.这些罐子来自玻璃鱼装置.奇怪的是文件ServletException.class文件只有366个字节.
我在Eclipse中设置了Tomcat,以便IDE在部署时"接管"Tomcat,而不是部署到某个插件文件夹(默认行为).
我正在使用的唯一相关包是来自javax.persistence的'Entity''Id'和'GeneratedValue'.
我只尝试使用javaee-api-6.jar,并更名javaee-api.jar并javaee.jar没有变化.看起来它的文件名并不重要.
对Glassfish lib文件夹的深入检查确实显示了许多相关外观的jar,但不是完整的javaee包,所以我无法将Javaee-api-6.jar移出并移动它们,它们是不完整的,我得到了一个类似的错误表明(我假设)某些类的实现无法找到.
所以我的问题是:我需要在Tomcat 7中包含什么才能使javax.persistence正常工作?
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.getDeclaredMethods0(Native …Run Code Online (Sandbox Code Playgroud)