繁体   English   中英

应用程序在使用 Apache CXF 后开始使用 Logback

[英]Application starts using Logback after using Apache CXF

在我的应用程序中,一旦我添加了 SOAP 接口,它就会尝试使用Logback 由于我们没有Logback ,所以它抛出ClassNotFound异常。

我添加了以下依赖项:

<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
  <version>3.1.12</version>
</dependency>

而且我有以下日志记录的依赖性。

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

我添加了以下配置来配置端点。

@Configuration
public class WebServiceConfig {

    @Autowired
    private ReservationService reservationService;

    @Bean
    public Endpoint reservationEndpoint(){
        Endpoint endpoint = new EndpointImpl(getBus(), reservationService);
        endpoint.publish("/Reservation");
        return endpoint;
    }

    @Bean
    public Bus getBus() {
        return new SpringBus();
    }

}

在此之后,我收到以下错误:

Caused by: java.lang.ClassNotFoundException: ch.qos.logback.classic.joran.JoranConfigurator
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我无法找到使用Logback的方式。 另外,我将META-INF/cxf/org.apache.cxf.Logger配置为以下值: org.apache.cxf.common.logging.Slf4jLogger 尽管如此,它仍在使用Logback 早些时候,我的应用程序使用的是Log4j2 我想继续使用现有的日志系统。

在进一步调试中,我发现在运行时使用org.apache.cxf.common.logging.Slf4jLogger属性,我们可以控制日志记录 class。 我尝试org.slf4j.core.Logger和 log4j2 类。 他们面临没有此类方法异常的错误。

我想解决:

  1. 如何强制应用程序使用现有的日志系统?
  2. 即使它需要Logback依赖,如何使用Log4j2

为所有 spring-boot 启动器依赖项添加排除项,而不仅仅是 web

     <exclusions>
        <exclusion>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
      </exclusions>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM