数据源的问题,急急 数据库连接池没有配置好返回的可能是个wrapper类,所以ds!=null 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问一下,我的tomcat默认文件路径是/jsp-examples现在我在jsp-examples下新建一目录为111,而我想在111下的某个文件里使用数据源请问配置时是在server.xml中设置为<context path="/jsp-examples"....就可以了还是设置为<context path="/jsp-examples/111... 数据库连接池没有配置好,ds找到没用,只是说明jndi是成功的。 不解,我是按照下面文章这样配置的,麻烦看看哪里不对首先,server.xml在tomcat的安装目录conf目录下,连结池数据源的驱动、URL、用户名、密码,以及此连结产生资源名的等参数都保存在这里。下面就是一个例子:<Context ...>...<Resource name="jdbc/Test" auth="Container" type="javax.sql.DataSource"/><ResourceParams name="jdbc/Test"><parameter><name>user</name><value></value></parameter><parameter><name>password</name><value></value></parameter><parameter><name>driverClassName</name><value>sun.jdbc.odbc.JdbcOdbcDriver</value></parameter><parameter><name>driverName</name><value>jdbc:odbc:test</value></parameter></ResourceParams>...</Context>这里有一点大家尤其要注意的是Context中有path和docBase参数,server.xml中默认有一个<Context path="/examples" docBase="examples" debug="0" reloadable="true">如果把上面的代码放在这个<Context>之间,那它就是用来设置exmaple中的一个数据连结池资源,其他发布目录包括ROOT目录是无法调用到的。所以测试用的JSP页面也应该放到$CATALINA_HOME/webapps/examples目录下。如果你要在其他目录下发布的话,就应该建立一个相应的<Context>,并设置相应的连结资源。言归正传,看了上面的代码,很容易理解,此数据库连结池的资源名为jdbc/Test。这个资源名在tomcat启动后根据server.xml中的参数立即生成,JSP和Servlet一般即直接调用了。不过按照J2EE的规范,应该在WEB-INF目录中的web.xml部署文件来实现此资源的调度(也可以将资源名重新映射成为你所需要的名字)。按照前面提到的,应该在examples\WEB-INF目录下的web.xml文件中加入如下代码:<resource-ref><description>Resource reference to a factory for java.sql.Connectioninstances that may be used for talking to a particulardatabase that is configured in the server.xml file.</description><res-ref-name>jdbc/Test</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>完毕后,就可以写测试用的JSP文件了(test.jsp):<%@ page import="javax.naming.Context" %><%@ page import="javax.sql.DataSource"%><%@ page import="javax.naming.InitialContext"%><%@ page import="java.sql.*"%><%DataSource ds = null;try{Context initCtx = new InitialContext();Context envCtx = (Context) initCtx.lookup("java:comp/env");ds = (DataSource)envCtx.lookup("jdbc/Test");if(ds!=null)out.println("Connection is OK!");else out.println("Fail!");}catch(Exception ne){ out.println(ne);}%>把它放到examples目录下即可。然后启动tomcat,输入http://localhost:8080/examples/test.jsp。 不解,我是按照下面文章这样配置的,麻烦看看哪里不对首先,server.xml在tomcat的安装目录conf目录下,连结池数据源的驱动、URL、用户名、密码,以及此连结产生资源名的等参数都保存在这里。下面就是一个例子:<Context ...>...<Resource name="jdbc/Test" auth="Container" type="javax.sql.DataSource"/><ResourceParams name="jdbc/Test"><parameter><name>user</name><value></value></parameter><parameter><name>password</name><value></value></parameter><parameter><name>driverClassName</name><value>sun.jdbc.odbc.JdbcOdbcDriver</value></parameter><parameter><name>driverName</name><value>jdbc:odbc:test</value></parameter></ResourceParams>...</Context>这里有一点大家尤其要注意的是Context中有path和docBase参数,server.xml中默认有一个<Context path="/examples" docBase="examples" debug="0" reloadable="true">如果把上面的代码放在这个<Context>之间,那它就是用来设置exmaple中的一个数据连结池资源,其他发布目录包括ROOT目录是无法调用到的。所以测试用的JSP页面也应该放到$CATALINA_HOME/webapps/examples目录下。如果你要在其他目录下发布的话,就应该建立一个相应的<Context>,并设置相应的连结资源。言归正传,看了上面的代码,很容易理解,此数据库连结池的资源名为jdbc/Test。这个资源名在tomcat启动后根据server.xml中的参数立即生成,JSP和Servlet一般即直接调用了。不过按照J2EE的规范,应该在WEB-INF目录中的web.xml部署文件来实现此资源的调度(也可以将资源名重新映射成为你所需要的名字)。按照前面提到的,应该在examples\WEB-INF目录下的web.xml文件中加入如下代码:<resource-ref><description>Resource reference to a factory for java.sql.Connectioninstances that may be used for talking to a particulardatabase that is configured in the server.xml file.</description><res-ref-name>jdbc/Test</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>完毕后,就可以写测试用的JSP文件了(test.jsp):<%@ page import="javax.naming.Context" %><%@ page import="javax.sql.DataSource"%><%@ page import="javax.naming.InitialContext"%><%@ page import="java.sql.*"%><%DataSource ds = null;try{Context initCtx = new InitialContext();Context envCtx = (Context) initCtx.lookup("java:comp/env");ds = (DataSource)envCtx.lookup("jdbc/Test");if(ds!=null)out.println("Connection is OK!");else out.println("Fail!");}catch(Exception ne){ out.println(ne);}%>把它放到examples目录下即可。然后启动tomcat,输入http://localhost:8080/examples/test.jsp。 智跪求大家:利用智能手机浏览器可以显示带有svg格式的网页吗? Sarafi extension 证书问题 有macbook下面那种网页效果的代码吗? 页面跳转导致cpu100% 为什么不弹出登陆框?? 急~~~~~用JDOM怎么读注释的内容 怎样大String转换到int类型啊! 怎么样取当天的记录 赚分快来! 请推荐JSP论坛代码 我想实现这样一个功能! 怎样在局域网建立JSP内部站点啊?
现在我在jsp-examples下新建一目录为111,而我想在111下的某个文件里使用数据源
请问配置时是在server.xml中设置为<context path="/jsp-examples"....就可以了
还是设置为<context path="/jsp-examples/111...
首先,server.xml在tomcat的安装目录conf目录下,连结池数据源的驱动、URL、用户名、密码,以及此连结产生资源名的等参数都保存在这里。下面就是一个例子:
<Context ...>
...
<Resource name="jdbc/Test" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Test">
<parameter>
<name>user</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>sun.jdbc.odbc.JdbcOdbcDriver</value>
</parameter>
<parameter>
<name>driverName</name>
<value>jdbc:odbc:test</value>
</parameter>
</ResourceParams>
...
</Context>
这里有一点大家尤其要注意的是Context中有path和docBase参数,server.xml中默认有一个<Context path="/examples" docBase="examples" debug="0" reloadable="true">如果把上面的代码放在这个<Context>之间,那它就是用来设置exmaple中的一个数据连结池资源,其他发布目录包括ROOT目录是无法调用到的。所以测试用的JSP页面也应该放到$CATALINA_HOME/webapps/examples目录下。如果你要在其他目录下发布的话,就应该建立一个相应的<Context>,并设置相应的连结资源。言归正传,看了上面的代码,很容易理解,此数据库连结池的资源名为jdbc/Test。这个资源名在tomcat启动后根据server.xml中的参数立即生成,JSP和Servlet一般即直接调用了。不过按照J2EE的规范,应该在WEB-INF目录中的web.xml部署文件来实现此资源的调度(也可以将资源名重新映射成为你所需要的名字)。按照前面提到的,应该在examples\WEB-INF目录下的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/Test
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
完毕后,就可以写测试用的JSP文件了(test.jsp):
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/Test");if(ds!=null)out.println("Connection is OK!");else
out.println("Fail!");
}catch(Exception ne){ out.println(ne);}
%>
把它放到examples目录下即可。然后启动tomcat,输入http://localhost:8080/examples/test.jsp。
首先,server.xml在tomcat的安装目录conf目录下,连结池数据源的驱动、URL、用户名、密码,以及此连结产生资源名的等参数都保存在这里。下面就是一个例子:
<Context ...>
...
<Resource name="jdbc/Test" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Test">
<parameter>
<name>user</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>sun.jdbc.odbc.JdbcOdbcDriver</value>
</parameter>
<parameter>
<name>driverName</name>
<value>jdbc:odbc:test</value>
</parameter>
</ResourceParams>
...
</Context>
这里有一点大家尤其要注意的是Context中有path和docBase参数,server.xml中默认有一个<Context path="/examples" docBase="examples" debug="0" reloadable="true">如果把上面的代码放在这个<Context>之间,那它就是用来设置exmaple中的一个数据连结池资源,其他发布目录包括ROOT目录是无法调用到的。所以测试用的JSP页面也应该放到$CATALINA_HOME/webapps/examples目录下。如果你要在其他目录下发布的话,就应该建立一个相应的<Context>,并设置相应的连结资源。言归正传,看了上面的代码,很容易理解,此数据库连结池的资源名为jdbc/Test。这个资源名在tomcat启动后根据server.xml中的参数立即生成,JSP和Servlet一般即直接调用了。不过按照J2EE的规范,应该在WEB-INF目录中的web.xml部署文件来实现此资源的调度(也可以将资源名重新映射成为你所需要的名字)。按照前面提到的,应该在examples\WEB-INF目录下的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/Test
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
完毕后,就可以写测试用的JSP文件了(test.jsp):
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/Test");if(ds!=null)out.println("Connection is OK!");else
out.println("Fail!");
}catch(Exception ne){ out.println(ne);}
%>
把它放到examples目录下即可。然后启动tomcat,输入http://localhost:8080/examples/test.jsp。