2015-11-03 120 views
0

当我尝试ping从Glassfish的3管理控制台的Oracle 11g我得到以下异常:不能与Glassfish的JDBC连接池连接到Oracle,的AccessControlException被抛出

Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "javax.net.ssl.keyStorePassword" "read") 
     at com.sun.enterprise.security.ssl.SSLUtils.checkPermission(SSLUtils.java:336) 
     at com.sun.enterprise.security.J2EESecurityManager.checkProperty(J2EESecurityManager.java:146) 
     at com.sun.enterprise.security.J2EESecurityManager.checkPropertyAccess(J2EESecurityManager.java:131) 
     at java.lang.System.getProperty(System.java:744) 
     at oracle.jdbc.driver.PhysicalConnection$1.run(PhysicalConnection.java:3117) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at oracle.jdbc.driver.PhysicalConnection.getSystemProperty(PhysicalConnection.java:3113) 
     at oracle.jdbc.driver.PhysicalConnection.readConnectionProperties(PhysicalConnection.java:1300) 
     at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:517) 
     at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:228) 
     at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
     at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) 
     at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280) 
     at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:207) 
     at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:157) 
     at com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java:115) 
     at com.sun.enterprise.resource.allocator.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:87) 
     at com.sun.enterprise.resource.pool.ConnectionPool.createSingleResource(ConnectionPool.java:907) 
     ... 61 more 

独立的应用程序使用相同的JDBC驱动程序工作得很好。我在本地Ubuntu 12.04盒子上运行Glassfish 3.1.2,并将Oracle 11g XE部署为Docker镜像。我停止了AppArmor,没有防火墙处于活动状态,也不知道它与SSL有什么关系。我也尝试向Glassfish server.policy和JDK java.policy文件添加javax.net.ssl.keyStorePassword权限,但没有解决问题。

相同的Glassfish实例有一个MySQL池,并没有这样的错误。可能需要在Oracle服务器上配置一些东西才能使其工作?

+0

https://docs.oracle.com/cd/E21764_01/web.1111/e13753/usedriver.htm#JDBCD115 –

回答

0

通过将Oracle JDBC驱动程序jar文件放置到../glassfish/lib而不是../domain1/lib解决了此错误。