wandering

logbook

  DonewsBlog  |  Donews首页  |  Donews社区  |  Donews邮箱  |  我的首页  |  联系作者  |  聚合   |  登录
  15篇文章 :: 0篇收藏:: 4篇评论:: 2个Trackbacks

公告

文章

收藏

相册

AIX

友情blog

存档


正在读取评论……


      oracle JDeveleper 10g 下开发applet + adf 应用程序,在AppletView下运行正常,

但在Embedded OC4J Server下运行报以下错误:

错误1: 

java.lang.ExceptionInInitializerError

       at oracle.jbo.mom.DefinitionManager.<init>(DefinitionManager.java:146)

       at oracle.jbo.uicli.mom.JUMetaObjectManager.<init>(JUMetaObjectManager.java:76)

       at oracle.jbo.uicli.mom.JUMetaObjectManager.getJUMom(JUMetaObjectManager.java:251)

       at sdsc.base.flow.FlowApplet.prepDatabase(FlowApplet.java:202)

       at sdsc.base.flow.FlowApplet.actionPerformed(FlowApplet.java:177)

       at java.awt.Button.processActionEvent(Unknown Source)

       at java.awt.Button.processEvent(Unknown Source)

       at java.awt.Component.dispatchEventImpl(Unknown Source)

       at java.awt.Component.dispatchEvent(Unknown Source)

       at java.awt.EventQueue.dispatchEvent(Unknown Source)

       at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

       at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

       at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

       at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

       at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission oracle.xdkjava.compatibility.version read)

       at java.security.AccessControlContext.checkPermission(Unknown Source)

       at java.security.AccessController.checkPermission(Unknown Source)

       at java.lang.SecurityManager.checkPermission(Unknown Source)

       at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)

       at java.lang.System.getProperty(Unknown Source)

       at oracle.xml.parser.v2.XMLParser.<clinit>(XMLParser.java:988)

       ... 15 more

解决方案${java.home}/lib/security/java.policy文件中增加一条,

       permission java.util.PropertyPermission "oracle.xdkjava.compatibility.version", "read";

其中,${java.home}: 引用JRE所安装的目录位置(以下该变量均是此含义)。

 

问题2:

问题1解决后,新问题出现:

 

oracle.jbo.JboException:JBO-29000:unexcepted exception caught:java.security.AccessControlException,msg=access denied(java.lang.RuntimePermission accessClassInPackage.sun.security.provider)

              at oracle.jbo.common.ampool.PoolMgr.findPool(PoolMgr.java:510)

              at oracle.adf.model.bc4j.DataControlFactoryImpl.findOrCreateSessionCookie(DataControlFactoryImpl.java:136)

              at oracle.adf.model.bcrj.DataControlFactoryImpl.createSession(DataContorlFactoryImpl.java:221)

              at orcale.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:63)

              at oracle.adf.model.BindingContext.get(BindingContext.java:411)

              ...

              ...

              ...

              at java.awt.EventDispatchThred.run(Unknown Source)

##Detail 0##

java.security.AccessControlException:access denied(java.lang.RuntimePermission accessClassInPackage.sun.security.provider)

              at java.security.AccessControlContext.checkPermission(Unknown Source)

              at java.security.AccessController.checkPermission(Unknown Source)

              at java.lang.SecurityManager.checkPermission(Unknown Source)

              at java.lang.SecurityManager.checkPackageAccess(Unknown Source)

              ...

              ...

              ...

              at java.awt.EventDispathThread.run(Unknown Source)

 

解决方案:在${java.home}/lib/security/java.policy文件中增加一条,

       permission java.lang.RuntimePermission "accessClassInPackage.sun.*";

 

问题3:

问题2解决后,新问题出现:

JBO-30003:因出现下列异常,应用程序池(model.AppModuleLocal)检出应用程序模块时失败:

oracle.jbo.JboException:JBO-29000:JBO-29000:JBO-29000:access denied(java.net.SocketPermission 10.10.100.4:1521 connect,resolve)

              at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1772)

              ...

              ...

              ...

              at java.awt.EventDispatchThread.run(Unknown Source)

##Detail 0##

oracle.jbo.JboException:JBO-29000:JBO-29000:access denied(java.net.SocketPermission 10.10.100.4:1521 connect,resolve)

              at oracle.jbo.pool.ResourcePool.useResource(ResourcePool.java:337)

              ...

              ...

              ...

              at java.awt.EventDispatchThread.run(Unknown Source)

##Detail 0##

oracle.jbo.JboException:JBO-29000:access denied(java.net.SocketPermission 10.10.100.4:1521 connect,resolve)

              at oracle.jbo.pool.ResourcePool.createResource(ResourcePool.java:541)

              at oracle.jbo.pool.ResourcePool.useResource(ResourcePool.java:327)

              ...

              ...

              ...

              at java.awt.EventDispatchThread.run(Unknown Source)

##Detail 0##

java.security.AccessControlException:access denied(java.net.SocketPermission 10.10.100.4:1521 connect,resolve)

              at java.security.AccessControlContext.checkPermission(Unknown Source)

              ...

              ...

              ...

              at java.awt.EventDispatchThread.run(Unknown Source)

 

解决方案:在${java.home}/lib/security/java.policy文件中增加一条,

       permission java.net.SocketPermission "10.10.100.4:1521", "connect,resolve";

 

总结:

          ${java.home}/lib/security/java.policy文件中一共增加三条,

       permission java.util.PropertyPermission "oracle.xdkjava.compatibility.version", "read";

       permission java.lang.RuntimePermission "accessClassInPackage.sun.*";

       permission java.net.SocketPermission "10.10.100.4:1521", "connect,resolve";

 

推论:

        如果其他程序遇到了类似安全设置上的问题,其错误提示也是类似上面所罗列的错误。我们只要把提示安全错误的内容在${java.home}/lib/security/java.policy文件中作相应的设置即可。

 

其他解决方案:

        由于applet是在最终用户端运行的,我们不可能指望普通用户来设置这些安全策略(尽管这样做是比较好的)。我们还可以通过给受限操作所在的jar包进行签名,客户端下载时只要同意授予本次会话权限,那么applet就可以在本次会话中做所有受限操作。

 

参考:关于java security方面的更多的描述,请参见http://www.javaworld.com/javaworld/jw-12-2000/jw-1215-security.html



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=507461


[点击此处收藏本文]  发表于2005年08月13日 4:53 PM




正在读取评论……

发表评论

大名:
网址:
验证码
评论