我使用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