[解決済み] java.lang.ClassNotFoundException: org.dom4j.DocumentException
2022-02-18 09:08:04
質問
hibernateを学習するために、いくつかのコードを作成しました。以下のようなエラーが発生します。dom4jはXMLの問題のようですが、hibernate.cfg.xmlが問題なのですか?
Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at com.examscam.model.User.persist(User.java:45)
at com.examscam.model.User.main(User.java:57)
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
(なぜ eclipse はこの "2more" を表示しないのでしょうか?)
コード
package com.examscam.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
@Entity
public class User {
private Long id;
private String password;
@Id
@GeneratedValue
public Long getId(){
return id;
}
public void setId(Long id){
Class c1 = User.class;
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public static void persist(){
/*
* Contains all the info needed to connect to database, along with
* info from your JPA annotated class, ie this class.
*/
AnnotationConfiguration config = new AnnotationConfiguration();
config.addAnnotatedClass(User.class);
config.configure();
SchemaExport schemaExport = new SchemaExport(config);
schemaExport.create(true, true);
}
public static void main(String[]args){
persist();
}
}
XMLファイル
<?xml version = '1.0' encoding='UTF-8' ?>
<!Doctype hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name = "connection.url">
jdbc:mysql://localhost/examscam
</property>
<property name = "connection.username">
root
</property>
<property name = "connection.password">
password
</property>
<property name = "connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name = "dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name = "transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</property>
<property name = "current_session_context_class">
thread
</property>
<!-- this will show us all the SQL statements-->
<property name = "hibernate.show_sql">
true
</property>
<!-- We dont use any mapping files as of now-->
</session-factory>
</hibernate-configuration>
アップデイト
上記のエラーを修正した後、新たな問題が発生しました -。
eclipseでコードを作っています。コードに必要な可能なすべてのjarを追加しましたが、私のコードはまだ動作していません。なぜ、このようなエラーが発生するのでしょうか? java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder すでにsl4fjを追加しているのに発生する( slf4j-api-1.5.8.jar) をビルドパスに追加しますか?
エラー
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j
/impl/StaticLoggerBinder
at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:152)
at com.examscam.model.User.persist(User.java:45)
at com.examscam.model.User.main(User.java:57)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 9 more
解決方法は?
dom4j.jarがクラスパスにあることを確認してください。
2moreさんがおっしゃっていること。
...2 more』とあるのは、『causeed by』例外の残りの行が、親例外のその時点からの残りの行と同一であることを意味します。
関連
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み】不正なエスケープ文字"㊧"について
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】Gradleがtools.jarを見つけ出さない
-
[解決済み】Javaメソッドスタブ
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み] "java.nio.charset.MalformedInputException" を避けるために、すべての包括的なCharset。入力の長さ= 1"?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み] hibernateでResultSetを抽出できない。
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み】Mockitoでモックからチェックされた例外を投げる
-
[解決済み】Gradleがtools.jarを見つけ出さない
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)