アプリケーションで Java サーブレットを使用する予定です。Java サーブレット 3.0 実装 jar をロードするために、プロジェクトの POM.xml ファイルに以下を含めました。
<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
ここで検索したところ、いくつかの良い答えが見つかりました。
実際の実装ではなく、サーブレット API によって定義されたインターフェイスのみを含む JAR を含めると、このエラーが発生することがわかりました。そのため、使用しているグラスフィッシュ jar が単なるインターフェイスであるか、実装も含まれていることを確認しました。これは単なるインターフェースではなく、実装であることがわかりました。
だから今、なぜ実行時にこのエラーが発生するのか疑問に思っています。誰?
アップデート:
ちょうど今、それが私の側からの露骨なエラーであることがわかりました(まったく別のプロジェクトを実行している間に、あるプロジェクトにjarを追加していました!)。申し訳ありません。glassfish サーブレットの実装を追加すると、問題が解決します。
ありがとう、サンディープ