安装SUN ONE APPSERVER8.1以及部署应用所碰到的问题

安装SUN ONE APPSERVER8.1以及部署应用所碰到的问题

grant {
    permission java.lang.RuntimePermission  
" loadLibrary.* " ;
    permission java.lang.RuntimePermission  
" queuePrintJob " ;
    permission java.lang.RuntimePermission  
" setContextClassLoader " ;
    permission java.lang.RuntimePermission  
" getProtectionDomain " ;
    permission java.lang.reflect.ReflectPermission 
" suppressAccessChecks " ;
    };

grant {
    permission java.util.PropertyPermission   
" * "  ,   "  read,write  "  ;

};  

     最近一个项目需要用到SUN ONE APPSERVER8.1,本人在WINDOWS SERVER 2003中安装,碰到一些问题,不过比较幸运的是都解决了,下面大概描述一下个人碰到的问题,期望能给别人带来帮助

   一、DNS服务器问题
    安装SUN ONE APPSERVER8.1必须要在服务器上安装,而且必须要将该服务器设置为DNS服务器。关于WINDOWS SERVER 2003
    如何设置DNS服务器,网上很多资料,可以查阅

   二、文件系统权限访问问题
 也许SUN ONE APPSERVER8.1服务器在文件访问方面控制比较严格,如果按照默认安装上去的系统。对于一些文件夹、文件读取是会有一些控制的。比如说,当将应用部署上去,然后访问应用,会抛出SecurityException。这是因为需要编译jsp页面,生成class文件,由于没有写权限,所以会出错。解决的方法是为SUN ONE APPSERVER增加文件访问权限。修改方法如下:
 找到安装路径,下面以本人的安装路径为例子:
 c\sunjes\ApplicationServer\domains\domain1\config
 该目录下面有一个文件叫server.policy,打开该页面,可以看到里面是一些关于文件访问权限的例子

    
//  Core server classes get all permissions by default
grant codeBase  " file:${com.sun.aas.installRoot}/lib/- "  {
    permission java.security.AllPermission;
};
    
    下面为文件路径增加访问权限,个人把整个c盘设置为可读可写,如下

    grant codeBase 
" file:c:/- "  {
    permission java.security.AllPermission;
};

grant {
    permission java.io.FilePermission 
" c:/- " " read,write,execute,delete " ;

}; 


 编辑完毕,保存,重启服务器,OK,该问题解决。 :)

  三、其他几个权限问题:
         编辑以上问题后,重新自动,可能还会发现以下几个异常,比如 permission java.util.PropertyPermission   "*" ,  " read,write " ;
      因此,分别加上如下几个权限设置即可
   



  四、ORACLE10.2.0.1驱动问题
 本人部署的应用是spring+hb架构,里面用到blog/clob大字段处理,因此驱动程序用最新的驱动程序10g,版本为10.2.0.1。在部署到SUN ONE APPSERVER8.1时,也抛出类访问异常,异常信息是:oracle.sql is sealed。没办法,上网搜索了一下,发现有很多人也遇过这个情况。主要是oracle10g.jar里面的Meta-inf定义,增加了sealed属性。打开该文件MANIFEST.MF,内容如下:
 

    Manifest - Version:  1.0
Specification
- Title:    Oracle JDBC driver classes  for  use with JDK14
Created
- By:  1.4 .2_08 (Sun Microsystems Inc.)
sealed:
true
Implementation
- Title:   ojdbc14.jar
Specification
- Vendor:   Oracle Corporation
Specification
- Version:  Oracle JDBC Driver version  -   " 10.2.0.1.0 "
Implementation
- Version: Oracle JDBC Driver version  -   " 10.2.0.1.0 "
Implementation
- Vendor:  Oracle Corporation
Implementation
- Time:    Wed Jun  22   18 : 55 : 48   2005

 关于sealed属性网上也有
 很多资料介绍,有兴趣的网友可以参阅一下。网上同行的解决方法是下载10g,低点的版本。本人的解决方法是修改一下里面的MANIFEST.MF文件,把sealed:true去掉即可。


 四、包版本不兼容。
 解决完以上几个问题后,重新启动,本以为万事大吉,很不幸运的是,再次抛出异常:
 ClassNotFoundException: org.hibernate.hql.ast.HqlToken。同样,上网搜索了一下,发现是hibernate的antlr.jar和SUN ONE APPSERVER的antlr.jar存在冲突。hibernate3.0版本用
 的antlr.jar包版本是2.7.5,比SUN ONE APPSERVER的高。以前在weblogic部署应用时,也出现过类似的问题。由于这些服务器会优先装载自己的类,因此会出现一些问题。解决方法是把hibernate下较高版本的antlr.jar放在classpath的前面。在SUN ONE APPSERVER
 下最快捷的方式就是将antlr-2.7.5H3.jar拷贝到ApplicationServer\lib目录下面即可

 解决完以上几个问题后,再次重启,访问,OK,一切正常!好有成就感 :)

你可能感兴趣的:(安装SUN ONE APPSERVER8.1以及部署应用所碰到的问题)