首先,下载并安装Glassfishv2(安装完后查看version是Sun Java System Application Server 9.1 (build b41d-beta2)),这个都很容易找到相关资料。下面就个人在安装及测试时遇到的一些问题做一下总结。
1、安装时都采用默认设置,我下的是glassfishv2.jar安装文件,看网上资料有提到在进行到ant执行setup.xml文件时会遇到一点小麻烦,看完别人的解决步骤后就写了一个bat文件来执行安装,其实很简单:
java -Xmx256m -jar glassfishv2.jar //此处解压到同目录下的glassfish文件夹
cd glassfish
lib/ant/bin/ant -file setup.xml //执行setup安装
2、关于glassfish的启动及关闭,网上也有文章,大致有3种做法。
a. 使用%GLASSFISH_HOME%/bin目录下的asadmin.
b. 使用%GLASSFISH_HOME%/domains/domain1/bin目录下的startserv及stopserv,注意需要将%GLASSFISH_HOME%/bin添加到path环境变量中,但此处还是稍微有点问题。启动时还好,就是需要输入用户名、密码,默认如下:
admin username = admin
admin password = adminadmin
master password = changeit //这个不好找,不知道干嘛用的
使用stopserv关闭时会出现问题,命令结束后实际并没有让glassfish服务停止。
“Could not create the Java virtual machine.
Unrecognized VM option '+LogVMOutput'”
继续在网上搜索,找到需要将%GLASSFISH_HOME%/lib/processLauncher.xml文件中的如下段注释掉。
<sysproperty key="-XX:+UnlockDiagnosticVMOptions"/>
<sysproperty key="-XX:+LogVMOutput"/>
<sysproperty key="-XX:LogFile" value="${com.sun.aas.instanceRoot}/logs/jvm.log"/>
c. 在MyEclispe中添加server,然后...(感觉这个方法最方便好用)
安装算基本完成,接下来打开MyEclipse,照着Help Contents中的MyEclipse Learn Center -> EJB Development -> EJB3.0 Tutorial来进行EJB3测试。其中需要注意的总结如下几点:
1、 在完成代码编写时,不能直接通过Add deployment to server的方式直接将EJB项目部署到Glassfish中,这样是没用的,根本无法访问到EJB(服务器启动时一堆异常)。其实,在代码完成后,可以访问Glassfish的管理页面http://localhost:4848/,在管理页面通过添加EJB Module的方式就可以将EJB部署到服务器上;可以部署打包的jar文件,也可以直接将你项目的class目录部署到Glassfish中(测试时为了方便,直接采用的第二种方法)。部署完成后,会将相应的保存到%GLASSFISH_HOME%/domains/domain1/config/domain.xml中。
<ejb-module availability-enabled="false" directory-deployed="true" enabled="true" location="e:/myworkspace/SampleEJB/classes" name="Myejb" object-type="user">
<description>test</description>
</ejb-module>
部署完成后,就可以大胆的运行MyBeanClient了,一切正常,“Hello World“在控制台出来了。
2、当我使用其它两种方法启动Glassfish时,“Hello World”却始终不肯露面,运行后无异常也无输出,起初以为又出错了,但想想如果真有异常也应该输出一堆异常啊,可偏偏什么也没有(cmd窗口亦没有,不像Tomcat)。于是想到%GLASSFISH_HOME%/domains/domain1/logs目录,希望这里有,果然在server.log有预期的输出。