开发者社区> 问答> 正文

OSS java sdk 集成 报错,Log4j 加载失败!

我项目使用的是  log4j 2   ,跟踪到 Could not initialize class com.aliyun.oss.common.utils.LoggerUtils  ,出错是什么情况??...

展开
收起
joveqiao 2015-11-17 14:05:14 14373 0
2 条回答
写回答
取消 提交回答
  • ReOSS java sdk 集成 报错,Log4j 加载失败!
        /**
         * Send HTTP request with specified context to oss and wait for HTTP response.
         */
        public ResponseMessage sendRequest(RequestMessage request, ExecutionContext context)
                throws ServiceException, ClientException {

            assertParameterNotNull(request, "request");
            assertParameterNotNull(context, "context");

            try {
                return sendRequestImpl(request, context);
            } finally {
                // Close the request stream as well after the request is completed.
                try {
                    request.close();
                } catch (IOException ex) {
                    logException("Unexpected io exception when trying to close http request: ", ex);
                   throw new ClientException("Unexpected io exception when trying to close http request: ", ex);
                }
            }
        }


    跟踪到这块代码报错!!!求大神解答

    -------------------------

    ReOSS java sdk 集成 报错,Log4j 加载失败!
    咋个办 。。 我想用 log4j2 ,

    -------------------------

    回 1楼莫名的帖子
    咋个办 。。 我想用 log4j2 ,我只能切换回 1.2 版本? 和 SDK 一致? 可以兼容 我的版本吗?

    -------------------------

    回 7楼莫名的帖子
    ....  哦,好吧,期待下一个版本

    -------------------------

    回 7楼莫名的帖子
    谢谢了哦~

    -------------------------

    回 10楼莫名的帖子
       就知道大神有办法~

    -------------------------

    ReOSS java sdk 集成 报错,Log4j 加载失败!
    确实,完美运行,谢谢大神    

    请你吃肉  
    2015-11-17 15:09:10
    赞同 展开评论 打赏
  • 回 楼主(joveqiao) 的帖子
    看上去是log4j包冲突的问题,Java SDK内部依赖了log4j 1,两个不同版本不能共存。

    -------------------------

    回 楼主(joveqiao) 的帖子
    使用maven命令:mvn dependency:tree -Dverbose -Dincludes=asm:asm
    检查下jar冲突的情况

    -------------------------

    回 3楼(joveqiao) 的帖子
    是的,这个地方使用了log4j 1打日志,SDK直接使用log4j记录日志存在不合理之处,可能会影响到用户的日志配置文件,下个版本将使用通用的日志系统common-longging,用户可以根据根据自己的需要选择日志系统覆盖默认配置。目前版本还无法做到与log4j 2兼容,深表抱歉。

    -------------------------

    回 5楼(joveqiao) 的帖子
    稍等,我尝试下是否能够规避掉log4j冲突的问题

    -------------------------

    回 11楼(joveqiao) 的帖子

    试了一下,把log4j 1的依赖加上去运行正常,配置如下:
           <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>2.0.6</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-web</artifactId>
                <version>2.4.1</version>
             </dependency>

    lz试下是否可以?

    -------------------------

    回 12楼(莫名) 的帖子
    检查了一下,其实log4j 1跟log4j 2并不冲突,是因为SDK依赖的log4j 1被exclude掉了,以至于找不到log4j相关的类。

    -------------------------

    回 13楼(莫名) 的帖子
    这样的话,相当于Java SDK使用log4j 1,而你自己的程序继续使用log4j 2
    2015-11-17 14:40:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载