我使用Tomcat 8.0,MyBatis的3.2.2,当我的MyBatis-config.xml中使用的数据源无法查找JNDI名称的Tomcat 8.0 MyBatis的
<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。请大家帮忙鉴定,我错过了
的server.xml下Tomcat8.0 \的conf
<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>
的web.xml within myapp/WebContent/WEB-INF/
<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>
的MyBatis-config.xml中使用JNDI名称引用
<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创建类''的JDBC驱动程序'null' 。 。 。 产生的原因:在com.mysql.fabric.jdbc.FabricMySQLDriver.parseFabricURL(FabricMySQLDriver.java:97)显示java.lang.NullPointerException
请让我知道,我已经错过了和最新的问题。
非常感谢。你没有实施你的解决方案,我可以理解这个问题。我的截止日期太近了,所以我们选择了Web逻辑服务器(因为我们有更改服务器的灵活性),并且我解决了这个问题。 – Sree