aspose file tools*
The moose likes Ant, Maven and Other Build Tools and the fly likes Maven 2 EJB 3.0 Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Engineering » Ant, Maven and Other Build Tools
Bookmark "Maven 2 EJB 3.0" Watch "Maven 2 EJB 3.0" New topic
Author

Maven 2 EJB 3.0

Bhiku Mhatre
Ranch Hand

Joined: Apr 08, 2002
Posts: 127
I am trying to compile a ejb 3 project using maven2. However, I am running into following issue.

[40,1] annotations are not supportedin -source 1.3
(try -source 1.5 to enable annotations)
@MessageDriven(mappedName = "jms/mymsgbean", activationConfig =


The project structure is
parentProj
ejbpoj1
ejbpoj2
ejbpoj3


Here is the parentproj.pom file.

<project>
<parent>
<groupId>com.acme</groupId>
<artifactId>apps</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ejb</artifactId>
<name>ejb</name>
<packaging>pom</packaging>
<modules>
<moduleAmessagebean</module>
<module>Bmessagebean</module>
<module>Cmessagebean</module>
<module>Dmessagebean</module>
<module>Emessagebean</module>
</modules>


<build>

<plugins>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerVersion>1.5</compilerVersion>
<source>1.5</source>
<target>1.5</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<optimize>false</optimize>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<configuration>
<ejbVersion>3.0</ejbVersion>
</configuration>
</plugin>

</plugins>

</build>


</project>

Does anyone have a solution?
Important input: JAVA_HOME point to JDK 5.0

Thanks,


The difference between winner and loser is making things happen and letting things happen.
Nathan Pruett
Bartender

Joined: Oct 18, 2000
Posts: 4121

Is this happening to beans in all your sub-projects or just one? Is there anything in the sub-project POMs that could override the setting? Or any system/user settings that could override this?


-Nate
Write once, run anywhere, because there's nowhere to hide! - /. A.C.
Bhiku Mhatre
Ranch Hand

Joined: Apr 08, 2002
Posts: 127
I resolved the problem. The issue arised due to faulty inheritance. Now that inheritance is set properly, it is working.

Thanks Natan for looking into the problem.
Bhiku Mhatre
Ranch Hand

Joined: Apr 08, 2002
Posts: 127
Hmmm. Looks like I reported the success prematurely. The EJB 3.0 problem still persists.

Here is my pom.xml

<project>
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.acme</groupId>
<artifactId>ejbs</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>abcdMassageBean</artifactId>
<packaging>ejb3</packaging>
<name>abcdMassageBean</name>

</project>
upon trying compile target, following error is thrown.


Please note: When packaging is set to ejb, it works fine.



[INFO] The plugin 'org.apache.maven.plugins:maven-ejb3-plugin' does not exist or no valid version could be found
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: The plugin 'org.apache.maven.plugins:maven-ejb3-plugin' does not exist or no valid version could be f
ound
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1286)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.getMojoDescriptor(DefaultLifecycleExecutor.java:1522)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.bindLifecycleForPackaging(DefaultLifecycleExecutor.java:1016)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.constructLifecycleMappings(DefaultLifecycleExecutor.java:980)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:458)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.version.PluginVersionNotFoundException: The plugin 'org.apache.maven.plugins:maven-ejb3-plugin' does not exist or no valid
version could be found
at org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:228)
at org.apache.maven.plugin.version.DefaultPluginVersionManager.resolvePluginVersion(DefaultPluginVersionManager.java:90)
at org.apache.maven.plugin.DefaultPluginManager.verifyPlugin(DefaultPluginManager.java:166)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyPlugin(DefaultLifecycleExecutor.java:1257)
... 18 more
Nathan Pruett
Bartender

Joined: Oct 18, 2000
Posts: 4121

The maven-ejb-plugin page gives this plugin configuration for building to the EJB3 spec -



So you would leave packaging as 'ejb' and the above configuration should make your EJB 3.0 spec.
Bhiku Mhatre
Ranch Hand

