Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) ctx.lookup("jdbc/example");
改成:
Context initCtx = new InitialContext();
ds = (DataSource)initCtx.lookup("jdbc:comp/env/jdbc/example");
Context ctx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) ctx.lookup("jdbc/example");
改成:
Context initCtx = new InitialContext();
ds = (DataSource)initCtx.lookup("jdbc:comp/env/jdbc/example");
解决方案 »
- http和mms都能访问。有什么区别?
- 关于Socket问题 ,双方能建立握手协议,为什么客户端输出的信息服务端获取不到呢?服务端发送的信息客户端也收不到?请教各位了
- 谁有时间呀,想请人帮忙调个小程序,有报酬!
- 初学structs 问几个问题
- 地址栏中如何加"&""="等符号?
- 装了j2sdk1.4.2,要配置环境变量吗?!
- flex中的变量值问题,求解决
- HTTP Status 404 web.xml问题
- 高分求救!!!急!!!!
- resin 能不能建立多个虚拟目录?怎么建?
- 发现一个jsp漏洞.有兴趣的来顶一下
- jbuilder X+sql2000+tomcat4.0中struts-config.xml数据源问题
那你的数据库驱动包有没有放在
tomcat/common/lib里面?使用数据源,必须把许动放在这里
我按你说的改了但是又出现问题:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.lang.NullPointerException
com.DBConn.query(DBConn.java:57)
org.apache.jsp.test_jsp._jspService(test_jsp.java:75)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.
--------------------------------------------------------------------------------另外我的JDBC的三个驱动文件放在TOMCAT/COMMON/LIB下面了,调试不成功后,我又在wanchu/web-inf/lib下面放了一份,还是不行,期待大家的帮助
得到了空指针异常,有可能得到空连接!
com.DBConn.query(DBConn.java:57):这一方法中判断一下getConnection()是不是为空..
package com;
import java.sql.*;
import java.io.*;
//import java.util.*;
public class myconn {
private String containerCharSet = "ISO-8859-1";
Connection conn=null;
ResultSet rs=null;
Statement stmt=null;
String connDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
String user="test";
String password="test";
public myconn(){
try{
Class.forName(connDriver).newInstance();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
public void open(){
try{
conn= DriverManager.getConnection(url,user,password);
}
catch(SQLException e){
e.printStackTrace();
}
}
public ResultSet getResultSet(String sql){
rs=null;
open();
try{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.out.println("sql.executeQuery:"+ex.getMessage());
}
return rs;
}
public void close(){
try{
if(conn!=null){
conn.close();
}
if(stmt!=null){
stmt.close();
}
if(rs!=null){
rs.close();
}
rs=null;
stmt=null;
conn=null;
}
catch(SQLException ex){
System.out.println("sql.executeQuery:"+ex.getMessage());
}
}
}TO:回复人: wafeng(彭克) ( ) 信誉:100 2005-04-24 11:01:00 得分: 0
连接池在web.xml里配呀,你怎么在这里了.<<jsp web编程指南>>里讲过.
我是按照《JSP应用开发详解第二版》,而且很多此论坛的人都是按这种方式啊
不要放在了webapps之外。
而且要放在下面的标签内
<Host name="localhost" debug="0" appBase="webapps">
</Host>
建议你改成如下形式,再试试.
=========================================================================
<Context path="/MyWebApp" docBase="MyWebApp" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="super" driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>
</Context>
应该就可以了.
按刚才上面几位说的改了改发现还是不行啊
这个问题捆扰我好久了,头都大了,求求高手帮我解决一下!!!
2.把<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/example</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
加入conf/web.xml中试试
同意 jFresH_MaN(TM)我已经按照他说的做了,不行啊
TO nimifeng(现在只想学点东西)
我试了你上面提出的方案,还是同样的错误啊
你可以把你做的成功的连接池发一份给我吗,谢谢了
javax.naming.NoInitialContextException: Need to specify class name in environmen
t or system property, or as an applet parameter, or in an application resource f
ile: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
40)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243
)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.jav
a:280)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at DBCommon.DB.getCachedConnection(DB.java:58)
at DBCommon.DB.main(DB.java:127)
java.lang.NullPointerException
at DBCommon.DB.main(DB.java:128)
Press any key to continue...
但是还是想问一个问题,就是用JDBC的时候可以完成ResultSet在bean与jsp之间传递的封装,为什么在连接池就不可以了呢???
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:428)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:140)
at org.apache.jasper.compiler.Validator$PageDirectiveVisitor.visit(Validator.java:141)
at org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:280)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:1028)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:1070)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:1076)
at org.apache.jasper.compiler.Node$Root.accept(Node.java:232)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:1028)
at org.apache.jasper.compiler.Validator.validate(Validator.java:581)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:230)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:369)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
at java.lang.Thread.run(Thread.java:534)--------------------------------------------------------------------------------Apache Tomcat/4.1.29-LE-jdk14