我有一个传统的代码库,一个在Glassfish3上运行的Java应用程序。它部署&在两个应用服务器上运行良好,当我到达时已经在那里.我试图设置一个本地实例,使用Docker。当我在Docker Glassfish中部署WAR时,它部署得很好。当我试图打开登录页面时,它抛出了一个异常(来自JSP编译)。
"java.lang.String不能转换为org.slf4j.Marker"
除了建议在编译过程中启用调试& verbose标志外,没有更多的信息。
同样的war部署&在现有的应用服务器上运行,没有这个错误。
我猜测是有一个我不知道的配置差异。另一个角度我在看的是应用服务器提供的日志器实现。不管是哪种方式--到目前为止,我还没能弄清楚实例之间的差异,甚至没能弄清楚配置deployment的差异。
Java EE并不是我的自然栖息地,所以如果有任何关于我应该看什么的想法,我将非常感激。
为了将来的参考--解决方案是在代码库中搜索日志warnerrorinfodebugtrace调用的参数超过3个,并将它们从("...","...","...","...","...","...","...")改为("...",new Object[]{"...","...","..."})。