1:先改一改你的代码:
try {
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup ("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/engtrade"); conn = ds.getConnection();
System.out.println("connection database success!");
}catch(Exception e) {
e.printStackTrace();
}
这段代码只是多加了两句。其中("java:/comp/env");是必须加上的。
在tomcat中,jndi的资源默认是在comp/env这个名字空间下的。
2:你的tomcat的server.xml文件也不正确。应这样改动。
找到</Context></Host>之间的地方(千万不要改动<Connector>之间的部分)加上:
<Context className="org.apache.catalina.core.StandardContext" crossContext="true" reloadable="true" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" privileged="false" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="/E:/Test.war(你的.jar文件路径,Test是我的程序,你可以自行改动)" cookies="true" path="/(你的application的Context路径)" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
<Logger (指定日志文件)className="org.apache.catalina.logger.FileLogger" debug="5" verbosity="0" prefix="localhost_Test_log." directory="\work\Standalone\localhost\test(你的application工作路径,只须将test改为你的application名)" timestamp="true" suffix=".txt"/>
<Resource name="jdbc/engtrade" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/engtrade">
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://weiwei:1433;DatabaseName=Test</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select * from ad(必须是一条select语句,什么都可以)</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver(随数据库不同而改变)</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>user(DB用户名)</name>
<value>sa</value>
</parameter>
<parameter>
<name>username(DB用户名)</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>你的数据库密码</value>
</parameter>
</ResourceParams>
</Context>
强烈建议改动前备份server.xml文件。否则可能会造成服务器不能启动!
我的e-mail是 [email protected]欢迎与我联系!
try {
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup ("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/engtrade"); conn = ds.getConnection();
System.out.println("connection database success!");
}catch(Exception e) {
e.printStackTrace();
}
这段代码只是多加了两句。其中("java:/comp/env");是必须加上的。
在tomcat中,jndi的资源默认是在comp/env这个名字空间下的。
2:你的tomcat的server.xml文件也不正确。应这样改动。
找到</Context></Host>之间的地方(千万不要改动<Connector>之间的部分)加上:
<Context className="org.apache.catalina.core.StandardContext" crossContext="true" reloadable="true" mapperClass="org.apache.catalina.core.StandardContextMapper" useNaming="true" debug="0" privileged="false" wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="/E:/Test.war(你的.jar文件路径,Test是我的程序,你可以自行改动)" cookies="true" path="/(你的application的Context路径)" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper">
<Logger (指定日志文件)className="org.apache.catalina.logger.FileLogger" debug="5" verbosity="0" prefix="localhost_Test_log." directory="\work\Standalone\localhost\test(你的application工作路径,只须将test改为你的application名)" timestamp="true" suffix=".txt"/>
<Resource name="jdbc/engtrade" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/engtrade">
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://weiwei:1433;DatabaseName=Test</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select * from ad(必须是一条select语句,什么都可以)</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver(随数据库不同而改变)</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>user(DB用户名)</name>
<value>sa</value>
</parameter>
<parameter>
<name>username(DB用户名)</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>你的数据库密码</value>
</parameter>
</ResourceParams>
</Context>
强烈建议改动前备份server.xml文件。否则可能会造成服务器不能启动!
我的e-mail是 [email protected]欢迎与我联系!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货