- 浏览: 111994 次
- 性别:
- 来自: 湖南
-
文章分类
最新评论
-
liuyiisme:
[i][/i][b][/b][u][/u]
[url][ ...
JFileChooser -
xyc717:
你前面那黄色字颜色能在恶心点么……
this.form.el is undefined FormPanel或Panel加载数据 -
里克尔奇:
您好,谢谢你的文章,我测试了一下,但是视频没有充满播放器啊!急 ...
视频点播系统 -
就一剑1:
<s:intercept-url pattern=&qu ...
springside3.3.1 spring security -
yu11223344:
能把权限控制的xml的形式改成查数据库吗?
springside3.3.1 spring security
1.在Tomcat中添加JNDI数据源
建议用Tomcat的Adiminstration添加。在默认情况下,Tomcat没有安装administration组件,详细安装步骤请参考《Install the component Admin for tomcat》。
登陆http://localhost:8080/admin, 进入Resources -> Data Sources -> Create New Data Source
设置JNDI参数:(这里以MySql为例)
JNDI Name:jdbc/mysql(JNDI 名随便起)
Data Source URL:jdbc:mysql://localhost:3306/test(这里test是数据库名,当然后面还可以带其他参数,如:jdbc: mysql://localhost:3306/test?user=root&password=&useUnicode=true& characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false)
JDBC Driver Class:com.mysql.jdbc.Driver (要把相应的驱动jar包放到$TOMCAT_HOME$/common/lib)
User Name:root (用户名)
Password:***** (密码)
Max. Active Connections:4
Max. Idle Connections:2
Max. Wait for Connection:5000
2.在Web项目中配置resouce-ref
在项目的web.xml的根节点下添加以下内容:
注意:这里res-ref-name必须与在tomcat中设置的JNDI Name:jdbc/mysql(JNDI 名随便起)一致。
3.设置$TOMCAT_HOME$/conf/server.xml
因为TOMCAT不会自动将Data Source Resource信息加到Context中,所以经常会忽略这一步
当前server.xml的内容为:
如果不更改该server.xml文件,使用jdbc/mysql时抛exception Cannot create JDBC driver of class '' for connect URL 'null'。
留意代码最后的resource
发现在<Resource />标签中没包含属性driverClassName和url,这是抛Exception Cannot create JDBC driver of class '' for connect URL 'null'的原因。
我们只需要将<GlobalNamingResources></GlobalNamingResources>中相应的Resource
替换掉Context下的resource即可。
更改后的server.xml文件内容为:
4.在java代码中使用JNDI资源获得DataSource
该代码在JDK1.5下测试通过
在一些资料中提到,在JDK1.5以前的版本可以通过
DataSource ds = (DataSource) ctx.lookup("jdbc/mysql");
获得DataSource。
我没测试过该代码。
上述代码在J2EE服务器环境下工作得很好,但是在main()中就会报一个NoInitialContextException。
之所以有NoInitialContextException是因为无法从System.properties中获得必要的JNDI参数,在服务器环境下,服务器启动时就把这些参数放到System.properties中。
所以可以通过以下方法解决:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL,"t3://localhost:7001");
InitialContext ctx = new InitialContext(env);
或
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
System.setProperty(Context.PROVIDER_URL, "rmi://localhost:3306/test");
System.setProperty(Context.SECURITY_PRINCIPAL, "root");
System.setProperty(Context.SECURITY_CREDENTIALS, "123456");
以上代码建议改为在配置文件中配置
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=rmi://localhost:3306/test
java.naming.security.principal=user
java.naming.security.credentials=password
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1851149
建议用Tomcat的Adiminstration添加。在默认情况下,Tomcat没有安装administration组件,详细安装步骤请参考《Install the component Admin for tomcat》。
登陆http://localhost:8080/admin, 进入Resources -> Data Sources -> Create New Data Source
设置JNDI参数:(这里以MySql为例)
JNDI Name:jdbc/mysql(JNDI 名随便起)
Data Source URL:jdbc:mysql://localhost:3306/test(这里test是数据库名,当然后面还可以带其他参数,如:jdbc: mysql://localhost:3306/test?user=root&password=&useUnicode=true& characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false)
JDBC Driver Class:com.mysql.jdbc.Driver (要把相应的驱动jar包放到$TOMCAT_HOME$/common/lib)
User Name:root (用户名)
Password:***** (密码)
Max. Active Connections:4
Max. Idle Connections:2
Max. Wait for Connection:5000
2.在Web项目中配置resouce-ref
在项目的web.xml的根节点下添加以下内容:
<resource-ref> <res-ref-name>jdbc/mysql</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
注意:这里res-ref-name必须与在tomcat中设置的JNDI Name:jdbc/mysql(JNDI 名随便起)一致。
3.设置$TOMCAT_HOME$/conf/server.xml
因为TOMCAT不会自动将Data Source Resource信息加到Context中,所以经常会忽略这一步
当前server.xml的内容为:
<?xml version="1.0" encoding="UTF-8"?> <Server> <Listener className="org.apache.catalina.core.AprLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> <GlobalNamingResources> <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase" pathname="conf/tomcat-users.xml" factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/> <Resource name="jdbc/mysql" type="javax.sql.DataSource" password="123456" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost:3306/test" maxActive="4"/> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" redirectPort="8443" minSpareThreads="25" connectionTimeout="60000" connectionLinger="-1" serverSoTimeout="0" maxSpareThreads="75" maxThreads="150" tcpNoDelay="true" maxHttpHeaderSize="8192"> </Connector> <Connector port="8009" redirectPort="8443" protocol="AJP/1.3"> </Connector> <Engine defaultHost="localhost" name="Catalina"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> <Host appBase="webapps" name="localhost"> <Context docBase="/test" path="/test" reloadable="true" debug="5" crossContext="true"> <Resource name="jdbc/mysql" type="javax.sql.DataSource" password="123456" maxIdle="2" maxWait="5000" username="root" maxActive="4" /> </Context> </Host> </Engine> </Service> </Server>
如果不更改该server.xml文件,使用jdbc/mysql时抛exception Cannot create JDBC driver of class '' for connect URL 'null'。
留意代码最后的resource
<Context docBase="/test" path="/test" reloadable="true" debug="5" crossContext="true"> <Resource name="jdbc/mysql" type="javax.sql.DataSource" password="123456" maxIdle="2" maxWait="5000" username="root" maxActive="4" /> </Context>
发现在<Resource />标签中没包含属性driverClassName和url,这是抛Exception Cannot create JDBC driver of class '' for connect URL 'null'的原因。
我们只需要将<GlobalNamingResources></GlobalNamingResources>中相应的Resource
<Resource name="jdbc/mysql" type="javax.sql.DataSource" password="123456" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost:3306/test" maxActive="4"/>
替换掉Context下的resource即可。
更改后的server.xml文件内容为:
<?xml version="1.0" encoding="UTF-8"?> <Server> <Listener className="org.apache.catalina.core.AprLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> <GlobalNamingResources> <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase" pathname="conf/tomcat-users.xml" factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/> <Resource name="jdbc/mysql" type="javax.sql.DataSource" password="123456" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost:3306/test" maxActive="4"/> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" redirectPort="8443" minSpareThreads="25" connectionTimeout="60000" connectionLinger="-1" serverSoTimeout="0" maxSpareThreads="75" maxThreads="150" tcpNoDelay="true" maxHttpHeaderSize="8192"> </Connector> <Connector port="8009" redirectPort="8443" protocol="AJP/1.3"> </Connector> <Engine defaultHost="localhost" name="Catalina"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> <Host appBase="webapps" name="localhost"> <Context docBase="/test" path="/test" reloadable="true" debug="5" crossContext="true"> <Resource name="jdbc/mysql" type="javax.sql.DataSource" password="123456" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost:3306/test" maxActive="4"/> </Context> </Host> </Engine> </Service> </Server>
4.在java代码中使用JNDI资源获得DataSource
javax.naming.InitialContext ctx = new javax.naming.InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql"); Connection conn = ds.getConnection();
该代码在JDK1.5下测试通过
在一些资料中提到,在JDK1.5以前的版本可以通过
DataSource ds = (DataSource) ctx.lookup("jdbc/mysql");
获得DataSource。
我没测试过该代码。
上述代码在J2EE服务器环境下工作得很好,但是在main()中就会报一个NoInitialContextException。
之所以有NoInitialContextException是因为无法从System.properties中获得必要的JNDI参数,在服务器环境下,服务器启动时就把这些参数放到System.properties中。
所以可以通过以下方法解决:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL,"t3://localhost:7001");
InitialContext ctx = new InitialContext(env);
或
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
System.setProperty(Context.PROVIDER_URL, "rmi://localhost:3306/test");
System.setProperty(Context.SECURITY_PRINCIPAL, "root");
System.setProperty(Context.SECURITY_CREDENTIALS, "123456");
以上代码建议改为在配置文件中配置
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=rmi://localhost:3306/test
java.naming.security.principal=user
java.naming.security.credentials=password
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1851149
发表评论
-
tomcat集群配置
2013-10-29 14:58 729http://www.iteye.com/topic/101 ... -
HashMapTest
2013-07-10 11:26 772package com.hashmap.test; ... -
strategy enum pattern
2013-07-09 16:16 688enum PayrollDay { MONDAY(PayT ... -
list remove
2013-07-09 16:15 0List<Integer> list = new ... -
String,StringBuffer与StringBuilder的区别??
2013-07-02 21:23 647转 : http://blog.csdn.net/ ... -
file down load
2011-03-14 10:05 767转载: http://blog.csdn.net/seng3 ... -
转换浮点数为保留x位小数的浮点数,主要是用来显示四舍五入
2010-07-22 14:41 1260/** * 转换浮点数为保留x位小数的浮点数,主要是 ... -
自写控制层小框架
2009-12-29 00:29 916我是一个java菜鸟!近来在学习java,也想写点小东西。希望 ... -
java中获取资源文件
2009-07-16 13:39 913public class DrpToOAInfo { @P ... -
Java操作PDF,Word,Excel,Access!
2009-05-06 12:23 1224Java操作PDF http://www.lowagie.co ... -
jfilechooser默认路径问题
2009-05-05 23:08 6116JFileChooser保存路径的问题 我们在用JFileCh ... -
JFileChooser
2009-05-05 20:33 3654其实JFileChooser基本使用方法还是很简单的,下面写两 ... -
GridBagLayout布局管理器—实现左右选择框
2009-04-15 11:01 13951. gridx,gridy 设置组件的位置:其实就是组件行列 ... -
GridLayout详解
2009-04-15 09:52 4753GridLayout GridLayout是一个非常强大的布 ... -
collection 学习记录
2009-04-06 16:49 762//根据key升序排列 TreeMap map = ... -
servler filter 学习记录
2009-04-04 15:22 1122String str = request.getParam ...
相关推荐
【Tomcat 学习精华笔记】 Tomcat 是一个广泛应用的开源服务器,主要用于托管Java Web应用程序。它虽然不是严格意义上的应用服务器,但作为一个Servlet容器,它能够处理Servlet和JSP,并且具备了一些应用服务器的...
“去其糟粕取其精华”。如果觉得写的好的地方就给个赞,写的不好的地方,也请多多包涵。 使用过程: 1.创建数据库。 创建语句 :tables.sql 2.插入初始化数据 插入初始化数据:init.data.sql 3.运行。 管理员...
5. **Web容器**:Tomcat、Jetty或WebLogic等Web服务器和应用服务器的配置和使用也是Java Web开发的关键部分。书中可能会介绍如何部署和管理Web应用,以及如何配置和优化这些容器。 6. **安全性**:Web应用的安全性...
pimpinella_3cd_01_0716
FIB English learning
X86-jq安装包
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
大圣挪车小程序1.3.5 前端
Manus.im 产品及开发团队研究报告.pdf
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
sun_3ck_01a_0918
下载 1. 单击“立即下载”,以下载该文件。 2. 出现“文件下载”窗口后,单击“保存”,以将文件保存到硬盘。 安装 1. 浏览至文件下载目标位置并双击新下载的文件。 2. 仔细阅读对话窗口中显示的发布信息。 3. 下载并安装对话窗口中标识的任何必备项,然后再继续。 4. 单击“Install”(安装)按钮。 5. 按照其余提示执行更新。 安装 1. 将解压的文件复制到可访问Windows的介质。 2. 将系统重新引导至Windows操作系统。 3. 打开“服务器管理器”->“设备管理器”->“存储控制器”,然后单击“PERC控制器”。 5. 单击“更新驱动程序软件”,并按照提示更新驱动程序。 4. 重新引导系统以使更改生效。
支持所有操作系统一键安装。
matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
swanson_01_1106
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
sun_3ck_01_0919
各城市方言距离数据-中山大学岭南学院产业与区域经济研究中心 方言距离是指两种或多种方言之间的相似程度或差异程度。参考中山大学岭南学院产业与区域经济研究中心的刘毓芸等(2015)文献。他们基于方言树图,并参考《汉语方言大词典》和《中国语言地图集》对方言的划分,将汉语方言从宽泛到具体分为以下几个层级:汉语→方言大区→方言区→方言片。为了量化县与县之间的方言差异,他们采用了一种赋值方法: 若它们分属不同方言大区,则距离为3。: 若两个县同属一个方言片,则它们之间的方言距离为0; 若两个县属于同一方言区但不同方言片,则距离为1; 若它们属于同一方言大区但不同方言区,则距离为2; 方言距离是一个反映方言之间相似程度或差异程度的重要指标,它在语音识别、方言研究等领域具有广泛的应用价值。 参考文献:[1]刘毓芸, 徐现祥, 肖泽凯. 2015. 劳动力跨方言流动的倒U型模式[J]. 经济研究, 50(10): 134-146+162. 指标 语系、语族、方言大区、方言区/语支、方言片/语种、Supergroup、Dialect、group、Sub-dialect、groupPref_1、Pref_2、DiaDist、PrefCode_1、PrefCode_2等等。