【发布时间】:2016-08-16 05:21:31
【问题描述】:
我使用的是tomcat 8.0,mybatis 3.2.2,当我在mybatis-config.xml中使用数据源时,我的应用程序运行良好
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="username" value="uid"/>
<property name="password" value="pwd"/>
</dataSource>
</environment>
我遵循了许多论坛中给出的程序和解决方案,尤其是 stachoverflow,但它没有帮助。这是我遵循的步骤。我已将 mysql-connector-java-5.1.38.jar 放在 Tomcat8.0\lib 下,并将 ojdbc6.jar 放在 WEB-INF\lib 文件夹下。我正在使用java 1.8。请帮助确定我错过的地方
Tomcat8.0\conf下的server.xml
<GlobalNamingResources>
<Resource name="jdbc/MYDB"
auth=Container
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
username="uid"
password="pwd"
url="jdbc:oracle:thin:@localhost:1521:XE"
/>
Tomcat8.0\conf\context.xml
<Context>
<ResourceLink name="jdbc/MYDB" global="jdbc/MYDB" type="javax.sql.DataSource"/>
</Context>
myapp/WebContent/WEB-INF/中的web.xml
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MYDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
带有 JNDI 名称引用的 mybatis-config.xml
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="JNDI">
<property name="data_source" value="java:comp/env/jdbc/MYDB"/>
</dataSource>
</environment>
DBUtil.java 代码如下
String resource = "path of mybatis-config.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
但是当我运行应用程序(访问数据库)时,我得到了 原因:java.sql.SQLException:无法为连接 URL 'null' 创建类 '' 的 JDBC 驱动程序 . . . 引起:java.lang.NullPointerException 在 com.mysql.fabric.jdbc.FabricMySQLDriver.parseFabricURL(FabricMySQLDriver.java:97)
请让我知道我错过了什么地方以及问题所在。
【问题讨论】:
标签: servlets jndi mybatis tomcat8