在尝试使用Glassfish 5.0使用JavaWeb项目时,我遇到了一个错误。每当它试图从我的SQL数据库中获取数据时,它都会给我带来这个错误。
StandardWrapperValveListadoPersonas: Servlet.service() for servlet ListadoPersonas抛出异常java.lang.NoClassDefFoundError: sun/security/ssl/HelloExtension
这里是servlet ListadoEstadosCiviles,在这里我调用了从数据库中返回数据的函数
GestorPersonas g = new GestorPersonas();
ArrayList<EstadoCivil> lista = g.obtenerEstadosCiviles();
for (EstadoCivil estadoCivil : lista) {
out.println("<tr><td>" + estadoCivil.getId() + "</td><td>" + estadoCivil.getNombre() + "</td></tr>");
}下面是GestorPersonas()构造函数:
public GestorPersonas() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(GestorPersonas.class.getName()).log(Level.SEVERE, null, ex);
}
}这是obtenerEstadosCiviles()方法
public ArrayList<EstadoCivil> obtenerEstadosCiviles() {
ArrayList<EstadoCivil> lista = new ArrayList<>();
try {
Connection conn = DriverManager.getConnection(CONN,USER,PASS);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select * from EstadosCiviles");
// Si el select devuelve una única fila, en lugar de while, se usa un if
while (rs.next()) {
int id = rs.getInt("id");
String nombre = rs.getString("nombre");
EstadoCivil ec = new EstadoCivil(id, nombre);
lista.add(ec);
}
rs.close();
st.close();
conn.close();
} catch (SQLException ex) {
Logger.getLogger(GestorPersonas.class.getName()).log(Level.SEVERE, null, ex);
}
return lista;
}我没有问题将java应用程序连接到sql,我认为问题在于glassfish,但我不知道为什么它不起作用。
这是调用obtenerEstadosCiviles()函数的servlet,我希望表中充满了数据
我所期望的:

更新
我刚刚检查了我的插件,它似乎是激活的Java和EE,但是“活动”符号没有显示为活动。这可能是问题的一部分吗?

发布于 2020-10-16 09:08:30
有着基本相同的问题,最终用这里的解决方案解决了。
在您的glassfish文件夹中,转到glassfish5/glassfish/modules/endorsed/并使用winrar或首选解拉器打开grizzly-npn-bootstrap.jar文件。
删除sun文件夹,然后再次运行您的程序。
https://stackoverflow.com/questions/64140616
复制相似问题