HibernateException:在为 GWT 使用 HTTPS 时无法实例化方言 class

HibernateException: Could not instantiate dialect class when using HTTPS for GWT

我不知道这是否真的与我让服务器使用 SSL 这一事实有关,但这是我所做的唯一更改。

这是两个参数列表:

无 SSL:

-superDevMode -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -startupUrl index.html -logLevel INFO -codeServerPort 9997 -port 8888 -server com.google.appengine.tools.development.gwt.AppEngineLauncher -war E:\java\mahlzeit-web\mahlzeit-web\war com.mahlzeit.web.Mahlzeit_web_server

此处使用 SSL:

-superDevMode -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -startupUrl index.html -logLevel INFO -codeServerPort 9997 -port 8888 -server com.google.appengine.tools.development.gwt.AppEngineLauncher -war E:\java\mahlzeit-web\mahlzeit-web\war com.mahlzeit.web.Mahlzeit_web_server -server :ssl com.mahlzeit.web.Mahlzeit_web_server

如果我 运行 使用 SSL 我会收到以下错误:

org.hibernate.HibernateException: Could not instantiate dialect class
    at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:82)
    at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:64)
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:148)
    ...
Caused by: java.lang.ClassCastException: org.hibernate.dialect.MySQLDialect cannot be cast to org.hibernate.dialect.Dialect
    at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect(DialectFactoryImpl.java:73)
    ... 33 more

我真的不知道 这个 与 SSL 有什么关系,但是你去..我期待得到启发..

当你使用-server :ssl时,你不再使用AppEngineLauncher,所以class加载是不同的;使用 class 路径的父 class 加载程序(AppEngine 使用 WEB-INF/{classes,lib});这就是导致 ClassCastException.

的原因

尝试从 DevMode class路径中删除服务器依赖项作为起点;仅将它们留在 WEB-INF/lib.