很久没有写Java EE了,EE6都出来了,还不赶快补一下,于是自己就下载了GlassFishV3的Eclipse绑定版,以前都是和NetBeans绑定的,现在居然出和eclipse绑定的,一直觉得NetBeans还是不错的,看来还是会被逐渐边缘化
现在来说说遇到的问题,我按以前J2EE5的方式写了一个HelloWorld,如下
然后打包就部署到服务器上面了,然后加上了必要的例如javaee.jar,appserv-rt.jar,appserv-client,appserv-ext.jar,appserv-deploy-client.jar,部署是没问题的,但是运行的话,总是找不到指定的串行的资源,于是线检查是否部署成功,在glassfish控制台上面,确实是成功的,于是又看映射的JNDI资源名,也是正确的,于是开始不解了。这个是怎么回事呢?于是打开以前的NetBeans,心想用以前的方法在NetBeans里面应该可以吧,添加好了Glassfish v3之后,同样的代码,同样的错误。于是开始绝望,有检查了一次,不行。于是开始google异常信息,得到的就是一大堆的英语论坛,还好英语还成,硬着研究了一天,的出来一个结论说是NetBeans的那个版本与Glassfishv3结合不好,这个还是官网说的,于是明白了一点就是,应该用glassfish v2,才是以前用的,javaee5,但是总不可能停止在以前吧,于是我重新又开启了GlassFishBandleEclipse,这次我把GlassFishv3下面的Lib全部都导入了。差点导死机了。速度那个慢。抱着绝望的心情,试了一下,居然成功了。迷茫,经过研究,只需要将lib根目录下面的几个jar包导入即可,特别是那个jndi-properties.jar,查看里面的文件,原来有一个jndi.properties文件,即new InitialContext的时候会自动读取的,原来哦~其实大部分是这个原因,不过其他jar也是必要的。哎~终于把这个问题搞定了。看来EE6果然高深,希望在HelloWorld以后不会再有什么离奇的事情发生了。。。。
java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory