我试图在我在JBoss 7.1的GateIn 3.2.0中部署的portlet中获取数据源。
首先,我在standalone.xml中创建了数据源
jdbc:mysql://localhost:42006/contentrepository
com.mysql
node
100
true
我还添加了驱动程序和驱动程序模块。
在我的portlet中,我试图使用访问数据源
dataSource = (DataSource) new InitialContext().lookup("java:jboss/datasources/ccr");但我只得到一个javax.naming.NameNotFoundException:在上下文中找不到'jboss'。
我也试着去拿它
dataSource = (DataSource) new InitialContext().lookup("java:comp/env/datasources/ccr");并将其与web.xml和jboss-web.xml中的以下条目进行映射
web.xml中:
MySQL DS
datasources/ccr
javax.sql.DataSource
Container
的jboss-web.xml中:
datasources/ccr
javax.sql.DataSource
java:jboss/datasources/ccr
那么我得到了javax.naming.NameNotFoundException:在上下文''中找不到名称'comp'。
我错过了什么?是否有一些安全设置阻止我的应用程序获取数据源?
奇怪的是,我可以在使用servlet时在相同的web应用中获取数据源,但只能在doGet / doPost方法中获取数据源,而不能在init()中获取。