Java7とTomcat7を使用してJSF/Hibernateアプリケーションを構築しようとしています。JavaSDKとJavaEESDKをインストールし、javaee.jarとjavaee-api-6.jarをTomcatLIBフォルダーにコピーしました。この投稿とこの投稿を理解することで、必要なすべてのjarが必要になります。私の知る限り、このフォルダーには、競合するリソースを持つ他のjarはありません。
javaee.jarファイルには、Mavenpomファイルのように見えるものだけが含まれています。その価値が何であるかわかりません。
私のjavaee-api-6jarのサイズは約950kで、期待するすべての.classファイルが含まれています。私が使用しているコードは正常にコンパイルされます。Tomcatにデプロイしようとするとエラーが表示されるだけです。これらの瓶は、Glassfishインスタレーションから取られました。不思議なことに、ファイル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を移動して移動することはできません。これらは不完全であり、次のようになります。一部のクラスの実装が見つからないことを示す同様のエラー(私は想定しています)。
だから私の質問は:javax.persistenceを正しく機能させるためにTomcat 7に何を含める必要がありますか?
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 Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetPublicMethods(Unknown Source)
at java.lang.Class.privateGetPublicMethods(Unknown Source)
at java.lang.Class.privateGetPublicMethods(Unknown Source)
at java.lang.Class.getMethods(Unknown Source)
at org.apache.tomcat.util.IntrospectionUtils.findMethods(IntrospectionUtils.java:713)
at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:272)
at org.apache.tomcat.util.IntrospectionUtils.setProperty(IntrospectionUtils.java:261)
at org.apache.tomcat.util.digester.SetPropertiesRule.begin(SetPropertiesRule.java:215)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1282)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1543)
at org.apache.catalina.startup.Catalina.load(Catalina.java:554)
at org.apache.catalina.startup.Catalina.load(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:262)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:430)