posts - 74,  comments - 261,  trackbacks - 0
    前一阵因对Tomcat的发展前景比较担心(版本升级慢,目前还未支持基于NIO的Comet技术),所以想考虑更换一下服务器,就尝试一下把项目移到Glassfish V2版本上,但中间遇到了不少问题,今天总结了一下,也希望高手能给一些点评。
   下面列举了一下遇到的问题以及解决的办法:
    1. JNDI设置
      Tomcat的JNDI的设置,可以通过Context.xml或是server.xml文件中配置,配置的方法如下:
      <Environment name="xxxx" type="java.lang.String" value="xxx" />
      获取的方法为: java:comp/env/xxxx
     
      Glassfish则与tomcat大不相同。Glassfish识别context.xml文件,但不识别<Environment>标签,那么
      要在Glassfish上配置JNDI需要通过管理界面的资源或是domains/domainname/config/domain.xml中配置
      下面是一个示例:
    <custom-resource enabled="true" factory-class="com.manorrock.glassfish.jndi.JndiStringFactory" jndi-name="xxxxx" object-type="user" res-type="java.lang.String">
      <property name="cccc" value="xxxxx"/>
    </custom-resource>     
     
      取得的方法:  xxxxx(不能加上java:comp/env/),包括取数据源也是一样,这个很容易出错,一定要注意。
      
    2. Realm的设置
      Tomcat和Glassfish都支持Realm,但可惜Realm不是Servlet规范,当然各家产出的东西也是不一样的了。
      如果你使用的是自定义的Realm扩展,那就根据不同的服务器,单独开发吧。
     
    3. Web.xml的安全配置
      Web.xml可能通过配置<security-constraint>标签为资源设置安全访问控制,但Glassfish与Tomcat不同的是
      Glassfish提供sun-web.xml文件,需要在<security-constraint>标签指定角色名称时,在sun-web.xml中进对
      应,也就是说真正的角色名称,Glassfish只识别sun-web.xml中配置的,再通相关联到web.xml中。
     
    4. Hibernate-JPA
        都知道Tomcat是一个Servlet实现,Glassfish V2则是一个完善的EJB3的实现,当然已经包括JPA.(JPA的实现使用
        的是Toplink-Essential).因为项目使用的是Hibernate-JPA,所以移植的时候,也不得不把Hibernate的JPA类库
        移到项目中,但一运行结果报JPA类库找不到(真是奇怪),结果多次尝试到,把HIberante的JPA类库放到
        domainname/lib/ext目录下,就能顺利加载了(目前没有弄清楚什么原因,也希望高手能够指点)

以上是我遇到一些问题总结,希望大家多提点建议。

Good Luck!
Yours Matthew!

posted on 2008-09-19 14:34 x.matthew 阅读(1278) 评论(2)  编辑  收藏 所属分类: Application Server

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-10-31 08:59 编辑过
 
 

相关链接:
网站导航: