2016-08-16 5 views
0

Я использую Tomcat 8.0, mybatis 3.2.2, мое приложение работает нормально, когда я использовал источник данных в mybatis-config.xmlНе удалось найти имя JNDI кота 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 \ конф

<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 \ конф \ context.xml

<Context> 
    <ResourceLink name="jdbc/MYDB" global="jdbc/MYDB" type="javax.sql.DataSource"/> 
</Context> 

web.xml в пределах 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: Невозможно создать драйвер JDBC класса '' для подключения URL 'null' . . . Вызванный: java.lang.NullPointerException на com.mysql.fabric.jdbc.FabricMySQLDriver.parseFabricURL (FabricMySQLDriver.java:97)

Пожалуйста, дайте мне знать, где я пропустил и Что вопрос.

ответ

0

Основная проблема, которую я вижу, заключается в том, что вы используете драйвер JDBC MySQL для базы данных Oracle. Это Oracle Driver: oracle.jdbc.driver.OracleDriver и это оракул строка соединения: jdbc:oracle:thin:@localhost:1521:XE но говорить об этом:

Я поставил MySQL-разъем-Java-5.1.38.jar под Tomcat8.0 \ Lib и ojdbc6. jar в папке WEB-INF \ lib.

Вам нужно разместить ojdbc6.jar (драйвер JDBC для Oracle DB) под Tomcat8.0\lib и удалить mysql-connector-java-5.1.38.jar (драйвер JDBC для MySQL БД).

+0

Большое спасибо. Thouh, я не реализовал ваше решение, я могу понять проблему. Мой срок был слишком близок, поэтому мы выбрали сервер веб-логики (поскольку у нас была такая гибкость для изменения сервера), и я исправил проблему. – Sree

Смежные вопросы