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 阅读(1670)
评论(1) 编辑 收藏