当我尝试在我的代码如下查找:帮助中的Tomcat的5.5.x嵌入式JBoss的配置JNDI
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
return (DataSource) envCtx.lookup("jdbc/mydb");
我得到以下异常:
java.sql.SQLException: QueryResults: Unable to initialize naming context:
Name java:comp is not bound in this Context at
com.onsitemanager.database.ThreadLocalConnection.getConnection
(ThreadLocalConnection.java:130) at
...
我安装嵌入式的JBoss继JBoss wiki instructions。我使用configuration wiki page中指定的“默认扫描每个WAR”部署Tomcat。
引述配置页:
JNDI
嵌入式JBoss的组件如连接池,EJB,JPA和交易作出 广泛使用JNDI来发布服务。嵌入式JBoss通过将自身分层到Tomcat的JNDI实例之上来覆盖Tomcat的JNDI 实现。有几个>原因:
提供选项一些JBoss的 成分的能力
- 为了避免这些服务的每一项声明的server.xml
- 内要允许的Java seemeless集成:Web应用程序和 EJB之间比较命名空间。
- Tomcat的JNDI执行中有一些严重的安全漏洞妨碍工作
- 我们想为你远程处理EJB和其他服务的,可>远程抬头
任何人都有关于如何配置JBoss命名服务的想法,根据上面的引用覆盖Tomcat的JNDI实现,以便我可以在java:comp/env上查找?
仅供参考 - 我的环境Tomcat的5.5.9,煤层2.0.2sp,嵌入式JBoss的(测试版3),
注:我有我的数据库连接正确设置一个-ds.xml文件,访问对每个指令的类路径。
另请注意:我已经在嵌入式Jboss论坛和seam用户论坛发布了这个问题。
你找到一个解决方案overrided? 我也有这个问题。应用程序适用于本地tomcat,数据源按预期工作,但是当嵌入JBoss时,出现“Name java:comp未绑定到此上下文”错误。 – 2009-02-20 02:12:13