昨天用spring做了个定时器,用于定时扫描某通讯公司外网ftp服务器的约定路径下是否有我需要的文件并下载到本公司服务器上。记得以前做过类似的一个定时器,觉得手到擒来的事情,没想到又折腾了大半天,就是因为spring中commons-attributes-compiler.jar的使用问题。

   问题是这样的:扫面和下载程序,触发类和函数,web.xml和spring配置文件,这些准备工作都已经完成,就是在服务器启动的时候报错:

INFO: Deploying web application archive GRCC.war 
Sep 14, 2007 13:22:18 AM org.apache.catalina.util.ExtensionValidator validateManifestResources 
INFO: ExtensionValidator[/GRCC][commons-attributes-api.jar]: Required extension "ant" not found. 
Sep 14, 2007 13:22:18 AM org.apache.catalina.util.ExtensionValidator validateManifestResources 
INFO: ExtensionValidator[/GRCC][commons-attributes-compiler.jar]: Required extension "ant" not found. 
Sep 14, 2007 13:22:18 AM org.apache.catalina.util.ExtensionValidator validateManifestResources 
INFO: ExtensionValidator[/GRCC][commons-attributes-compiler.jar]: Required extension "javadoc" not found. 
Sep 14, 2007 13:22:18 AM org.apache.catalina.util.ExtensionValidator validateManifestResources 
INFO: ExtensionValidator[/GRCC]: Failure to find 3 required extension(s). 
   Sep 14, 2007 13:22:18 AM org.apache.catalina.core.StandardContext start 
SEVERE: Error getConfigured 
Sep 14, 2007 13:22:18 AM org.apache.catalina.core.StandardContext start 
SEVERE: Context [/GRCC startup failed due to previous errors 
Sep 14, 2007 13:22:18 AM org.apache.catalina.core.StandardContext stop 
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/GRCC] has not been started
并导致本项目无法启动!
    从错误可以看出,commons-attributes-compiler.jar需要的"ant","javadoc","qdox"无法找到,我又检查了数遍,ant和qdox这些jar包我都已经加lib里了,可spring就是视而不见!我郁闷了好久,最后实在不行了,我决定解压commons-attributes-compiler.jar,看看它的庐山真面目,里面还真不复杂:META-INF\MANIFEST.MF,compile\org\apache\commons\attributes\anttasks.properties,LICENSE.txt,,
NOTICE.txt,后两个肯定是说明性的文件,我没有理会;第二个是属性文件,我看格式和注释都没有什么不妥;就MANIFEST.MF里面内容较多,并且有异常之处(我标出了):

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.3 
Created-By: Apache Maven
Built-By: hen
Package: org.apache.commons.attributes.compiler
Build-Jdk: 1.4.2_05
Extension-Name: commons-attributes-compiler
Specification-Title: Attribute Compiler
Specification-Vendor: The Apache Software Foundation
Implementation-Title: org.apache.commons.attributes.compiler
Implementation-Vendor: The Apache Software Foundation
Implementation-Version: 2.2
Extension-List: ant qdox commons-attributes-api javadoc
ant-Extension-Name: ant
ant-Implementation-Version: 1.5
ant-Implementation-URL: http://www.ibiblio.org/maven/ant/jars/ant-1.
5.jar
qdox-Extension-Name: qdox
qdox-Implementation-Version: 1.5
qdox-Implementation-URL: http://www.ibiblio.org/maven/qdox/jars/qdox-1.
5.jar
commons-attributes-api-Extension-Name: commons-attributes-api
commons-attributes-api-Implementation-Version: 2.2
commons-attributes-api-Implementation-URL: http://www.ibiblio.org/maven/commons-attributes/jars/commons-attributes-api-2.2
.jar
javadoc-Extension-Name: javadoc
javadoc-Implementation-Version: 1.4
javadoc-Implementation-URL: http://www.ibiblio.org/maven/javadoc/jars/javadoc-1.4
.jar
Implementation-Vendor-Id: org.apache
X-Compile-Source-JDK: 1.4
X-Compile-Target-JDK: 1.4

这里的URL后面的值被换行符隔开了,显然,如果让我们自己,是不会这么干的。于是,做修改如下:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.3 
Created-By: Apache Maven
Built-By: hen
Package: org.apache.commons.attributes.compiler
Build-Jdk: 1.4.2_05
Extension-Name: commons-attributes-compiler
Specification-Title: Attribute Compiler
Specification-Vendor: The Apache Software Foundation
Implementation-Title: org.apache.commons.attributes.compiler
Implementation-Vendor: The Apache Software Foundation
Implementation-Version: 2.2
Extension-List: ant qdox commons-attributes-api javadoc
ant-Extension-Name: ant
ant-Implementation-Version: 1.5
ant-Implementation-URL: http://www.ibiblio.org/maven/ant/jars/ant-1.5.jar
qdox-Extension-Name: qdox
qdox-Implementation-Version: 1.5
qdox-Implementation-URL: http://www.ibiblio.org/maven/qdox/jars/qdox-1.5.jar
commons-attributes-api-Extension-Name: commons-attributes-api
commons-attributes-api-Implementation-Version: 2.2
commons-attributes-api-Implementation-URL: http://www.ibiblio.org/maven/commons-attributes/jars/commons-attributes-api-2.2.jar
javadoc-Extension-Name: javadoc
javadoc-Implementation-Version: 1.4
javadoc-Implementation-URL: http://www.ibiblio.org/maven/javadoc/jars/javadoc-1.4.jar
Implementation-Vendor-Id: org.apache
X-Compile-Source-JDK: 1.4
X-Compile-Target-JDK: 1.4

