快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门24小时官网_龟发之家论坛



2.3 敕令脚本文件

上面在EJB的开拓历程中应用敕令行的要领,我们可以把有所有这些敕令行集中起来做成一个敕令脚本文件build.cmd,应用它可以一次性履行这些敕令,而不必一个敕令一个敕令的履行。该文件寄放在C:\work\hello目录下,其内容为:

md build

javac -d build Hello.java HelloHome.java HelloBean.java

md build\Meta-inf

copy *.xml build\Meta-inf

md build\images

copy *.gif build\images

cd build

jar cv0f std_myfirstejb_hello.jar META-INF *.class images

cd ..

java weblogic.ejbc -compiler javac build\std_myfirstejb_hello.jar build\myfirstejb_hello.jar

这样,在法度榜样代码编辑好的环境下,只运行这个敕令脚本法度榜样,就可以完成EJB开拓。

2.4 EJB支配

EJB的支配有很多种措施,最简单的一种便是把C:\work\hello\build目录下的myfirstejb_hello.jar文件拷贝到办事器的applications目录下,即C:\bea\wlserver6.0\config\mydomain\applications目录下。假如办事器已经启动,则在拷贝的时刻不必要从新启动办事器。办事器会自动检测到新拷贝的EJB。

2.5 EJB运行测试

编写一个简单的客户端法度榜样HelloClient来测试已支配的ejb。

2.5.1 客户端测试法度榜样代码编写

在文本编辑器中编辑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;

/**

* 这是EJB的客户端测试法度榜样

*/

public class HelloClient {

private static final String JNDI_NAME = "HelloHome";

pri澳门24小时官网vate 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);

}

}

2.5.2 客户端测试法度榜样代码编译

请履行以下操作:

(1)在hello目录下创建client子上当放置客户端测试法度榜样,创建client目录,拷贝文件。履行:

c:\work\hello>md client

c:\work\h澳门24小时官网ello>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

2.5.3 运行测试

运行测试法度榜样,履行如下操作:

(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

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

2.6 常见故障及办理措施

(1)在敕令行窗口中运行javac敕令呈现:

"java"不是内部或澳门24小时官网外部敕令,也不是可运行的法度榜样或批处置惩罚文件。

缘故原由:javac.exe敕令文件所有的路径没有包孕在情况变量Path中。

(2)履行javac -d build Hello.java HelloHome.java HelloBean.java 敕令时呈现编译差错,此中有一条差错是:

cannot resolve symbol

symbol : class EJBHome

location : package ejb

impor javax.ebj.EJBHome;

缘故原由:javac.exe敕令文件甩在的路径没有被包孕在情况变量Path中。

办理措施:运行情况变量脚本敕令setEnv.cmd。

(3)运行客户端测试法度榜样时,即运行:

java HelloClient t3://127.0.0.1:7001时,呈现:

Exception in thread "main" java.lang.NoClassFoundError: HelloClient

可能的缘故原由是没有把“.”澳门24小时官网设置到情况变量classpath中。

(4)履行java weblogic.ejbc..澳门24小时官网. 敕令时,抛出org.xml.sax.SAXParseException非常。

缘故原由:xml文件有语法差错

办理法子:进行.xml文件有效性反省。

(5)履行之后仅显示一行翰墨法度榜样就停止。

缘故原由:可能没有支配或者没有精确支配EJB。

办理法子:仔细查看本书3.4节的内容。

2.7 本章小结

本章首先评论争论若何进行一些筹备事情,然后具体先容了一个简单的EJB的开拓历程,包括编写代码、编译、打包、支配和测试运行。经由过程本章的进修,以期对J2EE的开拓有一个感性的熟识。

接下来的第3章到第7章将周全深入的评论争论EJB利用及其开拓的有关问题。

----

对新手的提示:本章所称脚本文件应用的扩展名是.cmd,实际上该文件在DOS平台上扩展名为.bat,也称为批处置惩罚文件。

本章的内容涉及到DOS情况设置,假如你想懂得更多的内容可以查询相关的内容。

您可能还会对下面的文章感兴趣: