jdbc之二:DAO模式 分类: B1_JAVA 2...

本文介绍了一种基于JDBC的DAO模式实现,包括创建数据库、表、DAO接口、异常处理等步骤,并通过具体实例演示了如何操作数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

详细代码请参见 https://github.com/lujinhong/dao

一、前期准备

1、创建数据库

create database filter_conf;

2、创建表并插入数据

create table T_CATEGORY(cid Int, title varchar(256), sequnce int, deleted int);

insert into T_CATEGORY values(1,lujinhong,1,1);

3、准备pom.xml

我习惯使用maven作包管理,因此在pom.xml中加入以下内容:

<dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <version>5.1.36</version>

</dependency>

OK,开工写代码

 

二、java创建 

1、创建Dao接口。

 

package com.ljh.jasonnews.server.dao;

import java.sql.Connection;

public interface Dao {
	
	public Connection getConnection() throws DaoException;

}


2、创建BaseDao类,实现Dao接口,主要完成数据库的打开与关闭

 

package com.ljh.jasonnews.server.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DaoBase implements Dao {

	@Override
	public Connection getConnection() throws DaoException {
	        try {
	        	//注册JDBC驱动程序
	        	Class.forName("com.mysql.jdbc.Driver");
	        	
				//打开一个数据库连接
				String URL = "jdbc:mysql://1.2.3.4:3306/filter_conf";
				String USERNAME = "lujinhong";
				String PASSWORD = "lujinhong";

	        	Connection conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
				return conn;

	        	
	           //return dataSource.getConnection();
	        } catch (Exception e) {
	            e.printStackTrace();
	            throw new DaoException();
	        }
	}
	
	protected void closeDbObject(ResultSet rs, Statement stmt, Connection conn){
		if(rs != null){
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(stmt != null){
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(conn != null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}


3、创建DaoException。

 package com.ljh.jasonnews.server.dao;

public class DaoException extends Exception{
	private String message;
	public DaoException(){}
	public DaoException(String message){
		this.message = message;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	
	public String toString(){
		return message;
	}

}

 

 

以上为jdbc DAO模式的基本步骤,主要用于获取连接及异常处理。

以下步骤对于每个表均要进行新增类(***Dao,***DaoImpl,model.***)以及在类中新增方法(DaoFactory)。

 

4、创建DaoFactory类,用于生产Dao对象。

对于较少的连接,可以在factory中每次直接new 一个***DaoImpl对象,如本例。

对于某些较多的连接,可能需要使用连接池等限制连接数量,说见本文最后面。

 

package com.ljh.jasonnews.server.dao.factory;

import com.ljh.jasonnews.server.dao.CategoryDao;
import com.ljh.jasonnews.server.dao.impl.CategoryDaoImpl;

public class DaoFactory {
	
	public static CategoryDao getCategoryDao() {
		return new CategoryDaoImpl();
	}
}

5、创建Model类。

package com.ljh.jasonnews.server.model;


public class Category {

	public int getCid() {
		return cid;
	}
	public void setCid(int cid) {
		this.cid = cid;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public int getSequnce() {
		return sequnce;
	}
	public void setSequnce(int sequnce) {
		this.sequnce = sequnce;
	}
	public int getDeleted() {
		return deleted;
	}
	public void setDeleted(int deleted) {
		this.deleted = deleted;
	}
	private int cid;
	private String title;
	private int sequnce = 0;
	private int deleted = 0;
}


6、创建***Dao接口,继承Dao接口。

 

package com.ljh.jasonnews.server.dao;

import java.util.List;

import com.ljh.jasonnews.server.model.Category;

public interface CategoryDao extends Dao{
	
	public List getCategoryList() throws DaoException;

}


7、创建***DaoImpl类,继承DaoBase类。

 

package com.ljh.jasonnews.server.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.ljh.jasonnews.server.dao.CategoryDao;
import com.ljh.jasonnews.server.dao.DaoBase;
import com.ljh.jasonnews.server.dao.DaoException;
import com.ljh.jasonnews.server.model.Category;

public class CategoryDaoImpl extends DaoBase implements CategoryDao {

	@Override
	public List getCategoryList() throws DaoException{
		
		String GET_CATEGORY_SQL = "SELECT * FROM T_CATEGORY";

		List categoryList = new ArrayList();
		
		Connection conn = null;
		PreparedStatement pStatment =null;
		ResultSet rs = null;
		try{
			conn = getConnection();
			System.out.println("a");
			pStatment = conn.prepareStatement(GET_CATEGORY_SQL);
			System.out.println("b");
			rs = pStatment.executeQuery();
			System.out.println("c");
			while(rs.next()){
				Category category = new Category();
				category.setCid(rs.getInt("cid"));
				category.setTitle(rs.getString("title"));
				category.setSequnce(rs.getInt("sequnce"));
				category.setDeleted(rs.getInt("deleted"));
				categoryList.add(category);
			}
		}catch(Exception e){
			throw new DaoException("Erorr getting Categorys. " + e.getMessage());
		}finally{
			closeDbObject(rs, pStatment, conn);
		}
		
		return categoryList;

	}
 

 

 

其它说明:

1、创建TestCase,测试数据库连接。

package com.ljh.jasonnews.server.dao.test;

import java.util.Iterator;
import java.util.List;

import org.junit.Test;

import com.ljh.jasonnews.server.dao.CategoryDao;
import com.ljh.jasonnews.server.dao.impl.CategoryDaoImpl;
import com.ljh.jasonnews.server.model.Category;

public class CategoryDaoTest {

	@Test
	public void test() throws Exception{
		CategoryDao categoryDao = DaoFactory.getCategoryDao();
		List categoryList = categoryDao.getCategoryList();
		Iterator iterator = categoryList.iterator();
		while(iterator.hasNext()){
			Category category = iterator.next();
			System.out.println(category.getCid()+" "+ category.getTitle()+" "+category.getSequnce()+" "+ category.getDeleted()+"  ");
		}
		
	}

}

2、在数据库中访问数据,最重要且最费时的操作经常是建立连接。按规则,设计良好的应用程序数据库连接应该始终是采用连接池的。

 

一般而言,使用连接池有以下三种方法:

l  Apache Commons DBCP

l  C3p0

l  Tomcat7中的Tomcat JDBCConnection Pool

    使用Tomcat的项目,建立直接使用TomcatJDBC Connection Pool。调用DataSource.getConnection()方法比较快,因为连接永远不会被关闭:关闭连接时,只要将连接返回池中即可。但是,JNDI查找比较慢,因此,被返回的DataSource经常会被缓存起来。

 

注:

(1)在调试中,未能使用连接池完成数据库连接,因此本示例中未使用连接池,关于连接池,可参考DataSourceCache.java,但关键是context.xml与web.xml中的配置。

(2)在需要调用context相关的应用中,不能直接使用junit进行测试,而必须创建一个jsp或者servlet,否则,在以下代码中会报错:

 

 Context envContext = (Context)context.lookup("java:/comp/env");

(3)作用连接池有JNDI及依赖注入2种方式,目前更推荐使用依赖注入。

 

 

之后再补充关于连接池以及缓存相关的代码。

 

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/lujinhong2/p/4637345.html

C:\Users\86180\.jdks\openjdk-24.0.1\bin\java.exe -Dmaven.multiModuleProjectDirectory=C:\Users\86180\IdeaProjects\javafx -Djansi.passthrough=true -Dmaven.home=C:\Users\86180\.m2\wrapper\dists\apache-maven-3.8.5-bin\5i5jha092a3i37g0paqnfr15e0\apache-maven-3.8.5 -Dclassworlds.conf=C:\Users\86180\.m2\wrapper\dists\apache-maven-3.8.5-bin\5i5jha092a3i37g0paqnfr15e0\apache-maven-3.8.5\bin\m2.conf "-Dmaven.ext.class.path=C:\Users\86180\AppData\Local\Programs\IntelliJ IDEA Ultimate 2025.1.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:C:\Users\86180\AppData\Local\Programs\IntelliJ IDEA Ultimate 2025.1.2\lib\idea_rt.jar=62746" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\86180\.m2\wrapper\dists\apache-maven-3.8.5-bin\5i5jha092a3i37g0paqnfr15e0\apache-maven-3.8.5\boot\plexus-classworlds-2.6.0.jar;C:\Users\86180\.m2\wrapper\dists\apache-maven-3.8.5-bin\5i5jha092a3i37g0paqnfr15e0\apache-maven-3.8.5\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version=2025.1.2 clean javafx:run WARNING: A restricted method in java.lang.System has been called WARNING: java.lang.System::load has been called by org.fusesource.jansi.internal.JansiLoader in an unnamed module (file:/C:/Users/86180/.m2/wrapper/dists/apache-maven-3.8.5-bin/5i5jha092a3i37g0paqnfr15e0/apache-maven-3.8.5/lib/jansi-2.4.0.jar) WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module WARNING: Restricted methods will be blocked in a future release unless native access is enabled WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::objectFieldOffset has been called by com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper (file:/C:/Users/86180/.m2/wrapper/dists/apache-maven-3.8.5-bin/5i5jha092a3i37g0paqnfr15e0/apache-maven-3.8.5/lib/guava-25.1-android.jar) WARNING: Please consider reporting this to the maintainers of class com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release [INFO] Scanning for projects... [INFO] [INFO] ---------------------< com.example:javafx-project >--------------------- [INFO] Building JavaFX 停车场管理系统 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ javafx-project --- [INFO] Deleting C:\Users\86180\IdeaProjects\javafx\target [INFO] [INFO] >>> javafx-maven-plugin:0.0.8:run (default-cli) > process-classes @ javafx-project >>> [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ javafx-project --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 6 resources [INFO] [INFO] --- maven-compiler-plugin:3.13.0:compile (default-compile) @ javafx-project --- [INFO] Recompiling the module because of changed source code. [INFO] Compiling 11 source files with javac [debug release 24 module-path] to target\classes [INFO] [INFO] <<< javafx-maven-plugin:0.0.8:run (default-cli) < process-classes @ javafx-project <<< [INFO] [INFO] [INFO] --- javafx-maven-plugin:0.0.8:run (default-cli) @ javafx-project --- [WARNING] Module name not found in <mainClass>. Module name will be assumed from module-info.java 6�� 15, 2025 5:27:58 ���� dao.VehicleDAO <init> ����: δ�ҵ�MySQL JDBC��������ȷ����������� java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:463) at java.base/java.lang.Class.forName(Class.java:454) at javafx@1.0-SNAPSHOT/dao.VehicleDAO.<init>(VehicleDAO.java:33) at javafx@1.0-SNAPSHOT/service.ParkingService.<init>(ParkingService.java:17) at javafx@1.0-SNAPSHOT/view.controller.MainController.initialize(MainController.java:47) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:65) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at javafx.base@24/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:112) at javafx.fxml@24/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:78) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2658) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2533) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3304) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3264) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3235) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3211) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3191) at javafx.fxml@24/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3186) at javafx@1.0-SNAPSHOT/view.Main.start(Main.java:16) at javafx.graphics@24/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$7(LauncherImpl.java:840) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$5(PlatformImpl.java:444) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runLater$4(PlatformImpl.java:419) at javafx.graphics@24/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168) at java.base/java.lang.Thread.run(Thread.java:1447) 6�� 15, 2025 5:27:58 ���� dao.VehicleDAO getConnection ��Ϣ: �������ӵ�MySQL���ݿ�: jdbc:mysql://localhost:3306/parking_system?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai 6�� 15, 2025 5:27:58 ���� dao.VehicleDAO getConnection ����: MySQL���ݿ�����ʧ�� java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/parking_system?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:638) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:199) at javafx@1.0-SNAPSHOT/dao.VehicleDAO.getConnection(VehicleDAO.java:45) at javafx@1.0-SNAPSHOT/dao.VehicleDAO.selectAllVehicles(VehicleDAO.java:122) at javafx@1.0-SNAPSHOT/service.ParkingService.getAllVehicles(ParkingService.java:76) at javafx@1.0-SNAPSHOT/view.controller.MainController.loadVehicleData(MainController.java:100) at javafx@1.0-SNAPSHOT/view.controller.MainController.initialize(MainController.java:92) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:65) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at javafx.base@24/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:112) at javafx.fxml@24/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:78) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2658) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2533) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3304) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3264) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3235) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3211) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3191) at javafx.fxml@24/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3186) at javafx@1.0-SNAPSHOT/view.Main.start(Main.java:16) at javafx.graphics@24/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$7(LauncherImpl.java:840) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$5(PlatformImpl.java:444) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runLater$4(PlatformImpl.java:419) at javafx.graphics@24/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168) at java.base/java.lang.Thread.run(Thread.java:1447) 6�� 15, 2025 5:27:58 ���� dao.VehicleDAO getConnection ����: �������: 0 6�� 15, 2025 5:27:58 ���� dao.VehicleDAO getConnection ����: SQL״̬: 08001 6�� 15, 2025 5:27:58 ���� dao.VehicleDAO getConnection ����: ������Ϣ: No suitable driver found for jdbc:mysql://localhost:3306/parking_system?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::allocateMemory has been called by com.sun.marlin.OffHeapArray (file:/C:/Users/86180/.m2/repository/org/openjfx/javafx-graphics/24/javafx-graphics-24-win.jar) WARNING: Please consider reporting this to the maintainers of class com.sun.marlin.OffHeapArray WARNING: sun.misc.Unsafe::allocateMemory will be removed in a future release java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because "connection" is null at javafx@1.0-SNAPSHOT/dao.VehicleDAO.selectAllVehicles(VehicleDAO.java:123) at javafx@1.0-SNAPSHOT/service.ParkingService.getAllVehicles(ParkingService.java:76) at javafx@1.0-SNAPSHOT/view.controller.MainController.loadVehicleData(MainController.java:100) at javafx@1.0-SNAPSHOT/view.controller.MainController.initialize(MainController.java:92) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:65) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at javafx.base@24/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:112) at javafx.fxml@24/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:78) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2658) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2533) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3304) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3264) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3235) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3211) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3191) at javafx.fxml@24/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3186) at javafx@1.0-SNAPSHOT/view.Main.start(Main.java:16) at javafx.graphics@24/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$7(LauncherImpl.java:840) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$5(PlatformImpl.java:444) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runLater$4(PlatformImpl.java:419) at javafx.graphics@24/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168) at java.base/java.lang.Thread.run(Thread.java:1447) 6�� 15, 2025 5:28:02 ���� dao.VehicleDAO getConnection ��Ϣ: �������ӵ�MySQL���ݿ�: jdbc:mysql://localhost:3306/parking_system?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai 6�� 15, 2025 5:28:02 ���� dao.VehicleDAO getConnection ����: MySQL���ݿ�����ʧ�� java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/parking_system?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:638) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:199) at javafx@1.0-SNAPSHOT/dao.VehicleDAO.getConnection(VehicleDAO.java:45) at javafx@1.0-SNAPSHOT/dao.VehicleDAO.selectAllVehicles(VehicleDAO.java:122) at javafx@1.0-SNAPSHOT/service.ParkingService.getAllVehicles(ParkingService.java:76) at javafx@1.0-SNAPSHOT/service.ParkingService.getVehicleCount(ParkingService.java:111) at javafx@1.0-SNAPSHOT/view.controller.MainController.updateStatistics(MainController.java:112) at javafx@1.0-SNAPSHOT/view.controller.MainController.initialize(MainController.java:93) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:65) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at javafx.base@24/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:112) at javafx.fxml@24/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:78) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2658) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2533) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3304) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3264) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3235) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3211) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3191) at javafx.fxml@24/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3186) at javafx@1.0-SNAPSHOT/view.Main.start(Main.java:16) at javafx.graphics@24/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$7(LauncherImpl.java:840) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$5(PlatformImpl.java:444) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runLater$4(PlatformImpl.java:419) at javafx.graphics@24/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168) at java.base/java.lang.Thread.run(Thread.java:1447) 6�� 15, 2025 5:28:02 ���� dao.VehicleDAO getConnection ����: �������: 0 6�� 15, 2025 5:28:02 ���� dao.VehicleDAO getConnection ����: SQL״̬: 08001 6�� 15, 2025 5:28:02 ���� dao.VehicleDAO getConnection ����: ������Ϣ: No suitable driver found for jdbc:mysql://localhost:3306/parking_system?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because "connection" is null at javafx@1.0-SNAPSHOT/dao.VehicleDAO.selectAllVehicles(VehicleDAO.java:123) at javafx@1.0-SNAPSHOT/service.ParkingService.getAllVehicles(ParkingService.java:76) at javafx@1.0-SNAPSHOT/service.ParkingService.getVehicleCount(ParkingService.java:111) at javafx@1.0-SNAPSHOT/view.controller.MainController.updateStatistics(MainController.java:112) at javafx@1.0-SNAPSHOT/view.controller.MainController.initialize(MainController.java:93) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:65) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at javafx.base@24/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:112) at javafx.fxml@24/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:78) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2658) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2533) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3304) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3264) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3235) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3211) at javafx.fxml@24/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3191) at javafx.fxml@24/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3186) at javafx@1.0-SNAPSHOT/view.Main.start(Main.java:16) at javafx.graphics@24/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$7(LauncherImpl.java:840) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$5(PlatformImpl.java:444) at javafx.graphics@24/com.sun.javafx.application.PlatformImpl.lambda$runLater$4(PlatformImpl.java:419) at javafx.graphics@24/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics@24/com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:168) at java.base/java.lang.Thread.run(Thread.java:1447) [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 13.126 s [INFO] Finished at: 2025-06-15T17:28:06+08:00 [INFO] ------------------------------------------------------------------------ 进程已结束,退出代码为 0
最新发布
06-16
Jun 04, 2025 4:11:52 PM org.apache.ranger.server.tomcat.EmbeddedServer start INFO: Webapp file =./webapp, webAppName = /kms Jun 04, 2025 4:11:52 PM org.apache.ranger.server.tomcat.EmbeddedServer start INFO: Adding webapp [/kms] = path [./webapp] ..... Jun 04, 2025 4:11:52 PM org.apache.ranger.server.tomcat.EmbeddedServer start INFO: Finished init of webapp [/kms] = path [./webapp]. Jun 04, 2025 4:11:52 PM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-9292"] Jun 04, 2025 4:11:52 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Tomcat Jun 04, 2025 4:11:52 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.81 Jun 04, 2025 4:11:52 PM org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment INFO: No global web.xml found Jun 04, 2025 4:11:55 PM org.apache.catalina.startup.TldConfig execute INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. log4j:WARN No such property [maxFileSize] in org.apache.log4j.DailyRollingFileAppender. log4j:WARN No such property [maxFileSize] in org.apache.log4j.DailyRollingFileAppender. java.lang.IllegalArgumentException: Can't get Kerberos realm at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:65) at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:306) at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:291) at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:846) at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:816) at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:689) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2954) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2944) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2810) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:390) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.initFileSystem(JavaKeyStoreProvider.java:89) at org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.<init>(AbstractJavaKeyStoreProvider.java:82) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:49) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:41) at org.apache.hadoop.security.alias.JavaKeyStoreProvider$Factory.createProvider(JavaKeyStoreProvider.java:100) at org.apache.hadoop.security.alias.CredentialProviderFactory.getProviders(CredentialProviderFactory.java:71) at org.apache.ranger.credentialapi.CredentialReader.getDecryptedString(CredentialReader.java:59) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.getFromJceks(RangerKeyStoreProvider.java:368) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.getDBKSConf(RangerKeyStoreProvider.java:118) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.<init>(RangerKeyStoreProvider.java:82) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider$Factory.createProvider(RangerKeyStoreProvider.java:399) at org.apache.hadoop.crypto.key.KeyProviderFactory.get(KeyProviderFactory.java:95) at org.apache.hadoop.crypto.key.kms.server.KMSWebApp.contextInitialized(KMSWebApp.java:177) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.security.authentication.util.KerberosUtil.getDefaultRealm(KerberosUtil.java:88) at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:63) ... 32 more Caused by: KrbException: Cannot locate default realm at sun.security.krb5.Config.getDefaultRealm(Config.java:1029) ... 38 more java.lang.IllegalArgumentException: Can't get Kerberos realm at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:65) at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:306) at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:291) at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:846) at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:816) at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:689) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2954) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2944) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2810) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:390) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.initFileSystem(JavaKeyStoreProvider.java:89) at org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.<init>(AbstractJavaKeyStoreProvider.java:82) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:49) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:41) at org.apache.hadoop.security.alias.JavaKeyStoreProvider$Factory.createProvider(JavaKeyStoreProvider.java:100) at org.apache.hadoop.security.alias.CredentialProviderFactory.getProviders(CredentialProviderFactory.java:71) at org.apache.ranger.credentialapi.CredentialReader.getDecryptedString(CredentialReader.java:59) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.getFromJceks(RangerKeyStoreProvider.java:368) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.getDBKSConf(RangerKeyStoreProvider.java:119) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.<init>(RangerKeyStoreProvider.java:82) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider$Factory.createProvider(RangerKeyStoreProvider.java:399) at org.apache.hadoop.crypto.key.KeyProviderFactory.get(KeyProviderFactory.java:95) at org.apache.hadoop.crypto.key.kms.server.KMSWebApp.contextInitialized(KMSWebApp.java:177) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.security.authentication.util.KerberosUtil.getDefaultRealm(KerberosUtil.java:88) at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:63) ... 32 more Caused by: KrbException: Cannot locate default realm at sun.security.krb5.Config.getDefaultRealm(Config.java:1029) ... 38 more java.lang.IllegalArgumentException: Can't get Kerberos realm at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:65) at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:306) at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:291) at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:846) at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:816) at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:689) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2954) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2944) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2810) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:390) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.initFileSystem(JavaKeyStoreProvider.java:89) at org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.<init>(AbstractJavaKeyStoreProvider.java:82) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:49) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:41) at org.apache.hadoop.security.alias.JavaKeyStoreProvider$Factory.createProvider(JavaKeyStoreProvider.java:100) at org.apache.hadoop.security.alias.CredentialProviderFactory.getProviders(CredentialProviderFactory.java:71) at org.apache.ranger.credentialapi.CredentialReader.getDecryptedString(CredentialReader.java:59) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.getFromJceks(RangerKeyStoreProvider.java:368) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.<init>(RangerKeyStoreProvider.java:83) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider$Factory.createProvider(RangerKeyStoreProvider.java:399) at org.apache.hadoop.crypto.key.KeyProviderFactory.get(KeyProviderFactory.java:95) at org.apache.hadoop.crypto.key.kms.server.KMSWebApp.contextInitialized(KMSWebApp.java:177) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.security.authentication.util.KerberosUtil.getDefaultRealm(KerberosUtil.java:88) at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:63) ... 31 more Caused by: KrbException: Cannot locate default realm at sun.security.krb5.Config.getDefaultRealm(Config.java:1029) ... 37 more java.lang.IllegalArgumentException: Can't get Kerberos realm at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:65) at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:306) at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:291) at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:846) at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:816) at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:689) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2954) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2944) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2810) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:390) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.initFileSystem(JavaKeyStoreProvider.java:89) at org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.<init>(AbstractJavaKeyStoreProvider.java:82) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:49) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:41) at org.apache.hadoop.security.alias.JavaKeyStoreProvider$Factory.createProvider(JavaKeyStoreProvider.java:100) at org.apache.hadoop.security.alias.CredentialProviderFactory.getProviders(CredentialProviderFactory.java:71) at org.apache.ranger.credentialapi.CredentialReader.getDecryptedString(CredentialReader.java:59) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.getFromJceks(RangerKeyStoreProvider.java:368) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.<init>(RangerKeyStoreProvider.java:84) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider$Factory.createProvider(RangerKeyStoreProvider.java:399) at org.apache.hadoop.crypto.key.KeyProviderFactory.get(KeyProviderFactory.java:95) at org.apache.hadoop.crypto.key.kms.server.KMSWebApp.contextInitialized(KMSWebApp.java:177) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.security.authentication.util.KerberosUtil.getDefaultRealm(KerberosUtil.java:88) at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:63) ... 31 more Caused by: KrbException: Cannot locate default realm at sun.security.krb5.Config.getDefaultRealm(Config.java:1029) ... 37 more java.lang.IllegalArgumentException: Can't get Kerberos realm at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:65) at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:306) at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:291) at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:846) at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:816) at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:689) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2954) at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2944) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2810) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:390) at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.initFileSystem(JavaKeyStoreProvider.java:89) at org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.<init>(AbstractJavaKeyStoreProvider.java:82) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:49) at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:41) at org.apache.hadoop.security.alias.JavaKeyStoreProvider$Factory.createProvider(JavaKeyStoreProvider.java:100) at org.apache.hadoop.security.alias.CredentialProviderFactory.getProviders(CredentialProviderFactory.java:71) at org.apache.ranger.credentialapi.CredentialReader.getDecryptedString(CredentialReader.java:59) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.getFromJceks(RangerKeyStoreProvider.java:368) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.<init>(RangerKeyStoreProvider.java:85) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider$Factory.createProvider(RangerKeyStoreProvider.java:399) at org.apache.hadoop.crypto.key.KeyProviderFactory.get(KeyProviderFactory.java:95) at org.apache.hadoop.crypto.key.kms.server.KMSWebApp.contextInitialized(KMSWebApp.java:177) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.security.authentication.util.KerberosUtil.getDefaultRealm(KerberosUtil.java:88) at org.apache.hadoop.security.HadoopKerberosName.setConfiguration(HadoopKerberosName.java:63) ... 31 more Caused by: KrbException: Cannot locate default realm at sun.security.krb5.Config.getDefaultRealm(Config.java:1029) ... 37 more [EL Severe]: ejb: 2025-06-04 16:11:57.703--ServerSession(987689800)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Access denied for user 'rangerkms'@'uc-hb2-zqkj-hadoop-hdp-node01' (using password: YES) Error Code: 1045 javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Access denied for user 'rangerkms'@'uc-hb2-zqkj-hadoop-hdp-node01' (using password: YES) Error Code: 1045 at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:766) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:204) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:304) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:336) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:302) at org.apache.ranger.kms.dao.DaoManager.getEntityManager(DaoManager.java:44) at org.apache.hadoop.crypto.key.RangerKMSDB.initDBConnectivity(RangerKMSDB.java:116) at org.apache.hadoop.crypto.key.RangerKMSDB.<init>(RangerKMSDB.java:81) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.<init>(RangerKeyStoreProvider.java:86) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider$Factory.createProvider(RangerKeyStoreProvider.java:399) at org.apache.hadoop.crypto.key.KeyProviderFactory.get(KeyProviderFactory.java:95) at org.apache.hadoop.crypto.key.kms.server.KMSWebApp.contextInitialized(KMSWebApp.java:177) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Access denied for user 'rangerkms'@'uc-hb2-zqkj-hadoop-hdp-node01' (using password: YES) Error Code: 1045 at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:331) at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:326) at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:138) at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162) at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.setOrDetectDatasource(DatabaseSessionImpl.java:204) at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:741) at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:239) at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:685) ... 20 more Caused by: java.sql.SQLException: Access denied for user 'rangerkms'@'uc-hb2-zqkj-hadoop-hdp-node01' (using password: YES) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3970) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3906) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873) at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1710) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:208) at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:98) ... 25 more java.io.IOException: Master Key Jceks does not exists at org.apache.hadoop.crypto.key.RangerKeyStoreProvider.<init>(RangerKeyStoreProvider.java:92) at org.apache.hadoop.crypto.key.RangerKeyStoreProvider$Factory.createProvider(RangerKeyStoreProvider.java:399) at org.apache.hadoop.crypto.key.KeyProviderFactory.get(KeyProviderFactory.java:95) at org.apache.hadoop.crypto.key.kms.server.KMSWebApp.contextInitialized(KMSWebApp.java:177) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) ERROR: Hadoop KMS could not be started REASON: java.lang.NullPointerException Stacktrace: --------------------------------------------------- java.lang.NullPointerException at org.apache.hadoop.crypto.key.kms.server.KMSWebApp.contextInitialized(KMSWebApp.java:178) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1694) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1684) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) ---------------------------------------------------
06-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值