Joined: Apr 08, 2002
Posts: 127
Nathan,
Thanks for quick reply. I tried and it worked. I was refering to documents on Maven forum which it appears are obsolete. I am very close to packaging an ear file. However, another error is thrown in the following script of ear generation project.


Here is pom.xml

<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.acme</groupId>
<artifactId>apps</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>psmear</artifactId>
<name>psm ear packaging</name>
<packaging>ear</packaging>

<build>
<plugins>


<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.1</version>
<configuration>
<displayName>PSM Project Enterprise Archive</displayName>
<description>includes EJBS, Apps and War file</description>
<earSourceDirectory>EarContent</earSourceDirectory>
<defaultJavaBundleDir>APP-INF/lib</defaultJavaBundleDir>

<modules>

<javaModule>
<groupId>com.acme</groupId>
<artifactId>core</artifactId>
</javaModule>
<javaModule>
<groupId>com.acme</groupId>
<artifactId>product</artifactId>
</javaModule>



<ejb3Module>
<groupId>com.acme</groupId>
<artifactId>handlermessagebean</artifactId>
<bundleFileName>handlermessagebean.ejb3</bundleFileName>
</ejb3Module>


<ejb3Module>
<groupId>com.acme</groupId>
<artifactId>interfacemessagebean</artifactId>
<bundleFileName>interfacemessagebean.ejb3</bundleFileName>
</ejb3Module>


<ejb3Module>
<groupId>com.acme</groupId>
<artifactId>persistencemessagebean</artifactId>
<bundleFileName>persistencemessagebean.ejb3</bundleFileName>
</ejb3Module>


<ejb3Module>
<groupId>com.acme</groupId>
<artifactId>productmessagebean</artifactId>
<bundleFileName>productmessagebean.ejb3</bundleFileName>
</ejb3Module>

<ejb3Module>
<groupId>com.acme</groupId>
<artifactId>urlharvestermessagebean</artifactId>
<bundleFileName>urlharvestermessagebean.ejb3</bundleFileName>
</ejb3Module>
</modules>
</configuration>
</plugin>



</plugins>

</build>

<dependencies>

<dependency>
<groupId>com.acme</groupId>
<artifactId>core</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>

<dependency>
<groupId>com.acme</groupId>
<artifactId>product</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>


<dependency>
<groupId>com.acme</groupId>
<artifactId>interfacemessagebean</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>


<dependency>
<groupId>com.acme</groupId>
<artifactId>handlermessagebean</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>


<dependency>
<groupId>com.acme</groupId>
<artifactId>persistencemessagebean</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>


<dependency>
<groupId>com.acme</groupId>
<artifactId>productmessagebean</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>


<dependency>
<groupId>com.acme</groupId>
<artifactId>urlharvestermessagebean</artifactId>
<version>${project.version}</version>
<type>jar</type>
</dependency>

and Here is the exception stack.


[INFO] Trace
org.apache.maven.BuildFailureException: Artifact[com.acme:handlermessagebean:ejb3] is not a dependency of the project.
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:560)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoFailureException: Artifact[com.acme:handlermessagebean:ejb3] is not a dependency of the project.
at org.apache.maven.plugin.ear.AbstractEarModule.resolveArtifact(AbstractEarModule.java:98)
at org.apache.maven.plugin.ear.AbstractEarMojo.execute(AbstractEarMojo.java:98)
at org.apache.maven.plugin.ear.GenerateApplicationXmlMojo.execute(GenerateApplicationXmlMojo.java:96)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:443)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
... 16 more


Thanks once again for your help.
Bhiku Mhatre
Ranch Hand

Joined: Apr 08, 2002
Posts: 127
Resolved the issue by stating ejbModule instead of ejb3Module and type to be ejb instaed of jar. Please note, with these changes, Still, ejb3 files are inclueded.
The question is, when is one suppoesed to use ejb3Module Tag? It appears to be redundant and misleading tag.

Thanks.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Maven 2 EJB 3.0
 
Similar Threads
Maven: deploy application to server
maven error
Ear Building in Maven
JBOSS DeploymentException : Not able to find module file : .war in a .ear file
Problem with the "mvn test" command missing EJB client jar artifact