小编和大家分享的是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类需引入Hello和HelloHome接口,因此要从build目录下拷贝Hello.class和HelloHome.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