将 Spring Boot 部署到 weblogic 12

Kir*_*ill 5 java weblogic12c spring-boot

我已经使用 start.spring.io 创建了一个应用程序(spring boot 1.5.6)并尝试将其部署到 Weblogic 12.1.3.0.0。
管理控制台中的消息:

错误 无法访问选定的应用程序。
错误 java.io.IOException
错误 weblogic.utils.compiler.ToolFailureException

日志中的消息:
<23.08.2017 13:40:26 GMT+03:00> <Error> <J2EE> <BEA-160228> <AppMerge failed to merge your application. If you are running AppMerge on the command-line, merge again with the -verbose option for more details. See the error message(s) below.>

这些链接没有帮助:
https:
//docs.spring.io/spring-boot/docs/1.5.x/reference/html/howto-traditional-deployment.html 在 Weblogic 中部署 Spring Boot 应用程序

更新:
问题是依赖 JAX-RS。没有它应用程序部署成功。不确定如何使用此依赖项
更新 x2:
删除 Jax-rs,现在:
java.lang.NoSuchMethodError:org.springframework.core.annotation.AnnotationAwareOrderComparator.sort(Ljava/util/List;)V
已解决

小智 6

我们的团队开始使用Spring Boot 2.0.0,我们也遇到了这个问题。

经过一番调查,我们发现AppMerge工具在部署之前会扫描所有类。

根本原因:

  • WebLogic 12.1.3.* 的情况下,由于Multi-Release JAR Files失败。
  • AppMerge工具无法处理JDK 9文件。

解决方案:

  • 使用Log4j 2.8.2

pom.xml 中

<?xml version="1.0" encoding="UTF-8"?>
<project>
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.0.0.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>
   ...
   <properties>
      ...
      <log4j2.version>2.8.2</log4j2.version>
      ...
   </properties>
   ...
</project>
Run Code Online (Sandbox Code Playgroud)