随笔-16  评论-54  文章-0  trackbacks-0

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,一切正常!好有成就感 :)

posted on 2006-11-29 14:42 jspark 阅读(1661) 评论(1)  编辑  收藏

评论:
# re: 安装SUN ONE APPSERVER8.1以及部署应用所碰到的问题 2007-08-09 16:16 | 逍遥游
Sun自己的应用服务器,兼容性都比不上Tomcat好!  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: