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?

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.

Reply via email to