我已经在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");
也没有帮助。
答案 0 :(得分:1)
你得到一个ClassNotFoundException,看起来你没有正确复制你的h2 jar ..确保你把它放在你的战争的lib文件夹中..