Java 为什么Wildfly找不到postgresql驱动程序
我正在用java开发一个多层软件。中间层是访问postgresql数据库的java ejb。但是,当我运行客户端java应用程序时,我有以下错误消息:Java 为什么Wildfly找不到postgresql驱动程序,java,postgresql,wildfly,Java,Postgresql,Wildfly,我正在用java开发一个多层软件。中间层是访问postgresql数据库的java ejb。但是,当我运行客户端java应用程序时,我有以下错误消息: INFO: EJBCLIENT000069: Using legacy jboss-ejb-client.properties security configuration Exception in thread "main" javax.ejb.EJBException: WFLYEJB0442: Unexpected Error .... C
INFO: EJBCLIENT000069: Using legacy jboss-ejb-client.properties security configuration
Exception in thread "main" javax.ejb.EJBException: WFLYEJB0442: Unexpected Error
....
Caused by: java.lang.NoClassDefFoundError: org/postgresql/Driver
...
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
module.xml文件的内容是:
<?xml version="1.0" encoding="utf-8" ?>
<module xmlns="urn:jboss:module:1.3" name="org.postgresql">
<resources>
<!--the name of your driver -->
<resource-root path="postgresql-42.2.6.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
您的配置似乎正确。启动应用程序服务器时,请确保您实际使用的是已配置的
standalone.xml
。leopal,谢谢您的回答。我重命名了standalone.xml,无法启动wildfly。我重命名了module.xml,并收到以下错误消息:0:08:06847错误[org.jboss.as.controller.management operation](ServerService线程池--42)WFLYCTL0013:操作(“添加”)失败-地址:(((((“子系统”=>“数据源”),((“jdbc驱动程序”=>“postgresql”))-故障描述:“WFLYJCA0115:驱动程序模块[org.postgresql]或者缺少一个it依赖项:[org.postgresql]“10:08:06848错误[org.jboss.as.controller.management operation](ServerService线程池--42)WFLYCTL0013:操作(“添加”)失败-地址:([(((“subsystem”=>“datasources”),(“jdbc驱动程序”=>“org.postgresql”))你能试着从module.xml
中删除行org.postgresql.Driver
吗?我从standalone.xml中删除了行(不是从module.xml中),并且有相同的错误消息你的配置似乎正确。启动应用程序服务器时,请确保您实际使用的是已配置的standalone.xml
。leopal,谢谢您的回答。我重命名了standalone.xml,无法启动wildfly。我重命名了module.xml,并收到以下错误消息:0:08:06847错误[org.jboss.as.controller.management operation](ServerService线程池--42)WFLYCTL0013:操作(“添加”)失败-地址:(((((“子系统”=>“数据源”),((“jdbc驱动程序”=>“postgresql”))-故障描述:“WFLYJCA0115:驱动程序模块[org.postgresql]或者缺少一个it依赖项:[org.postgresql]“10:08:06848错误[org.jboss.as.controller.management operation](ServerService线程池--42)WFLYCTL0013:操作(“添加”)失败-地址:([(((“subsystem”=>“datasources”),(“jdbc驱动程序”=>“org.postgresql”))你能试着从module.xml
中删除行org.postgresql.Driver
吗?我从standalone.xml中删除了行(不是从module.xml),并显示了相同的错误消息
<driver name="postgresql" module="org.postgresql">
<driver-class>org.postgresql.Driver</driver-class>
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-
class>
</driver>
package loginPackage;
import java.sql.Connection;
import java.sql.DriverManager;
import org.postgresql.Driver;
import java.sql.SQLException;
public class LoginDao {
static String errorMessage;
static String connectionResult;
public static String getConnectionResult() {
return connectionResult;
}
public static void setConnectionResult(String connectResult) {
connectionResult = connectResult;
}
public String getErrorMessage() {
return errorMessage;
}
public static void setErrorMessage(String errorMsg) {
errorMessage = errorMsg;
}
public static void LoginCheck(String userCode, String userPswd) {
setConnectionResult(userConnect(userCode, userPswd));
}
public static String userConnect(String userCode, String userPaswd) {
try {
//Connection conn = null;
setConnectionResult("OK");
setErrorMessage("OK");
Driver driver = new org.postgresql.Driver();
DriverManager.registerDriver(driver);
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/TestDb", userCode, userPaswd);
System.out.println("Connected to PostgreSQL database!");
return "SUCCESS";
}
catch (Exception e) {
System.out.println("Failed to create JDBC db connection " + e.toString() + e.getMessage());
setErrorMessage(userCode + ", " + userPaswd + ", " + e.toString() + ", " + e.getMessage() + ", " + e.getStackTrace());
return "FAILURE" ;
}
}
}