DataSource ds = null;
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/bn");
if(ds!=null)
{
out.println("已经获得DataSource!");
}
试试这个
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/bn");
if(ds!=null)
{
out.println("已经获得DataSource!");
}
试试这个
解决方案 »
- HttpClient报NullPointerException
- Spring2.5的MVC架构
- webwork校验器
- 关于struts+hibernate+spring项目的团队合作的问题?
- 请问log4j:WARN Error during default initialization是什么原因啊,bae java
- jsp与数据库存储声音的问题
- 高分求救一个很菜的问题
- 在struts开发中,JSP页面不需要接收Form值的时候也需要写ActionForm吗?
- jboss3.2.2
- 讨论几个EJB的问题
- 关于 Hibernate的一个小例子 急求解决
- 基于struts+hibernate的通用分页程序设计思路?
<description>DB Connection</description>
<res-ref-name>jdbc/userdb</res-ref-name>
<res-type>javax.mysql.DataSource</res-type>
<res-auth>Container</res-auth>
你还应该在server.xml的 <GlobalNamingResources></GlobalNamingResources>中添加
<description>DB Connection</description>
<res-ref-name>jdbc/userdb</res-ref-name>
<res-type>javax.mysql.DataSource</res-type>
<res-auth>Container</res-auth>我试了一下,还是原来的错误,就放在那俩个中间吗?
因为他里面还有别的
<GlobalNamingResources> <!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/> <!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
<description>DB Connection</description>
<res-ref-name>jdbc/userdb</res-ref-name>
<res-type>javax.mysql.DataSource</res-type>
<res-auth>Container</res-auth> </GlobalNamingResources>
这样放可以吗?
<res-ref-name>jdbc/userdb</res-ref-name>
<res-type>javax.mysql.DataSource</res-type>
<res-auth>Container</res-auth>
就放在web.xml中啊,
还需要什么配置吗?该有的都有了,还差什么呢?
DataSource ds = null;
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
我在这边就走不下去了,你给我看的哪个,他这边没有问题
ds = (DataSource)envCtx.lookup("jdbc/bn");
他这边有问题,没有执行,现在我上面哪个就不行,我很郁闷
if(ds!=null)
{
out.println("已经获得DataSource!");
}
试试这个
5.028版本是这样,至少我的是对的:
<!-- Global JNDI resources -->
<GlobalNamingResources>
...
<Resource name="jdbc/db2" type="javax.sql.DataSource" />
<ResourceParams name="jdbc/db2">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>password</name>
<value>密码</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:db2://localhost:6789/KINGSHEN</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>COM.ibm.db2.jdbc.net.DB2Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>username</name>
<value>登陆名</value>
</parameter>
</ResourceParams>
.....
</GlobalNamingResources>
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"> <Context path ="" docBase="C:/webserver/WebRoot" debug="0" reloadable="true" crossContext="true">
<ResourceLink name="jdbc/db2" global="jdbc/db2" type="javax.sql.DataSource"/>
</Context>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/> </Host>
并且在web下面根本不用配置,这样已经能够正常运行了!
用jdbc是可以的,用jndi就绑定不了了