Joe*_*ean 5 java jboss seam jndi embedded-jboss
当我在我的代码中尝试以下查找时:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
return (DataSource) envCtx.lookup("jdbc/mydb");
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
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
...
Run Code Online (Sandbox Code Playgroud)
我按照JBoss wiki说明安装了嵌入式JBoss .我使用配置维基页面中指定的"默认扫描每个WAR"部署配置Tomcat .
引用配置页面:
JNDI
嵌入式JBoss组件(如连接池,EJB,JPA和事务)广泛使用JNDI来发布服务.嵌入式JBoss通过在Tomcat的JNDI实例化之上分层来覆盖Tomcat的JNDI实现.有几个原因:
- 避免必须在server.xml中声明这些服务中的每一个
- 允许在web应用程序和EJB之间无缝集成java:comp命名空间.
- Tomcat的JNDI实现中存在一些严重错误,阻碍了一些JBoss组件的工作能力
- 我们希望为您提供远程查找远程查找EJB和其他服务的选项
任何人都有任何关于如何配置JBoss命名服务的想法,根据上面的报价覆盖Tomcat的JNDI实现,以便我可以在java:comp/env上查找?
仅供参考 - 我的环境Tomcat 5.5.9,Seam 2.0.2sp,嵌入式JBoss(Beta 3),
注意:我的数据库连接正确设置了-ds.xml文件,并且可以按照说明在类路径上访问.
另请注意:我已在嵌入式Jboss论坛和缝用户论坛中发布此问题.
感谢您的响应工具包...是的,我可以通过直接访问 java:jdbc/mydb 来访问我的数据源,但我正在使用通过 ENC 连接的现有代码库。这是我发现的一些有趣的信息......
上面的代码适用于JBoss 4.2.2.GA,这里是正在使用的 JNDI ctx 参数:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming :org.jnp.interfaces: org.jboss.naming:org.jnp.interfaces
上面的代码适用于Tomcat 5.5.x,下面是使用的 JNDI ctx 参数:
java.naming.factory.initial=org.apache.naming.java.javaURLContextFactory java.naming.factory.url.pkgs=org.apache.naming
上述代码在 Tomcat 5.5.x 中的嵌入式 JBoss(Beta 3)中失败,并显示上述错误消息。
java.naming.factory.initial=org.apache.naming.java.javaURLContextFactory java.naming.factory.url.pkgs=org.apache.naming在 tomcat 5.5.x 中使用 JBoss Embedded 时,上述代码失败并出现上述错误
有人知道我需要如何配置嵌入式 JBoss JNDI 配置吗?
| 归档时间: |
|
| 查看次数: |
5937 次 |
| 最近记录: |