spring-mvc 集成 activeMq 常见问题 + 解决方案 (仅供参考)
最近整合 spring-mvc 和 activeMq ,出现了几个异常,我把他记录下来,具体的原理分析我就不太会写了,只把详细情况和解决方案给出来,希望对各位老铁有所帮助!
问题1:缺少log4j的配置文件
异常信息:出现以下的内容时,可能就是你没有配置 log4j 了。
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
解决方案:
在你的WEB-INF 目录下面,添加配置文件 log4j.properties 文件, 文件配置参考如下:
log4j.rootLogger=info, Console, err log4j.logger.play=DEBUG # Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.encoding=UTF-8
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern={ "time": "%d{yyyy-MM-dd HH:mm:ss}", "level": "%p", %m }%n log4j.appender.err = org.apache.log4j.DailyRollingFileAppender
log4j.appender.err.encoding=UTF-8
log4j.appender.err.File = logs/appName_error.log
log4j.appender.err.Append = True
log4j.appender.err.Threshold = ERROR
log4j.appender.err.layout = org.apache.log4j.PatternLayout
log4j.appender.err.layout.ConversionPattern = { "time": "%d{yyyy-MM-dd HH:mm:ss}", "level": "%p", %m }%n
log4j.additivity.err=false log4j.appender.info = org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.encoding=UTF-8
log4j.appender.info.File = logs/appName.log
log4j.appender.info.Append = True
log4j.appender.info.Threshold = INFO
log4j.appender.info.layout = org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern = { "time": "%d{yyyy-MM-dd HH:mm:ss}", "level": "%p", %m }%n
然后在你的 web.xml 里面添加 context-param, 代码如下
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
问题2:缺少对xml 文件的 schemaLocation 设置
异常内容:
applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 14;
columnNumber: 61; cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。
解决方案:
保证自己的schemaLocation 中的元素与xmlns 一致,并版本号,如果无法确定版本号是,默认用当前版本spring的。如我的 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
"> <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<!-- 配置扫描路径 -->
<context:component-scan base-package="com.spring.mvc.*">
<!-- 只扫描Service,也可以添加Repostory,但是要把Controller排除在外,Controller由spring-mvc.xml去加载 -->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan> </beans>
如果我将 『
http://www.springframework.org/schema/contex
http://www.springframework.org/schema/context/spring-context.xsd
』
注释掉,就会出现以上异常!
问题3:无法注入元素
异常内容:
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from file
[/Users/zeopean/IdeaProjects/springJms/target/springJms/WEB-INF/classes/spring/applicationContext-ActiveMQ.xml];
nested exception is org.springframework.beans.FatalBeanException: NamespaceHandler class
[org.apache.xbean.spring.context.v2.XBeanNamespaceHandler] for namespace
[http://activemq.apache.org/schema/core] not found;
nested exception is java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
解决方案:
这个问题困扰了我挺长时间的,后面通过谷歌,我发现原来是我的mvn 少了一个库,所以,添加上就好了。具体如下
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
<version>4.6</version>
</dependency>
问题4:无法加载ApplicationContext-ActiveMq.xml 配置文件
异常信息:
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'consumerService':
Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No bean named 'jmsTemplate' available
问题分析:
我在设置 contextConfigLocation 时,错误的写错了这样子。对!就是 classpath:spring/applicationContext.xml 少了个 * 号
,这样子是没办法加载到 ApplicationContext-ActiveMq.xml的,因为总要有地方引入,配置才能注入成功嘛!
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring/applicationContext.xml
</param-value>
</context-param>
解决方案:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring/applicationContext*.xml
</param-value>
</context-param>
好了,就到这里,希望能大家不要踩到这些坑!
spring-mvc 集成 activeMq 常见问题 + 解决方案 (仅供参考)的更多相关文章
- Spring MVC集成slf4j-logback
转自: Spring MVC集成slf4j-logback 1. Spring MVC集成slf4j-log4j 关于slf4j和log4j的相关介绍和用法,网上有很多文章可供参考,但是关于logb ...
- 在Spring下集成ActiveMQ
1.参考文献 Spring集成ActiveMQ配置 Spring JMS异步发收消息 ActiveMQ 2.环境 在前面的一篇ActiveMQ入门实例中我们实现了消息的异步传送,这篇博文将如何在spr ...
- 【ActiveMQ】Spring Jms集成ActiveMQ学习记录
Spring Jms集成ActiveMQ学习记录. 引入依赖包 无论生产者还是消费者均引入这些包: <properties> <spring.version>3.0.5.REL ...
- spring mvc集成freemarker使用
freemarker作为视图技术出现的比velocity早,想当年struts风靡一时,freemarker作为视图层也风光了一把.但现在velocity作为后起之秀的轻量级模板引擎,更容易得到青睐. ...
- spring mvc集成velocity使用
目前流行的三大页面视图神器是:老牌大哥jsp.后起之秀freemarker和velocity.这里不详细比较这三者的优劣,总体来说,jsp是标配,但后面两个更严格的执行了视图与业务的分离,页面里是不允 ...
- spring boot集成activemq
spring boot集成activemq 转自:https://blog.csdn.net/maiyikai/article/details/77199300
- Spring boot 集成ActiveMQ(包含双向队列实现)
集百家之长,成一家之言. 1. 下载ActiveMQ https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/5.15.9/apache-activ ...
- spring mvc 集成freemarker模板
主要使用到的jar 文件:spring mvc +freemarker.jar 第一步:spring mvc 集成 freemarker <!-- 定义跳转的文件的前后缀 ,视图模式配置--&g ...
- jdk1.8+SpringAOP注解报java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut select错误的不知原因的解决办法[仅供参考]
先说办法:如果Aspectweaver-1.*.*jar这三个包版本比较低, 比如1.5.0这一层次的,可以找版本高一点的包替换低版本的包,问题可以得到解决 jar包的下载地址:https://mvn ...
随机推荐
- 关于xlrd处理合并单元格
先埋个雷, 最近在做通过excel读取接口测试用例~ 流程等都是自己制定的,打算做完了之后放到GitHub上去哈哈哈. 正式进入正题~ 在写这个框架的时候,遇到了一个问题,就是同一个接口,需要为他准备 ...
- Git 用户名和邮箱
用户名邮箱的作用 用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变. 每次commit都会用用户名和邮箱纪录. github的contributions统计就是按邮箱来统计的. 查看用 ...
- java I/O框架 (二)文件操作(File)
1.介绍 java io中最常操作的就是我们电脑中的文件,将这些文件以流的形式本地读写,或者上传到网络上.java中的File类就是对这些存储于磁盘上文件的虚拟映射,这也体现了java面向对象的思想, ...
- armlinux下的网路传输(tcp/ip)
/*ex2serv.c*/ #include <time.h> #include<stddef.h> #include <stdio.h> #include < ...
- linux命令之 ifconfig
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- eclipse和android studio的爱恨情仇
Eclipse,以下简称ES(自己起的,不喜勿喷):Android studio,以下简称AS(都这么叫的啦)! 2000年,IBM怀胎24个月,终于产生了Eclipse,当时ES的诞生只是为了解决I ...
- class-逻辑回归与最大熵模型
我们知道,线性回归能够进行简单的分类,但是它有一个问题是分类的范围问题,只有加上一个逻辑函数,才能使得其概率值位于0到1之间,因此本次介绍逻辑回归问题.同时,最大熵模型也是对数线性模型,在介绍最大熵模 ...
- 第一个bug
话不多说自己遇到的第一个小程序bug 需要渲染渲染多重元素,这个没什么.but当你要获取这个大样式的id进行各种操作时,你需要每一个子节点都加上data-=""属性这样就很麻烦了, ...
- CentOS7安装dnf报错:No package dnf available
1.百度中提供的安装办法 yum install epel-release -y yum install dnf 2. No package dnf available解决办法 运行一下几个命令: w ...
- 【BZOJ1030】文本生成器(AC自动机,动态规划)
[BZOJ1030]文本生成器(AC自动机,动态规划) 题面 BZOJ 题解 超级简单良心送分题 很明显是所有状态-不合法状态 合法状态就是\(26^m\) 不合法状态做一个\(dp\)就好 #inc ...