重新打成jar包,添加到项目lib中,启动运行,一切OK!

     可是,以前写定时器也没遇到这种情况啊,我想这跟spring的版本有关系吧;今天用的spring2.0,可是谁把MANIFEST.MF中的URL弄错的呢?我想不应该是官方的bug吧,可能是我不是在官网上下的spring开发包,有机会看看官网上是否也是这个样子。不管怎么说,项目还是在波澜不惊中顺利进行。。。

转载于:https://blog.51cto.com/yangfei520/403521

关于spring中commons-attributes-compiler.jar的使用问题相关推荐

  1. spring中事务配置的3种方式-2

    http://doc.javanb.com/spring-framework-reference-zh-2-0-5/ch09s05.html http://zpchen.iteye.com/blog/ ...

  2. Spring中配置DataSource数据源的几种选择

    Spring中配置DataSource数据源的几种选择 在Spring框架中有如下3种获得DataSource对象的方法: 从JNDI获得DataSource. 从第三方的连接池获得DataSourc ...

  3. 【web安全】Spring Data Commons 1.13.10 SpEL漏洞分析

    一.简介 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架.Spring Data Co ...

  4. Spring中配置数据源的4种形式

    转自:https://blog.csdn.net/qqqqqq654/article/details/52462203 不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的数据 ...

  5. Spring中使用JDBC

    首先要获得DataSource连接池: 要对数据库执行任何的JDBC操作,需要有一个Connection.在Spring中,Connection对象是通过DataSource获得的. 有几种方法可以得 ...

  6. Spring中使用Spark连接的DataSource

    在Spring中配置Spark hive-thriftserver的连接DataSource与配置其他数据源连接方式是一样的,如一般Oracle数据源配置,使用如下必须的Jar包: 使用JDBC程序示 ...

  7. 在Spring中使用JDBCJobStore配置Quartz

    我将开始一些有关Quartz Scheduler内部,提示和技巧的系列文章,这是第0章-如何配置持久性作业存储. 在Quartz中,您基本上可以在将作业和触发器存储在内存中以及在关系数据库中进行选择( ...

  8. Spring中配置数据源的4种形式 ---转

    不管采用何种持久化技术,都需要定义数据源.Spring中提供了4种不同形式的数据源配置方式: spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源 ...

  9. 【sping揭秘】19、关于spring中jdbctemplate中的DataSource怎么来呢

    我们这是可以正好借助之前学的factorybean类,自己吧jdbctemplate加载到spring容器中,我们可以封装多个这种对象,那么可以实现针对不同的数据库的jdbctemplate 首先我们 ...

最新文章

  1. Vue精简版风格指南
  2. ubuntu 10.04 常用 设置
  3. 使用 Carla 和 Python 的自动驾驶汽车第 4 部分 —— 强化学习代理
  4. Circle Loss: A Unified Perspective of Pair Similarity Optimization 圆损失函数,统一优化视角,革新深度特征学习范式 CVPR 2020
  5. Harmony OS — ListContainer列表
  6. 使用VideoView实现简单视频播放器
  7. python识图 web_python+flask搭建CNN在线识别手写中文网站
  8. Paper reading:Authenticating Top-k Queries in Location-based Services with Confidentiality
  9. SAP入行须知 | SAP项目管理(PS模块)概述 |大连易拓SAP
  10. C语言大数阶乘取余,python中math模块常用函数介绍 取模(取余)取绝对值 求阶乘 求最大公约数最小公倍数 取对数 取根号 取幂(取次方) 取整函数 三角函数与反三角函数...
  11. 为梦想加油:7个值得深思的名人财富故事
  12. 好桌道壁纸桌面右键菜单如何去掉
  13. amlogic调试系列(一)-芯片型号列表
  14. ASCII码表 键盘常用ASCII码
  15. 【Camera】Camera理论知识和基本原理
  16. android版本飞鸽传书源码
  17. MAC EFI启动设置
  18. 第十一章、后置处理Bean
  19. 王学岗——钉钉视频会议实战,从零手写音视频会议项目
  20. DeFi不可错过的趋势,Compound将如何与Balancer共生

热门文章

  1. 为什么2G/3G和AI擦不出火花?他们用这篇论文告诉你答案
  2. Keras,亡于谷歌?
  3. 寒武纪首颗AI训练芯片亮相
  4. MIT博士生、北大校友,利用自监督算法,解决了数据集中这一常见的“难题”...
  5. YOLOv4 论文翻译
  6. 多所双一流高校通知将恢复正常上班!还有的为在校生开放实验室
  7. 5个有趣的Python小知识,返回结果让人出乎意料~
  8. 分布式事务篇——第二章:分布式事务解决之2PC剖析
  9. SPU表管理之查询获取SPU表列表数据
  10. 文件资源路径(相对路径和绝对路径)