程序员之家 >> 文章 >> Java技术 >> J2EE
J2EE——小编浅谈EJB运行测试
作者:娜   来源:程序员之家   发布者:admin
时间:2009-09-16 11:43:29   点击:861

小编和大家分享的是EJB运行测试,编写一个简单的客户端程序HelloClient来测试已部署的EJB

客户端测试程序代码编写

  在文本编辑器中编辑HelloClient.java文件,并保存在C:\work\hello目录下,其代码如下:

//本类需要引入的类或接口

import java.rmi.RemoteException;

import java.util.Properties;

import javax.ejb.CreateException;

import javax.ejb.RemoveException;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.rmi.PortableRemoteObject;

 

public class HelloClient {

private static final String JNDI_NAME = "HelloHome";

private String url;

private HelloHome home;

public HelloClient(String url)

throws NamingException

{

this.url = url;

home = lookupHome();

}

void test()

throws RemoteException,CreateException

{

Hello hello = (Hello) PortableRemoteObject.narrow(home.create(), Hello.class);

System.out.println("I am in client. "+hello.sayHello());

}

/**

* 运行这个实例:

* java HelloClient t3://localhost:7001

*/

public static void main(String[] args) throws Exception {

 

System.out.println("\n客户端程序测试开始...\n");

 

String url = "t3://localhost:7001";

// 解析命令行

if (args.length != 1) {

System.out.println("用法: java HelloClient t3://hostname:port");

return;

} else {

url = args[0];

}

HelloClient client = null;

try {

client = new HelloClient(url);

} catch (NamingException ne) {

System.exit(1);

}

try {

client.test();

} catch (Exception e) {

System.exit(1);

}

System.out.println("\n客户端程序测试结束...\n");

}

/**

* 查找 EJB 的主接口

*/

private HelloHome lookupHome()

throws NamingException

{

Context ctx = getInitialContext();

Object home = ctx.lookup(JNDI_NAME);

return (HelloHome) PortableRemoteObject.narrow(home, HelloHome.class);

}

 

/**

* 使用属性对象获取上下文

*/

private Context getInitialContext() throws NamingException {

Properties h = new Properties();

h.put(Context.INITIAL_CONTEXT_FACTORY,

"weblogic.jndi.WLInitialContextFactory");

h.put(Context.PROVIDER_URL, url);

return new InitialContext(h);

}

}

客户端测试程序代码编译

 

  请执行以下操作:

  (1)hello目录下创建client子上当放置客户端测试程序,创建client目录,拷贝文件。执行:

   c:\work\hello>md client

   c:\work\hello>copy HelloClient.java client

  注意:因为HelloClient类需引入HelloHelloHome接口,因此要从build目录下拷贝Hello.classHelloHome.class文件到client目录。

 

   c:\work\hello>copy build\Hello.class client

   c:\work\hello>copy build\HelloHome.class client

  (2)进入client目录

   c:\work\hello>cd client

  (3)编译:

   c:\work\hello\client>java HelloClient.java

  至此客户端测试程序代码编译完毕。

  也可以把这些命令做成一个命令脚本文件build_client.cmd,保存在C:\work\hello目录,其代码如下:

md client

copy HelloClient.java client

copy build\Hello.class client

copy build\HelloHome.class client

cd client

javac HelloClient.java

 

运行测试

 

  运行测试程序,执行如下操作:

  (1)启动Weblogic Server 6.0的缺省服务器,Weblogic Server的启动是个简单的过程,可以通过开始菜单和直接运行启动命令脚本两种方式,详细情况请参见第1章。

  (2)运行测试程序。在命窗口中进入C:\work\hello\client目录,执行:

   c:\work\hello\client>java HelloClient t3://127.0.0.1:7001

  (3)观察运行结果:应该如下:

  客户端程序测试开始...

  I am in client. Hello World

  客户端程序测试结束...

而在Weblogic Server的命令行窗口中打印如下信息:

  I am in an EJB of Server .Hello World

并且每运行一次,这行信息就打印一次。

整理了这么多,希望对大家有所帮助!

转载请注明出处:  程序员之家 http://www.sunxin.org

最新文章
点击排行