将war部署到weblogic版本(weblogic 12.2.1.3)时,Spring Integration应用程序部署失败
Posted
技术标签:
【中文标题】将war部署到weblogic版本(weblogic 12.2.1.3)时,Spring Integration应用程序部署失败【英文标题】:Spring Integration application deployment fails when deploy war to weblogic version (weblogic 12.2.1.3) 【发布时间】: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/… 再次感谢。 好。随时为您自己的问题添加答案,以帮助社区中的其他人。 【参考方案1】:我通过阅读这篇文章 (https://o7planning.org/11901/deploy-spring-boot-application-on-oracle-weblogic-server) 找到了解决方案,似乎 weblogic 加载了一些已过时且与当前版本的 spring boot 不兼容的库 (com.fastxml.*)。
【讨论】:
以上是关于将war部署到weblogic版本(weblogic 12.2.1.3)时,Spring Integration应用程序部署失败的主要内容,如果未能解决你的问题,请参考以下文章
基于ant自动部署ear/war 文件到weblogic12c