我正在尝试Spring 3的@Scheduled注解。这是我的配置(app.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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd
"
>
<context:component-scan base-package="destiny.web"/>
<context:annotation-config/>
// other beans
<task:annotation-driven executor="myExecutor" scheduler="myScheduler"/>
<task:executor id="myExecutor" pool-size="5"/>
<task:scheduler id="myScheduler" pool-size="10"/>
</beans>
这是我的服务班级:
@Service
public class ServiceImpl implements Service , Serializable
{
//other injections
@Override
@Transactional
public void timeConsumingJob()
{
try
{
Thread.sleep(10*1000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
@Override
@Scheduled(cron="* * * * * ?")
public void secondly()
{
System.err.println("secondly : it is " + new Date());
}
}
当在我的eclispe + junit中进行测试时,它工作正常,当测试timeConsumingJob方法时,我可以看到secondly()继续输出消息。
但是,当部署到容器(Resin / 4.0.13)时,它会抛出:
[11-03-26 12:10:14.834] {main} org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Only one AsyncAnnotationBeanPostProcessor may exist within the context.
Offending resource: class path resource [app.xml]
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:72)
at org.springframework.scheduling.config.AnnotationDrivenBeanDefinitionParser.parse(AnnotationDrivenBeanDefinitionParser.java:82)
我搜索了但很少找到类似的情况,我认为这是最基本的设置,但不知道为什么它不起作用。
有人可以看看吗?非常感谢 !
(Spring 3.0.5 , Resin 4.0.13)
------------ updated ---------
在深入研究之后,我发现app.xml是由另一个xml导入的。也许这是导致task:annotation-driven
无法正常工作的原因。
好了,在重新安排了一些bean的位置之后,问题就解决了,但是我仍然感到困惑。(因为它工作正常,而other.xml在app.xml中需要bean)
应用程序上下文已初始化两次,但org.springframework.scheduling.config.AnnotationDrivenBeanDefinitionParser第二次注册bean ASYNC_ANNOTATION_PROCESSOR_BEAN_NAME失败。
我在单元测试中遇到了此问题,其中在父测试类和子测试类上都意外地使用了@ContextConfiguration(“ / path / to / applicationContext.xml”)(默认值为heritLocations true)。
我声明了以下变量: 我在静态方法中使用变量'日历',如下所示: 我得到以下声纳错误: 这是我的解决方案,但我不确定解决方案的质量是否足够好。 在这种情况下,我可以使用本地变量来代替类变量吗?或者有其他聪明的方法来解决这个问题。
我使用CXF2.7.5调用Web服务。我使用wsdl2java程序(在命令行MSDOS和maven中)生成了客户机类。我必须使用xmlbeans数据绑定,因为使用jaxb(默认数据绑定)时会出现一些错误,并且无法修改服务器端。因此,使用xmlbeans数据绑定参数,生成就可以了。 我用以下方法调用web方法: ... 当我调用webmethods时,它可以在简单的java程序上完美地工作,但在po
我编写了一些代码来验证用户是否可以登录到酒店预订平台&我还添加了一个验证步骤。我在方法上得到一个错误。代码中的其他内容都很好。 我做了一些研究,以寻求可能的解决办法。 下面是我在StackOverflow上找到的解决方案:Assert方法错误 删除绑定后,我得到了同样的错误-Microsoft.VisualStudio.TestTools.UnitTesting;使用nunit.framework
我的windows上存在颤振(v2.8.1)问题。 我正在尝试使用StreamBuilder类从Firebase获取数据,但无论如何都不起作用。我尝试使用BuildContext上下文,但它仍然在上下文上给我带来错误。 请看看我的代码,让我知道我做错了什么。感谢回答。提前感谢。 错误: 无法将参数类型“type”分配给参数类型“Widget”函数(BuildContext,AsyncSnapsho
问题内容: 当我在Chrome上浏览localhost jsp文件时,它显示“ Directory Listing For /”,有时确实显示了文件树。我在myeclipse上运行tomcat服务器时收到此错误,有关此错误如何发生的一些信息将不胜感激。 这是我的web.xml http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd“ version =”
我有一个使用spring hadoop的spring集成项目。我有一个Hbase模板,如下所示, 现在,当我最后关闭应用程序和上下文时,它会抛出一个奇怪的错误, o、 a.h.hbase。客户HConnectionManager:在列表中找不到连接,无法删除它(连接键=HConnectionKey{properties={hbase.zookeer.quorum=xxx.com,xxx.com,h