我已经在 Wildfly 中创建了数据库,并且一切都是正确的,因为我可以从 Eclipse 中访问它。我在 Wildfly 中创建了一个 DataSource 作为 java:jboss/datasources/Test5JPA 并测试它没有出现任何问题。现在我想测试是否可以从不同的 java 项目(在 eclipse 中)访问它,这就是我的问题开始的地方。
有人告诉我尝试这样的方法来连接到数据库,但我无法使其工作:
Connection connection = null;
Statement statement = null;
boolean resultOfInsert = false;
Class.forName("org.h2.Driver");
connection = DriverManager.getConnection("java:jboss/datasources/Test5JPA");
statement = connection.createStatement();
resultOfInsert = statement.execute("INSERT INTO person (id1, name) VALUES('12','test');");
我收到此错误:
13:32:20,642 ERROR [stderr] (default task-15) java.lang.ClassNotFoundException: org.h2.Driver from [Module "deployment.Tarea3.war:main" from Service Module Loader]
13:32:20,642 ERROR [stderr] (default task-15) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197)
13:32:20,642 ERROR [stderr] (default task-15) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443)
13:32:20,642 ERROR [stderr] (default task-15) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431)
13:32:20,642 ERROR [stderr] (default task-15) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373)
13:32:20,642 ERROR [stderr] (default task-15) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118)
13:32:20,642 ERROR [stderr] (default task-15) at java.lang.Class.forName0(Native Method)
13:32:20,642 ERROR [stderr] (default task-15) at java.lang.Class.forName(Unknown Source)
我被告知要下载org.h2.Driver
,我从这里得到它:http://www.java2s.com/Code/Jar/h/Downloadh2jar.htm但这没有帮助。
还将连接更改为:
connection = DriverManager.getConnection("jdbc:h2:file:~/final-jpa/Test5JPA");
也没有帮助。
最佳答案
您收到 ClassNotFoundException,看起来您没有正确复制 h2 jar。请确保将其放在您的 war 的 lib 文件夹中。
关于java - 在 Wildfly 中连接到 h2 数据库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26494167/