Spring DM 2.0 环境配置 解决Log4j问题

本文详细介绍了在搭建SpringDM2.0环境中遇到log4j问题的解决方法,包括引入相关jar、创建fragmentproject、添加log4j.properties文件等步骤,并解释了为何引入slf4j相关jar无法正常启动日志系统的原因。

image


搭建 spring dm 2.0 环境出的问题 log4j 的问题解决办法是


 一、引入SpringDM2.0的Bundle,最后完成如下图所示:



注意:要引入slf4j.api、slf4j.log4j、slf4j.org.apache.commons.logging与org.apache.log4j这四个是SpringDM日志处理的相关的jar。但是,仅引入这四个,此时的日志系统依然是不能正常启动的,详情看后文。

此时启动,将会报号如下警告:

   1. osgi> log4j:WARN No appenders could be found for logger (org.springframework.osgi.extender.internal.activator.ContextLoaderListener).  
   
2. log4j:WARN Please initialize the log4j system properly. 
这是表明日志系统依然没有正常启动。在经过一个晚上的折磨,终于在springDM2.0M1自带的sample中找到了解决方案,具体如下:

    1,创建一个fragment project;
      此时应该选择如下图所示的jar(com.springframesource.org.apache.log4j):

    2,添加log4j.properties;
    在刚刚新建好的fragment project项目的src目录下添加log4j.properties文件.

再次启动,OK,日志系统正常啦!启动信息如下:



顺便说明:本人在一开始引入springDM的Bundle的时候,把com.springsource.net.sf.cglib-2.1.3.jar也引入进来了,引起了一些奇怪的错误,记得不要引入它就OK了!


<?xml version="1.0" encoding="UTF-8"?> <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> <parent> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-spring-boot-parent</artifactId> <version>3.3.0-SNAPSHOT</version> </parent> <groupId>com.gdsyxk.school.cms</groupId> <artifactId>school-cms</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <name>school-cms</name> <!-- 配置中央仓库、私服第三方仓库、私服发布仓库 --> <repositories> <repository> <id>nexusGroup</id> <name>nexusGroup</name> <layout>default</layout> <url>http://192.168.31.32:8081/repository/maven-public/</url> <snapshots> <updatePolicy>always</updatePolicy> </snapshots> </repository> <!-- ⭐ 新增:Spring AI 相关仓库 --> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexusGroup</id> <url>http://192.168.31.32:8081/repository/maven-public/</url> </pluginRepository> </pluginRepositories> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>17</java.version> <easyexcel.version>3.1.1</easyexcel.version> <!-- ⭐ 新增:Spring AI Alibaba 版本 --> <spring-ai-alibaba.version>1.0.0-M2</spring-ai-alibaba.version> <netty.version>4.1.100.Final</netty.version> </properties> <dependencies> <!-- ========== 你原有的所有依赖保持不变 ========== --> <dependency > <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> <version>3.1.8</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <!--apache db工具库--> <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.7</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>${easyexcel.version}</version> <exclusions> <exclusion> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> </exclusion> <exclusion> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.1.0</version> </dependency> <dependency> <groupId>org.apache.xmlbeans</groupId> <artifactId>xmlbeans</artifactId> <version>5.0.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.1.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> <version>1.11.0</version> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-starter-web</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-shield</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-starter-knife4j</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-starter-redis-shiro</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-starter-mybatis-plus-atomikos</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-extension-system</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-extension-sso</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-extension-dm</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-extension-system-data</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-extension-file</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-extension-id-generator</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-extension-system-db-update</artifactId> </dependency> <dependency> <groupId>com.gdsyxk.bootside</groupId> <artifactId>bootside-extension-lincense</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.13</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <version>8.0.32</version> </dependency> <dependency> <groupId>com.oracle.ojdbc</groupId> <artifactId>ojdbc8</artifactId> <version>19.3.0.0</version> </dependency> <dependency> <groupId>cn.easyproject</groupId> <artifactId>orai18n</artifactId> <version>12.1.0.2.0</version> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>msbase.jar</artifactId> <version>1.0.0</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.dameng</groupId> <artifactId>DmJdbcDriver18</artifactId> <version>8.1.2.192</version> </dependency> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.8</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.17.2</version> </dependency> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.15.3</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.20</version> </dependency> <dependency> <groupId>com.hankcs</groupId> <artifactId>hanlp</artifactId> <version>portable-1.8.4</version> </dependency> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> <version>2.0.47</version> </dependency> <!-- ========== ⭐ 以下是新增的 Spring AI Alibaba 依赖 ========== --> <!-- Spring AI Alibaba DashScope Starter(核心依赖) --> <!-- 在 Spring AI 依赖处添加排除 --> <dependency> <groupId>com.alibaba.cloud.ai</groupId> <artifactId>spring-ai-alibaba-starter</artifactId> <version>${spring-ai-alibaba.version}</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-*</artifactId> </exclusion> </exclusions> </dependency> <!-- WebFlux支持(用于流式响应) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <!-- PDF 读取支持 --> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.29</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <!-- Netty BOM:统一管理所有 Netty 组件版本 --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-bom</artifactId> <version>${netty.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- 或者保持你现有的方式,但要确保覆盖所有相关组件 --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-resolver-dns</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-handler</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-codec-http</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-buffer</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> <version>${netty.version}</version> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <addResources>true</addResources> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>17</source> <target>17</target> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </path> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${mapstruct.version}</version> </path> </annotationProcessorPaths> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> </project> 这是我的pom文件,然后我启动项目的时候报了这个错误,怎么解决2025-10-09 12:00:26.669 ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter 40 report - *************************** APPLICATION FAILED TO START *************************** Description: An attempt was made to call a method that does not exist. The attempt was made from the following location: reactor.netty.transport.NameResolverProvider.newNameResolverGroup(NameResolverProvider.java:577) The following method did not exist: 'io.netty.resolver.dns.DnsNameResolverBuilder io.netty.resolver.dns.DnsNameResolverBuilder.socketChannelFactory(io.netty.channel.ChannelFactory, boolean)' The calling method's class, reactor.netty.transport.NameResolverProvider, was loaded from the following location: jar:file:/D:/goMaven/apache-maven-3.6.3/repository/io/projectreactor/netty/reactor-netty-core/1.1.23/reactor-netty-core-1.1.23.jar!/reactor/netty/transport/NameResolverProvider.class The called method's class, io.netty.resolver.dns.DnsNameResolverBuilder, is available from the following locations: jar:file:/D:/goMaven/apache-maven-3.6.3/repository/io/netty/netty-resolver-dns/4.1.100.Final/netty-resolver-dns-4.1.100.Final.jar!/io/netty/resolver/dns/DnsNameResolverBuilder.class The called method's class hierarchy was loaded from the following locations: io.netty.resolver.dns.DnsNameResolverBuilder: file:/D:/goMaven/apache-maven-3.6.3/repository/io/netty/netty-resolver-dns/4.1.100.Final/netty-resolver-dns-4.1.100.Final.jar Action: Correct the classpath of your application so that it contains compatible versions of the classes reactor.netty.transport.NameResolverProvider and io.netty.resolver.dns.DnsNameResolverBuilder
10-10
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值