帮忙解决数据库的连接池小问题,最终的目的是获取数据库的连接
写了一个获得数据库连接的类: import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class GetConn { public Connection getConn() throws ClassNotFoundException, SQLException, NamingException{ //创建一个没有实例化的数据库的连接对象 Connection conn=null; // 初始化上下文 Context cxt=new InitialContext(); //获取与逻辑名相关联的数据源对象 DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/news"); //通过数据源拿到数据库的连接 conn=ds.getConnection(); //返回连接 return conn; } } *********************************************************************** Tomcat中配置的信息如下 <!-- The contents of this file will be loaded for each web application --> <Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <Resource name="jdbc/news" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost:3306/abcd"/> </Context> *************************************************************** 写了一个jsp页面,想要得到数据库的连接 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="GetConn"%> <%@page import="java.sql.Connection"%> <% GetConn conn =new GetConn(); Connection conn= conn.getConn(); %> 得到了数据库的连接: <%=conn%> ********************************************* 浏览器报错 帮忙解决一下是什么原因造成的.....
***************************
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 5 in the jsp file: /index.jsp GetConn cannot be resolved to a type 2: <%@page import="GetConn"%> 3: <%@page import="java.sql.Connection"%> 4: <% 5: GetConn conn =new GetConn(); 6: Connection conn= conn.getConn(); 7: %> 8: 寰楀埌浜嗘暟鎹簱鐨勮繛鎺� An error occurred at line: 5 in the jsp file: /index.jsp GetConn cannot be resolved to a type 2: <%@page import="GetConn"%> 3: <%@page import="java.sql.Connection"%> 4: <% 5: GetConn conn =new GetConn(); 6: Connection conn= conn.getConn(); 7: %> 8: 寰楀埌浜嗘暟鎹簱鐨勮繛鎺� An error occurred at line: 6 in the jsp file: /index.jsp Duplicate local variable conn 3: <%@page import="java.sql.Connection"%> 4: <% 5: GetConn conn =new GetConn(); 6: Connection conn= conn.getConn(); 7: %> 8: 寰楀埌浜嗘暟鎹簱鐨勮繛鎺� 9: <%=conn%> Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415) org.apache.jasper.compiler.Compiler.compile(Compiler.java:308) org.apache.jasper.compiler.Compiler.compile(Compiler.java:286) org.apache.jasper.compiler.Compiler.compile(Compiler.java:273) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
Apache Tomcat/6.0.10
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
是我搞错了,配置web.xml文件也可以用
<!-- JNDI -->
<resource-ref>
<description>MySQL DB Connection Pool</description>
<res-ref-name>jdbc/news</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
问题出在数据源的命名这里,命名不规范,容易被解释成包含目录
非常的感谢了,但是我刚开始运行的时候也会出现上次的错误,但是在getConn的类中加了一个包,就得到了最后的连接,不知道和用不用放在这个包中有没有影响。。。
我加了try-cache代码,可是最后的结果还是一样的....不知道是怎么回事.....
回复
GetConn cannot be resolved to a type,这个也要确认一下,发一下你的目录结构?另外建议不要用默认包定义类
谢谢帮助,我就是加了个包,但是现在才看到你的解答,跟我的想法可是不谋而合啊....
能具体点吗?不知道您说的是哪些...
回复
错误信息看不完整呀。
数据源应该要设置单例模式吧,然后让数据连接来获得连接。你定义一个局部变量,这样子的话,每次都是获得一个新的连接池。
提问要具点,到底是什么错?