`
weitao1026
  • 浏览: 1062588 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

因为多个jar可能记录日志信息时,日志模块,不知道需要用那个jar包

阅读更多

今天在用solr4.3和web项目结合的时候,出了一个莫名的异常就是,我无论用solrj向solr服务添加数据,总是报如下的一个异常

Java代码 复制代码 收藏代码
  1. 六月 182013 8:33:12 下午 org.apache.solr.client.solrj.impl.HttpClientUtil createClient  
  2. 信息: Creating new http client, config:maxConnections=128&maxConnectionsPerHost=32&followRedirects=false  
  3. Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V  
  4.     at org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133)  
  5.     at org.apache.http.client.protocol.RequestAuthCache.process(RequestAuthCache.java:78)  
  6.     at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:109)  
  7.     at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:176)  
  8.     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:520)  
  9.     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)  
  10.     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)  
  11.     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)  
  12.     at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:352)  
  13.     at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)  
  14.     at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:117)  
  15.     at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:116)  
  16.     at org.apache.solr.client.solrj.SolrServer.addBean(SolrServer.java:136)  
  17.     at org.apache.solr.client.solrj.SolrServer.addBean(SolrServer.java:125)  
  18.     at solr.impl.SolrServiceImpl.addIndex(SolrServiceImpl.java:61)  
  19.     at solr.impl.SolrServiceImpl.main(SolrServiceImpl.java:35)  
六月 18, 2013 8:33:12 下午 org.apache.solr.client.solrj.impl.HttpClientUtil createClient
信息: Creating new http client, config:maxConnections=128&maxConnectionsPerHost=32&followRedirects=false
Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
	at org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133)
	at org.apache.http.client.protocol.RequestAuthCache.process(RequestAuthCache.java:78)
	at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:109)
	at org.apache.http.protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:176)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:520)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
	at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:352)
	at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)
	at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:117)
	at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:116)
	at org.apache.solr.client.solrj.SolrServer.addBean(SolrServer.java:136)
	at org.apache.solr.client.solrj.SolrServer.addBean(SolrServer.java:125)
	at solr.impl.SolrServiceImpl.addIndex(SolrServiceImpl.java:61)
	at solr.impl.SolrServiceImpl.main(SolrServiceImpl.java:35)






这个问题我找了半天原因,也请教了好多高手,结果都不理想,因为solr4.3的部署,它的日志模块与整体的配置已经分离了,所以如果你还是按照4.2的之前的配置去启动这个solr服务那么肯定不会成功的,需要额外在配置日志模块才可以,对于这个我在这里简单说明一下,从官网下载的solr4.3的解压包里面找到例子下面的lib/ext包将其下面的所有jar包拷贝到tomcat的lib中或者拷贝到solr的webinfo/lib都可以,最后再把例子中的log4j文件拷贝到webinfo中


言归正传,关于上面的那个错误,其实因为多放了slf4j-log4j12-1.6.6.jar包导致,如果你仔细看日志信息的话就会发现有一个信息提示,在你的项目中发现了多个slf4j-log4j12-1.6.6.jar包,另外一点在hibernate中的也有一个日志jar包slf4j-log4j12-1.5.8.jar只要放的位置不冲突即可,

Java代码 复制代码 收藏代码
  1. SLF4J: Class path contains multiple SLF4J bindings.  
  2. SLF4J: Found binding in [jar:file:/F:/eclipse10tomcat/lib/slf4j-log4j12-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  3. SLF4J: Found binding in [jar:file:/F:/eclipse10tomcat/webapps/Search/WEB-INF/lib/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  4. SLF4J: Found binding in [jar:file:/F:/eclipse10tomcat/webapps/Search/WEB-INF/lib/slf4j-log4j12-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  5. SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.  
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/F:/eclipse10tomcat/lib/slf4j-log4j12-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/F:/eclipse10tomcat/webapps/Search/WEB-INF/lib/slf4j-log4j12-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/F:/eclipse10tomcat/webapps/Search/WEB-INF/lib/slf4j-log4j12-1.6.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.



这个是异常的信息,OK,然后我们需要做的就是,按照上面的移除多余的jar包,即可,因为多个jar可能记录日志信息时,日志模块,不知道需要用那个jar包,记录所以就出现了最上面的那个异常问题,当我们把多余的jar包移除后(留一个即可),再启动tomcat这时候就不会出现那行信息了,至此,用solrj向solr服务添加数据,就可以成功了!

分享到:
评论

相关推荐

    springboot 多项目打包 jar包教程,包含源代码

    当多个jar包含相同类时,可能会发生类冲突。使用`maven-shade-plugin`或`shadow`插件的重命名功能,可以将冲突的类重命名为唯一的名字。 5. **配置主应用** 在最终的jar中,需要有一个主应用负责启动所有其他子...

    Linux部署springboot(springcloud)启动多个jar

    本篇文章将深入讲解如何在Linux环境下部署SpringBoot(SpringCloud)项目,并启动多个jar文件,以及如何通过shell脚本来实现日志管理和服务控制。 首先,SpringBoot是一个基于Spring框架的轻量级开发工具,它内置了...

    java的Logback日志框架jar包

    Logback 是一个在Java开发中广泛使用的日志记录框架,由Ceki Gülcü创造,他是之前流行的log4j框架的创始人。Logback是作为log4j的替代品设计的,它提供了更高的性能和更多的特性。这个压缩包包含了Logback框架的...

    spring-study-全日志输出的jar包

    这个特殊的jar包包含了多个Spring核心组件,如`spring-core.jar`, `spring-context.jar`, `spring-webmvc.jar`等,这些组件共同构成了Spring的强大功能。 首先,`spring-core.jar`是Spring框架的基础,它提供了核心...

    Logback框架需要的3个jar包和logback.xml文件

    Logback 是一个在Java应用程序中广泛使用的日志记录框架,它是对早期的log4j框架的一个升级和扩展。Logback 提供了高效、灵活的日志记录解决方案,支持多种日志级别,如DEBUG、INFO、WARN、ERROR等,帮助开发者调试...

    result接口jar包.rar

    Result接口的实现可能涉及异常处理、日志记录、数据验证等多个方面,这些功能都封装在JAR包中,使得其他开发者只需要关注自己的业务逻辑,而无需关心结果处理的细节。 总的来说,"result接口jar包.rar"提供了一个...

    调用JAR包外的配置文件

    这些功能或服务可能涉及到数据库连接、日志记录等,这就需要读取配置文件来获取相应的配置信息。然而,如果将配置文件打包到JAR包内部,不仅会给部署带来不便,还可能导致配置修改困难。因此,更常见的做法是让JAR包...

    java语言开发jar包_jar包_java_

    9. **代码混淆**:在发布商业软件时,开发者可能会使用JAR包进行代码混淆,以保护源码不被轻易逆向工程。 10. **多模块项目**:在大型项目中,可以将不同模块打包成独立的JAR,便于管理和部署。 在实际开发中,...

    巴巴运动需要的jar包

    这些jar包可能包括了数据库连接池、网络通信模块、加密算法、日志系统、JSON解析库等众多功能。巴巴运动的jar包很可能也是如此,提供了其系统运行所需的各种组件。 描述中的“好大呀”,可能意味着这个压缩包包含了...

    微信支付52个jar包

    - **日志记录**:如log4j.jar,帮助记录和调试程序运行时的日志信息。 此外,还有可能包含其他支持库,如Spring框架、Apache Commons库等,以提供更丰富的功能和便捷的开发体验。 总的来说,这52个jar包构成了一个...

    Logback日志框架第三方jar包 免费获取,我不收积分

    Logback是一款广泛应用于Java开发中的日志记录框架,由Ceki Gülcü创建,作为流行的log4j框架...通过正确地配置和使用这三个jar包,开发者可以方便地管理和控制应用程序的日志输出,从而提高开发效率和问题排查能力。

    slf4j的jar包(54个)

    如果多个绑定库同时存在,SLF4J会选择第一个找到的绑定,这可能导致不可预期的日志行为。 为了正确配置SLF4J,你需要在类路径中包含以下两个部分: - SLF4J的API jar(slf4j-api.jar) - 一个适当的绑定库,例如slf...

    发送短信所需jar包

    8. **日志记录**:为了方便调试和监控,jar包可能包含日志记录功能,如SLF4J或Log4j,允许开发者控制日志级别和输出。 9. **短信编码与解码**:考虑到短信编码格式的问题,jar包可能包含对Unicode、GB2312等编码的...

    rocketmq相关jar包.zip

    2. `rocketmq-common-4.7.0.jar`:这个jar包包含了RocketMQ的通用模块,提供了一些基础工具类和常量,如NameServer地址解析、配置管理、时间戳处理、线程池管理等。同时,它也包含了一些核心的数据结构,如Message...

    ssm的基本jar包

    下面将详细解释每个jar包的作用及其在SSM中的角色: 1. **aspectjweaver.jar**:这是AspectJ库的一部分,用于实现面向切面编程(AOP)。在Spring框架中,AOP常用于日志记录、事务管理、性能监控等,通过切面可以将...

    Logback所需的jar包

    免费获取Logback所需的jar包 打包合集 让你少走弯路 一.logback简介 1.logback: Logback是由log4j创始人设计的另一个开源日志组件。(好的日志记录方式可以提供我们足够多的定位错误的依据)。 2.主要有三个模块...

    Java常用jar包

    综上所述,Java的常用jar包覆盖了从数据库连接、日志记录、框架支持到测试等多个方面,它们是构建复杂Java应用的基础。正确选择和使用这些jar包,能够帮助开发者编写更高效、更易于维护的代码。在实际项目中,开发者...

    Spring使用AOP的三个jar包

    当Spring使用AOP时,如果选择使用AspectJ进行编译时或加载时织入,就需要这个jar包。织入是指将切面的代码插入到目标类的字节码中的过程,AspectJrt.jar使得这种操作成为可能。 其次,`aspectjweaver.jar`是AspectJ...

    开发用jar包整理

    以上只是部分可能包含的JAR文件,实际的“开发用jar包整理”可能会根据作者的需求包含更多其他库,如DAO框架(MyBatis, iBatis, Hibernate等),测试框架(JUnit, Mockito等),网络库(Apache HttpClient等),安全...

    logback所需jar包

    在使用Logback之前,首先需要在项目中引入必要的jar包。根据提供的压缩包文件名"logback所需jar包",我们可以推测这个压缩包包含了Logback运行所需的库文件。通常,这些文件包括`logback-classic.jar`, `logback-...

Global site tag (gtag.js) - Google Analytics