2016-03-29 9 views
0

「クラスが見つからないcom.microsoft.sqlserver.jdbc.SQLServerDriver指定されたJDBCドライバ」自分のアプリケーションを実行すると、私はエラーを得た、エラーは次のとおりです。JDBCドライバのcom.microsoft.sqlserver指定JavaのHibernateのエラー

。 のpom.xml

<dependency> 
     <groupId>org.apache.struts</groupId> 
     <artifactId>struts2-convention-plugin</artifactId> 
     <version>2.3.20</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.struts</groupId> 
     <artifactId>struts2-rest-plugin</artifactId> 
     <version>2.3.20</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>4.2.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.common</groupId> 
     <artifactId>hibernate-commons-annotations</artifactId> 
     <version>4.0.1.Final</version> 
     <classifier>tests</classifier> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.0-api</artifactId> 
     <version>1.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId> 
     <version>1.0.0.GA</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.6.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.logging</groupId> 
     <artifactId>jboss-logging</artifactId> 
     <version>3.1.0.CR2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.6.4</version> 
    </dependency> 

    <dependency> 
     <groupId>com.microsoft.sqlserver.jdbc</groupId> 
     <artifactId>sqljdbc4</artifactId> 
     <version>1.0</version> 
     <scope>system</scope> 
     <systemPath>${basedir}/src/main/lib/sqljdbc4.jar</systemPath> 
    </dependency> 

hibernate.cfg.xmlの

:jdbc.SQLServerDriverクラス

私の源泉を発見していません

<hibernate-configuration>  
<session-factory> 

<!-- Database connection settings --> 
    <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> 
    <property name="connection.url">jdbc:sqlserver://.;database=db</property> 
    <property name="connection.username">sa</property> 
    <property name="connection.password">12345</property> 
    <property name="connection.pool_size">1</property> 
    <property name="dialect">org.hibernate.dialect.SQLServer2005Dialect</property> 
    <property name="show_sql">false</property> 
    <property name="hbm2ddl.auto">update</property> 

    <!-- Mapping files --> 
    <mapping resource="employee.hbm.xml"/> 

</session-factory> 

にHibernateを呼び出すコード:

public static List<Employee> SelectAll(){ 
    Configuration cfg = new Configuration(); 
    cfg.configure("hibernate.cfg.xml"); 
    SessionFactory factory = cfg.buildSessionFactory(); 
    Session session = factory.openSession(); 

    //String sql_query= "from Employee where Name = 'Kevin'"; 
    String sql_query= "from Employee"; 
    Query query = session.createQuery(sql_query); 
    List<Employee> employees = query.list(); 

    session.close(); 
    factory.close(); 
    return employees; 
} 

誰もがなぜ知っていますか? エラーが発生しました SessionFactory factory = cfg.buildSessionFactory();中

ディレクトリ:

enter image description here

私は、ライブラリをチェックすると、それはSQLServerDriver

enter image description here

答えて

1

@Lumanyunあなた」、connection.url、hibernate.cfg.xmlファイル内のプロパティ名を使用する必要がありますリポジトリMavenの中に存在していない瓶使用して再:

<dependency> 
     <groupId>com.microsoft.sqlserver.jdbc</groupId> 
     <artifactId>sqljdbc4</artifactId> 
     <version>1.0</version> 
     <scope>system</scope> 
     <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath> 
    </dependency> 

hereに はどんな問題がある...あなたにハイテク,,,それはクラスパスにSQLServerDriverを持って

+0

私は何が間違っている私の依存関係を知っていない...しかし、これで正常に実行することができます...おかげで仲間! – Lumanyun

+1

@ Lumanyun np bro幸せな作品 – Hohenheim

1

を持って、あなたのクラスパスを確認してください。ドライバjarはクラスパス上になければなりません。この問題は、javaが指定されたクラスパスでクラスを見つけることができないことに関連しています。 jarファイルを同じディレクトリに置くか、見つけやすくします。

+0

を支援することができ、バージョンを確認しますMavenで?なぜなら私はsqljdbc4を使用する前です。javenとMavenを使用しないで飾る – Lumanyun

2

クラスパスにcom.microsoft.sqlserver.jdbc.SQLServerDriverがないためです。

クラスパスのsqljdbc4.jarにチェックを入れ、sqljdbc4.jarcom.microsoft.sqlserver.jdbc.SQLServerDriverクラスを確認してください。

クラスパス内の任意のjarファイルがSQLServerDriverであることを確認するには、このコードをHibernate設定コードの前に実行してください。

URL driverUrl = Thread.currentThread().getContextClassLoader() 
    .getResource(
    "com/microsoft/sqlserver/jdbc/SQLServerDriver.class"); 
System.out.println(driverUrl); 
+0

こんにちは、それはクラスパスのSQLServerDriverを持っています... Mavenに問題はありますか?なぜなら、私がsavenjdbc4.jarをMavenなしで使っていて、それがうまくいくからです。 – Lumanyun

+0

@ Lumanyun私の答えは –

+0

です。私は既にdriverURLを試しています。エラーは同じです...私はcom.microsoft.sqlserver.jdbc.SQLServerDriverをインポートしようとします。 。:< – Lumanyun

1

すでに先にコメントしたように、まずクラスパスにクラスパスがあるかどうかをチェックします。例外として、クラスパスにはクラスファイルがないようです。

これ以外は別のものを指摘したいと思います。あなただけconnection.driver_class使用しているなどhibernate.connection.driver_classhibernate.connection.url、ここで として慣例に従って、あなたはなど

+0

こんにちは、,,それはクラスパスにSQLServerDriverを持っています... Mavenに問題がありますか? mavenを使わずにsqljdbc4.jarを使用する前に大丈夫です。 – Lumanyun

+1

'hibernate.cfg.xml 'の' hibernate'プリフィックスを使用することは必須ではありません( 'hibernate.properties'と違って)。もちろんそれは良いスタイルです。 –

関連する問題