On Aug 26, 2009, at 5:32 AM, Drew Rampulla wrote:
I receive "java.lang.ClassFormatError: Absent Code attribute in
method that is not native or abstract in class file javax/resource/
spi/ResourceAdapterInternalException" when I try to use OpenEJB as a
container for my unit tests. I believe this has something to do
with including the dependency javaee:javaee-api:5 instead of using
the javaee-api that is included in OpenEJB. Does anyone know why I
can't use javaee:javaee-api:5 in my Maven pom file?
It should work fine if you use org.apache.openejb:javaee:5.0-2 in your
pom.xml. This is the spec library we create and is fully certified.
I'm not familiar with javaee:javaee-api:5 artifact. Maybe someone
else has an idea where it comes from or who makes it.
-David
I'll cut/past the pom file to illustrate my point.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>ejbwithunittests-ejb</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>ejb</packaging>
<name>EJB With Unit Tests - EJB</name>
<properties>
<jboss.home>${env.JBOSS_HOME}</jboss.home>
<jboss.servername>default</jboss.servername>
<project.build.sourceEncoding>UTF-8</
project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.6</version>
</dependency>
<!--When I leave this in it fails, but when I comment it out and put
the openejb version back in, it works -->
<dependency>
<groupId>javaee</groupId>
<artifactId>javaee-api</artifactId>
<version>5</version>
<scope>provided</scope>
</dependency>
<!--
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>javaee-api</artifactId>
<version>5.0-2</version>
<scope>provided</scope>
</dependency>
-->
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
<version>3.1.1</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<!--
This is insane that I need to specify
this, you would think that
the stupid thing would assume that all
dependecies should be
included in the package, but whatever...
POS
-->
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
<ejbVersion>3.0</ejbVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jboss-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<jbossHome>${jboss.home}</jbossHome>
<serverName>${jboss.servername}</serverName>
<hostName>localhost</hostName>
<port>8080</port>
<!-- I have no idea why this won't work with
deploy, but i need to use harddeploy for now -->
<deployUrlPath><![CDATA[/jmx-console/
HtmlAdaptor?action=invokeOpByName&name=jboss.system:service
%3DMainDeployer&methodName=deploy&argType=java.net.URL&arg0=]]>
</deployUrlPath>
<undeployUrlPath><![CDATA[/jmx-console/
HtmlAdaptor?action=invokeOpByName&name=jboss.system:service
%3DMainDeployer&methodName=undeploy&argType=java.net.URL&arg0=]]>
</undeployUrlPath>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<repositories>
<repository>
<id>java.net1</id>
<name>Java.Net Maven1 Repository, hosts the javaee-api
dependency</name>
<url>http://download.java.net/maven/1</url>
<layout>legacy</layout>
</repository>
<repository>
<url>http://download.java.net/maven/2</url>
<id>restlib</id>
<layout>default</layout>
<name>Repository for library Library[restlib]</name>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven2-repository.dev.java.net</id>
<url>http://download.java.net/maven/2</url>
<layout>default</layout>
</pluginRepository>
</pluginRepositories>
</project>
Andrew Rampulla
________________________________
The information contained in this message is legally privileged and
confidential, and is intended for the individual or entity to whom
it is addressed (or their designee). If this message is read by
anyone other than the intended recipient, please be advised that
distribution of this message, in any form, is strictly prohibited.
If you have received this message in error, please notify the sender
immediately and delete or destroy all copies of this message.