部署EJB在JBOSS中是一件非常容易的事,你只需简单将HelloWorld.jar拷贝到c:\ jboss-3.2.6\server\default\deploy目录下就可以了。
这时,你可以切换到JBOSS运行的那个DOS窗口下,你会发现屏幕上会新出现如下提示信息:
15:09:21,184 INFO [MainDeployer] Starting deployment of package: file:/F:/jboss -3.2.3/server/default/deploy/HelloWorld.jar 15:09:21,324 INFO [EjbModule] Creating 15:09:21,354 INFO [EjbModule] Deploying HelloWorld 15:09:21,464 INFO [EjbModule] Created 15:09:21,484 INFO [EjbModule] Starting 15:09:21,555 INFO [EjbModule] Started 15:09:21,555 INFO [MainDeployer] Successfully completed deployment of package: file:/F:/jboss-3.2.6/server/default/deploy/HelloWorld.jar
客户端代码
如果没有客户端代码的话,那么EJB对我们来说几乎毫无用处。以下我们将编写客户端代码来调用这个HelloWorld。
如果你在同一台机器上运行客户端代码和JBOSS服务器的话,那以下代码无须任何修改就可以运行,但你的客户端在另一台机器上运行的话,那你要将源码中的相应行改变一下:
/*以下是客户端源码中需要修改的行*/ env.put(Context.PROVIDER_URL, "localhost:1099"); 假设EJB部署在一台IP地址为192.168.0.1的机器上,那么就应该将以上源码改为如下:
/*以下是客户端源码中修改后的行*/ env.put(Context.PROVIDER_URL, "192.168.0.1:1099");
/*HelloWorldClient.java*/ package sample; import javax.naming.Context; import javax.naming.InitialContext; import java.util.Hashtable; public class HelloWorldClient { public static void main( String [] args ) { Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory"); env.put(Context.PROVIDER_URL, "localhost:1099"); env.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces"); try { Context ctx = new InitialContext(env); Object obj = ctx.lookup( "HelloWorld" ); HelloWorldHome home =(HelloWorldHome)javax.rmi.PortableRemoteObject.narrow( obj, HelloWorldHome.class ); HelloWorld helloWorld = home.create(); System.out.println( helloWorld.hello()); helloWorld.remove(); } catch ( Exception e ) { e.printStackTrace(); System.out.println( "Exception: " + e.getMessage() ); } } } 好了,下面我就就可以编译并运行这个客户端了,如果你在编译的时候JVM报告找不到某些类的话,则可能是你没有将j2ee.jar这个包放在CLASSPATH这个路径变量中。客户端的执行结果虽然只是简单的在屏幕上打印一行“hello,world”,但它是来自于另一个世界——JBOSS的声音!
附:JBoss近日发布了EJB 3.0实现的beta1版本 据JBoss的消息称,这个EJB 3.0实现尽可能地靠拢即将发布的EJB 3.0规范草案,该规范草案将于未来几周内正式发布。JBoss计划于本月内再发布一个版本,提供更加完整的草案实现。由于Hibernate的创始人、EJB 3规范专家组的重要成员Gavin King也是JBoss的成员,因此通常认为JBoss的EJB 3.0实现与最终的规范会相当接近。 下载地址:http://www.jboss.org/products/ejb3
|