0

我从在 Jetty 中运行的 java servlet(作为 Eclipse 的一部分)连接到 oracle 时遇到问题。相同的代码在独立的 Java 应用程序中运行良好。

我的整个开发环境都在一个 mac 上。我正在使用 Eclipse 并将 ojdbc6.jar 包含在主“引用库”中,并且还将此文件拖放到 war/web-inf/lib 文件夹中。

只要线

OracleConnectionPoolDataSource ocpds = new OracleConnectionPoolDataSource();

被调用(在servlet中)我得到了异常:

java.security.AccessControlException:访问被拒绝(javax.management.MBeanServerPermission createMBeanServer)

我是否缺少一些安全策略?如果是这样,我究竟需要做什么来纠正这个问题?而这个 BeanServer 又是从哪里来的呢?

提前致谢。

4

2 回答 2

0

每个 Web 容器都有自己定义数据源的方式,并通过 JNDI 使它们可用。你应该这样做。

本机 oracle 连接池似乎正在创建一个 MBeanServer,这可能是 Jetty 使用的安全管理器不允许的。请参阅http://wiki.eclipse.org/Jetty/Feature/Secure_Modehttp://wiki.eclipse.org/Jetty/Tutorial/Jetty-Policy

于 2012-09-27T11:18:16.520 回答
0

解决了 - 不完全清楚为什么,但在 Eclipse 中创建了一个新的 GWT 应用程序,但这次不包括 Google App Engine(默认勾选)。当它在 Jetty 中运行时,这似乎给代码添加了一些限制......我现在已经复制了示例代码,一切都运行良好!

于 2012-09-27T13:03:09.320 回答