【发布时间】:2021-12-02 01:05:43
【问题描述】:
应用程序在 IDE 上运行良好,当我将它作为 jar 运行时 当我在 weblogic 服务器上部署应用程序时发生异常。
我什至尝试排除 spring-starter-json 并用 gson 替换它,但我遇到了同样的问题。
这是堆栈跟踪
weblogic.application.ModuleException: java.lang.VerifyError: Bad return type
Exception Details:
Location:
com/fasterxml/jackson/databind/cfg/MapperBuilder.streamFactory()Lcom/fasterxml/jackson/core/TokenStreamFactory; @7: areturn
:
Type 'com/fasterxml/jackson/core/JsonFactory' (current frame, stack[0]) is not assignable to 'com/fasterxml/jackson/core/TokenStreamFactory' (from method signature)
Current Frame:
bci: @7
flags: { }
locals: { 'com/fasterxml/jackson/databind/cfg/MapperBuilder' }
stack: { 'com/fasterxml/jackson/core/JsonFactory' }
Bytecode:
0x0000000: 2ab4 0002 b600 08b0
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
Truncated. see log file for complete stacktrace
【问题讨论】:
-
为什么需要 WebLogic?如果您在本地使用它,您应该部署一个可执行的 JAR。将 Spring Boot 应用程序部署到 Java EE 应用程序服务器需要将其打包为 WAR 文件,但没有理由这样做。 Spring Boot 只需要一个可执行的 JAR。
-
这与 Spring Integration 无关。请在提问时更加具体。看起来您以某种方式将我们的 WebLogic 类路径与您的 Jackson 依赖项搞混了。也许您需要以某种方式在 WebLogic 上使用父子类加载器。在这些 EE 服务器上,即使它们已经过时,它们也会规定必须使用哪些库,这一直是一个问题。
-
谢谢@duffymo,部署平台我公司已经设置好了。
-
感谢@ArtemBilan 指出我在哪里寻找解决方案,我通过关注这篇文章成功了o7planning.org/11901/… 再次感谢。
-
好。随时为您自己的问题添加答案,以帮助社区中的其他人。
标签: spring-boot weblogic12c jackson-databind