我是在MyEclipse中有tomcat中发布的项目:项目自动放在了tomcat的webpapps目录下:
我用的是tomcat5。5,以下是:tomcat,server.xml配置部分:
<Context path="/shop" docBase="D:\Program Files\Tomcat 5.5\webapps"
debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
<Resource name="jdbc/shop" auth="Container"
type="javax.sql.DataSource" password="javajsp"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/shop?autoReconnect=true"
maxActive="4"/>
</Context>
下面的是项目:web.xml中配置的部分:
<resource-ref>
<description>
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.
</description>
<res-ref-name>
jdbc/shop
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
下面的是得到connection的方法:
public static Connection getConnectionEx()
{
Connection con = null;
try
{
DataSource ds = null;
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/shop");
if (ds != null)
{
con = ds.getConnection();
}
}
catch(Exception e)
{
e.printStackTrace();
}
return con;
}
我用的是tomcat5。5,以下是:tomcat,server.xml配置部分:
<Context path="/shop" docBase="D:\Program Files\Tomcat 5.5\webapps"
debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
<Resource name="jdbc/shop" auth="Container"
type="javax.sql.DataSource" password="javajsp"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/shop?autoReconnect=true"
maxActive="4"/>
</Context>
下面的是项目:web.xml中配置的部分:
<resource-ref>
<description>
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.
</description>
<res-ref-name>
jdbc/shop
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
下面的是得到connection的方法:
public static Connection getConnectionEx()
{
Connection con = null;
try
{
DataSource ds = null;
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/shop");
if (ds != null)
{
con = ds.getConnection();
}
}
catch(Exception e)
{
e.printStackTrace();
}
return con;
}
解决方案 »
- 一个form表单2个submit问题
- 求助一个 JSP查询并显示的问题。来帮忙看看吧 谢谢
- hibernate3 注解中一对多双向的问题
- 配置解压版tomcat
- 关于googleapi.jar的一个错误,如何解决?
- 我的tomcat里,jsp的el怎么用不了?
- 自己编写的JAVA类该放在那个文件下,可以用PAGE指令导入,还是先将他编译成CLASS文件放入CLASSPATH指定的目录下?????????
- 关于连接池问题
- 高手进来看看 这是什么原因造成的!!!
- tomcat4.1下用jndi连接sql server2000出现问题!!!在线等待问题解决立即给分!!多谢!
- 在jsp中.如何获得登陆参数j_username和j_password,如何使其退出登陆???
- 请问列表中带输入框的问题
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at org.cy.dbResource.DBPool.getConnectionEx(DBPool.java:34)
at org.cy.dbResource.DBPool.main(DBPool.java:101)
Context envCtx = (Context)initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/shop"); 这两句有问题吧
我估计是lookup comp/env的时候没找到
因为他报这个么Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
给你个王爷,自己看看试试
http://mqzsweet.javaeye.com/blog/144738
ls你从哪里看出这是5.5以前的?
再说了 5.x都是一样的吧
报的是(NoInitialContextException)没初始化上下文!
可能是环境变量配置出错
DataSource ds = context.lookup("java:comp/env/jdbc/shop");
//试试
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at org.cy.dbResource.DBPool.getConnectionEx(DBPool.java:38)
at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:72)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
... 23 more
InitialContext得不到它初始化所需要的参数。
<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"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource name="syjTest" type="javax.sql.DataSource"/>
<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>
<ResourceParams name="syjTest">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value>11111111</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;databaseName=pubs</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<name>validationQuery</name>
<value>select getdate()</value>
</ResourceParams>
</GlobalNamingResources>
test.xml(用你的应用名字替换test)
<?xml version='1.0' encoding='utf-8'?>
<Context displayName="test" docBase="test" path="/test" workDir="work\Catalina\localhost\cqry">
<ResourceLink global="syjTest" name="syjTest" type="javax.sql.DataSource"/>
</Context>
<%
javax.naming.InitialContext ctx = null;
javax.sql.DataSource ds = null;
ctx = new javax.naming.InitialContext();
ds = (javax.sql.DataSource) ctx.lookup("java:comp/env/syjTest");
%>
http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html
还有就是怎么没看到你的数据库密码啊...