从源代码中查找JAR文件的来源以确定使用的框架?

时间:2010-10-20 20:37:18

标签: java javascript eclipse jboss

我正在为在JBoss上运行的MVC JS网站的源代码做一些项目维护。该项目包含Java和Javascript,我试图弄清楚这个项目中使用的所有框架,看到Javascript代码在项目文档中有些缺乏。

在WEB_INF / lib /中,我看到这些文件:

avalon-framework-4.2.0.jar
batik-all-1.7.jar
commons-io-1.3.1.jar
commons-lang-2.4.jar
commons-logging-1.0.4.jar
dwr.jar
fop.jar
mail.jar
servlet-api.jar
sqljdbc4.jar
xmlgraphics-commons-1.3.1.jar

从我的初步研究来看,我认为这个项目使用:

Avalon Framework

Batik SVG Toolkit

Apache Commons

DWR

Apache FOP

JavaMail

MS SQL Server JDBC driver

Apache XML Graphics commons

然而,我对serlvet-api.jar有点困惑。除了Google搜索之外,确定此软件包的来源及其目的的最佳方法是什么?特别是,当我通过Eclipse在JBoss中启动这个项目时,我在控制台中收到了这条消息:

INFO  [WebappClassLoader] validateJarFile(C:\jboss-4.2.2.GA\server\default\.\tmp\deploy\tmp6553188861131946313Ag4-exp.war\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

有关我应该如何跟踪此jar文件的来源及其相应的错误消息的任何建议,以确保我的源代码维护不会损害项目?

3 个答案:

答案 0 :(得分:2)

我不知道为什么你不想用谷歌找到答案。但是,具体问题可能是由于Tomcat现在拥有自己的Servlet类。因此,尝试从lib目录中删除servlet-api.jar文件。或者确保您在Eclipse中使用的Tomcat版本与您要部署的服务器相匹配(尽管在服务器上升级Tomcat版本可能比尝试使用旧版本设置eclipse更容易。)

答案 1 :(得分:1)

您可以使用

在命令行上列出jar的目录
jar tvf servlet-api.jar

(jar位于jdk的bin目录中。)

可能的是,这是标准的servlet api规范jar。 jar本身可能不包含任何实现,而jboss依赖于此,但项目需要eclipse才能有一个副本才能编译项目。

您不应该在war文件中包含servlet-api,因为任何servlet容器都会提供它。

答案 2 :(得分:1)

您可以使用Provenance找出随机jar文件的来源,并轻松获取一些XML来帮助您转换为Maven(或Ivy)项目结构。

免责声明:这是我的项目。