Maven的EJB&JBoss的配置使用以及一键式部署

仇龙光
2023-12-01

1、准备:为了完成主题中所提到的任务我们需要做如下准备:

          IntelliJ IDEA 11.1.1

          Maven 3.0.4

          JDK 1.6.0

          JBOSS 5.1.0 GA

关于安装以及环境配置请Google

 

2、新建项目和一键式部署

     打开IntelliJ中创建一个新的Project名字命名为(maven-ejb-spike),并在Project Structure,Modules中在maven-ejb-spike下增加一个 EJB 的module。

     在Deployment Descriptors中增加ejb-jar.xml, 在项目的根路径下将增加一个META-INF其中包括一个ejb-jar.xml。

     在src/main下新建一个resources目录,将整个META-INF文件夹移动到resources下

     打开pom.xml文件,并在其中增加以下配置:

 

   <groupId>maven-ejb-spike</groupId>

   <artifactId>maven-ejb-spike</artifactId>

   <version>1.0</version>

 

   <build>

       <plugins>

           <plugin>

               <groupId>org.apache.maven.plugins</groupId>

               <artifactId>maven-ejb-plugin</artifactId>

               <version>2.3</version>

               <configuration>

                   <ejbVersion>2.1</ejbVersion>

               </configuration>

           </plugin>

 

           <plugin>

               <groupId>org.codehaus.mojo</groupId>

               <artifactId>jboss-maven-plugin</artifactId>

               <version>1.5.0</version>

               <configuration>

                   <serverName>all</serverName>

                   <fileName>target/maven-ejb-spike-1.0.jar</fileName>

               </configuration>

           </plugin>

       </plugins>

   </build>

 

     然后到项目路径下,执行:mvn clean install jboss:hard-undeploy jboss:hard-deploy jboss:start

     如果看到 Starting JBoss和BUILD SUCCESS的字样,就说明成功了。我们的EJB项目现在会被maven自动打包成jar包并发布到JBoss的deploy目录下。 我们可以接着进行下面的工作。

 

3、开始开发第一个Session

右键点击当前项目(也就是maven-ejb-spike),选择 ‘New Stateless Session Bean’,并填入必备的信息。最后点击确认,将会生成三个EJB session相关的类,remote interface 从EJB Object继承,session bean和EJB home,同时IntelliJ会自动修改ejb-jar.xml的内容。

此时我们的EJB不做任何事情,但是是一个完整可以部署的EJB session了。

执行 mvn clean install jboss:hard-undeploy jboss:hard-deploy jboss:start 看是否依然能够部署成功。

 

确认成功信息之后在remote interface中增加一个方法例如helloEJB, 然后在session bean中实现。

 

4、测试在JBoss上的EJB Session

将JBoss下client目录中所有jar加入到当前项目中。

然后在测试用例中加入如下代码:

Hashtable environment = new Hashtable();

environment.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");

environment.put(Context.URL_PKG_PREFIXES,"org.jboss.naming:org.jnp.interfaces");

environment.put(Context.PROVIDER_URL, "jnp://localhost:1099"); //remote machine IP

InitialContext context = new InitialContext(environment);

GasCostCalculator calculator = ((GasCostCalculatorHome)context.lookup("GasCostCalculatorEJB")).create();

assertThat(calculator.calculate(0), equalTo(0));

System.out.println("-->> lookup object successfully");

 

运行测试用例之前确保你的JBoss在执行中。

 

理论上。。。。测试用例应该通过。

 类似资料: