首页 > 解决方案 > Spring-boot方法不存在启动时错误

问题描述

我正在开发一个带有 rest-api 调用的基本 spring-boot 应用程序并将其部署在 jboss6.3 服务器中,但是从嵌入式 tomcat 服务器冲突中得到一个错误。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.panacea</groupId>
  <artifactId>Panacea-API-point</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>Panacea-API-point Maven Plugin</name>

  <!-- FIXME change it to the project's website -->
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
  </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
<!--        <relativePath /> lookup parent from repository -->
    </parent>

  <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
        </exclusions>
    </dependency>

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

控制台中的错误:


应用程序无法启动


描述:

试图调用不存在的方法。尝试是从以下位置进行的:

org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getDefaultLifecycleListeners(TomcatServletWebServerFactory.java:159)

以下方法不存在:

org.apache.catalina.core.AprLifecycleListener.isAprAvailable()Z

该方法的类 org.apache.catalina.core.AprLifecycleListener 可从以下位置获得:

jar:file:/D:/IDC/jboss-eap-6.3_JAXRS_1.6/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.3.3.CP/org/jboss/as/web/main/jbossweb-7.4.10.Final-redhat-1.jar!/org/apache/catalina/core/AprLifecycleListener.class
vfs:/D:/IDC/jboss-eap-6.3_JAXRS_1.6/standalone/deployments/Panacea.ear/Panacea-API-point-0.0.1-SNAPSHOT.war/WEB-INF/lib/tomcat-embed-core-9.0.21.jar/org/apache/catalina/core/AprLifecycleListener.class

它是从以下位置加载的:

jar:file:/D:/IDC/jboss-eap-6.3_JAXRS_1.6/modules/system/layers/base/.overlays/layer-base-jboss-eap-6.3.3.CP/org/jboss/as/web/main/jbossweb-7.4.10.Final-redhat-1.jar!/

行动:

更正应用程序的类路径,使其包含一个兼容的 org.apache.catalina.core.AprLifecycleListener 版本

标签: javarestspring-bootweb-servicesjboss

解决方案


推荐阅读