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
.
我不知道这是否真的与我让服务器使用 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
.