【发布时间】:2018-02-01 19:34:26
【问题描述】:
我有一个运行良好的GWT webapp -- 除非我把它放在Marathon-LB 负载平衡器后面并使用HTTPS。
失败发生在 POST 前后。
- 当 webapp 不在
Marathon-LB后面时,POST 会得到 200 OK。 - 但是当它在
Marathon-LB后面时,会出现GWTSerializationException的内部服务器错误,并且POST会得到500错误。
对于失败的情况,tomcat的服务器日志中的stacktrace是这样的。注意线程是https-jsse-nio-8080-exec-6
01-Feb-2018 18:43:39.863 SEVERE [https-jsse-nio-8080-exec-6] org.apache.catalina.core.ApplicationContext.log Exception while dispatching incoming RPC call
com.google.gwt.user.client.rpc.SerializationException: Type 'com.company.SomeGwtSerializableClass' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializ
able' and did not have a custom field serializer.For security purposes, this type will not be serialized.: instance = com.company.SomeGwtSerializableClass@6ce9a6c9
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:667)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:130)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:153)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:587)
我怀疑问题出在运行 Marathon-LB 的 docker 容器和运行 Tomcat 为 webapp 服务的 docker 容器之间的信任证书。
关于如何调试这个有什么建议吗?例如,我如何确定 Marathon-LB 容器信任 webapp 容器?
谢谢!
【问题讨论】:
-
在 Marathon-LB 之后,您是否通过不同的 URL 访问该应用程序?
-
是的,网址不同。
标签: gwt mesos marathon mesosphere jsse