Tôi mới làm quen với thế giới Java, khi tạo một ứng dụng web bằng NetBeans, mã hoạt động tốt cho đến khi phương thức get được thực thi nhưng khi tôi cố gắng thực thi truy vấn SQL, glassfish không thể hiển thị dữ liệu từ MSQL DB và đưa ra lỗi. Tôi đang sử dụng
Tôi mới làm quen với thế giới Java và trong khi tạo một ứng dụng web bằng mã NetBeans vẫn hoạt động tốt cho đến khi phương thức get được thực thi, khi tôi cố gắng thực thi một truy vấn SQL, glassfish không thể hiển thị dữ liệu từ MSQL DB và báo lỗi. tôi đang sử dụng
- Apache NetBeans IDE 18
- JDK20
- Cá thủy tinh 7.0.3
- MySQL 8.0 CE
- cửa sổ10
Trong dự án của tôi đã tạo một servlet có tên GreetingServlet.java, servlet này sẽ được thực thi để lấy dữ liệu từ cơ sở dữ liệu thư viện. Thư viện đang chạy. Nhưng mã của tôi đang hiển thị lỗi trong trình duyệt web như
Trong dự án của tôi, một Servlet có tên GreetingServlet.Java được tạo và sẽ được thực thi để lấy dữ liệu từ cơ sở dữ liệu thư viện. Thư viện đang chạy. Nhưng mã của tôi đang hiển thị lỗi trong trình duyệt web như
Trạng thái HTTP 500 - Lỗi máy chủ nội bộ
loại báo cáo ngoại lệ
messageLỗi máy chủ nội bộ
mô tảMáy chủ gặp lỗi nội bộ khiến không thể thực hiện yêu cầu này.
ngoại lệ
jakarta.servlet.ServletException: Servlet không thể hiển thị bản ghi.
nguyên nhân gốc rễ
java.sql.SQLNonTransientConnectionException: Không thể mở tệp:C:\Users\Subhranshu\glassfish7\glassfish\domains\domain1/config/keystore.jks [Keystore đã bị can thiệp hoặc mật khẩu không đúng]
nguyên nhân gốc rễ
com.mysql.cj.exceptions.SSLParamsException: Không thể mở tệp:C:\Users\Subhranshu\glassfish7\glassfish\domains\domain1/config/keystore.jks [Keystore đã bị can thiệp hoặc mật khẩu không đúng]
nguyên nhân gốc rễ
java.io.IOException: Keystore đã bị can thiệp hoặc mật khẩu không đúng
nguyên nhân gốc rễ
java.security.UnrecoverableKeyException: Xác minh mật khẩu không thành công
Vui lòng tìm mã của tôi:
Vui lòng tìm mã của tôi:
Kết nối con;
con = null;
Câu lệnh PreparedStatement = null;
Kết quả rs = null;
thử {
Class.forName("com.mysql.cj.jdbc.Driver");
con =DriverManager.getConnection
//("jdbc:mysql://127.0.0.1:3306/library","root","");
("jdbc:mysql://localhost:3306/library","root","");
stmt = con.prepareStatement("chọn * từ người dùng trong đó tên người dùng = ? và mật khẩu = ?");
stmt.setString(1, tên người dùng);
stmt.setString(2, mật khẩu);
rs = stmt.executeQuery();
Thêm câu trả lời
Làm cái này có thể giúp được không?
Điều này có thể hữu ích?
Khuyến nghị câu trả lời tuyệt vời
Trình điều khiển MySQL sử dụng kết nối bảo mật (SSL/TLS) theo mặc định, kết nối này không hoạt động ngay và cần phải cấu hình trong GlassFish.
Theo mặc định, trình điều khiển MySQL sử dụng các kết nối an toàn (SSL/TLS), kết nối này không có sẵn và yêu cầu một số cấu hình trong GlassFish.
Nếu bạn mới bắt đầu, tôi khuyên bạn nên tắt SSL trong trình điều khiển, với URL kết nối này:
Nếu bạn mới bắt đầu, tôi khuyên bạn nên tắt SSL trong trình điều khiển và URL kết nối như sau:
"jdbc:mysql://localhost:3306/library?useSSL=false"
“jdbc:mysql://localhost:3306/thư viện?useSSL=false”
Thêm câu trả lời
Chỉ để tham khảo, nếu bạn muốn sử dụng SSL, bạn cần chỉ định thuộc tính sau trong cấu hình JVM: -Djavax.net.ssl.keyStorePassword=thay đổi nó
, trong đó "changeit" là mật khẩu mặc định cho các kho lưu trữ chứng chỉ GlassFish và bạn cũng cần thêm khóa công khai từ máy chủ MySQL vào GlassFish để GlassFish tin cậy. Nhưng bạn chỉ cần thực hiện điều này trong sản xuất nếu bạn muốn bảo mật thông tin liên lạc giữa GlassFish và MySQL.
Cho bạn biết, nếu bạn muốn sử dụng SSL, bạn cần chỉ định thuộc tính sau trong cấu hình JVM: -Djavax.net.ssl.keyStorePassword=changeit, trong đó "changeit" là mật khẩu mặc định cho kho chứng chỉ GlassFish, bạn cũng sẽ cần để thay đổi mật khẩu trong máy chủ MySQL Thêm khóa chung vào GlassFish để GlassFish tin tưởng nó. Tuy nhiên, nếu muốn bảo mật liên lạc giữa GlassFish và MySQL, bạn chỉ cần thực hiện việc này trong quá trình sản xuất.
Bạn sẽ cần phải thêm giấy chứng nhận từ máy chủ MySQL vào kho lưu trữ đáng tin cậy của Glassfish, nếu nó không được CA ký.
Nếu chứng chỉ không được CA ký, bạn sẽ cần thêm chứng chỉ từ máy chủ MySQL vào kho tin cậy của GlassFish.
Vâng, xin lỗi, ý tôi là chứng chỉ chứ không phải khóa công khai.
Vâng, xin lỗi, ý tôi là chứng chỉ chứ không phải khóa chung.
Tôi là một lập trình viên xuất sắc, rất giỏi!