Passbook对应系统配置 Eclipse Tomcat配置JavaWeb项目部署 Sysdeo Eclipse Tomcat Launcher plugin

本文介绍了在Eclipse中使用Sysdeo Eclipse Tomcat Launcher plugin进行JavaWeb项目部署的方法,该插件允许在Eclipse内启动Tomcat并支持debug。当修改代码后,插件能自动重新加载Tomcat Context。文章讨论了ClassNotFoundException: org.apache.catalina.loader.DevLoader的异常情况,并解释了DevLoader的作用,提供了解决方案。问题可能源于server.xml配置不完整或项目属性混乱,文中建议检查并正确配置相关路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Eclipse J2EE Juno+Tomcat 6 用Tomcat Plugin配置Tomcat 应用时,不想Copy一堆 jar文件到应用的lib目录中,应该可以用Activate DevLoader在运行时载入需要Load的Jar文件。
        但是一不小心就容易出现 DevLoader的ClassNoFound错误,看了Tomcat Plugin的 readmeDevLoader.html后,按以下步骤试了一下,解决了。
首先,我假设你已经下载了Tomcat Plugin,并已加入到Eclipse的Plugin中去了。
        1. 将Tomcat Plugin下的DevLoader.zip Copy到 Tomcat_Home/lib下,将文件名改为:DevLoader.jar;
 ---Tomcat Plugin 的 readmeDevLoader.html中说要将DevLoader.zip解压到 TOMCAT_HOME/server/classes 中,但是在Tomcat 6中只有一个lib目录。而我知道jar文件实际上采用的就是zip算法,而tomcat会将lib目录下的所有jar文件加载并在其中寻找符合条件的class调用,所以这个步骤只要将DevLoader.zip改名为DevLoader.jar就可以了)   
       2. 在Eclipse的Tomcat项目属性中,Tomcat->DevLoader Classpath选项卡中勾选 Activate DevLoader, 然后再勾选你需要加载的项目的java代码编译路径,按Apply就OK了。
Sysdeo的Tomcat Plugin是Eclipse下面一款Tomcat的插件,为Eclipse提供了集成的Tomcat下Web项目开发的环境。 

Devloader是这款插件附带的一个功能,能够使Tomcat在启动的时候动态的加载任意位置的library文件到当前项目的classpath中。作为还没有正式deploy的项目,这项功能非常实用,节省了手工拷库文件到项目目录下的lib的过程。 

Sysdeo Eclipse Tomcat Launcher plugin 是做J2EE开发的时候经常用到的一款插件,可以在Eclipse中启动Tomcat,同时可以把Tomcat进程绑定到Eclipse Java Debugger中,这样可以在运行时进行一些debug操作,当修改或者新增、删除了一些java文件以后,Tomcat Context会自动重新load,这样不用每次做了修改都需要重启Tomcat。

在使用这款插件的时候,往往很多人会遇到这样的一个异常:ClassNotFoundException: org.apache.catalina.loader.DevLoader,很多人解决的办法往往是禁用DevLoader功能。其实DevLoader提供的功能是很有用的,它实现和扩展了WebappLoader。我们知道,默认情况下,我们需要把classes和jar文件都放到web应用所在的WEB-INF/classes和WEB-INF/lib下,但是在实际的开发环境下,往往需要引用到外部的classes和jar文件,比如另外一个项目中的classes,这个时候如果在没有DevLoader的情况下我们需要把这些classes和jar文件拷贝到web应用所在的WEB-INF下的相应目录中,而如果启用了DevLoader,则没有了上述的限制,可以加载项目用到的所有classpath中的classes和jar。


启用DevLoader的过程如下: 

1. 在项目Properties(属性)中,找到Tomcat项,选中“Activate DevLoader”以及想要加入classpath的库文件。
2. 复制DevLoader.zip到tomcat安装目录下的lib中,如"C:/apache-tomcat-6.0.16/lib/",并且将后缀名改为.jar 
3. 在Eclipse菜单栏上重启Tomcat,控制台信息应该成功显示DevLoader已经被加载。
================================================
Tomcat目录下conf/server.xml 配置

 <Context path="/Passbook" reloadable="true" docBase="/Users/user/Documents/passo/PassoWebApp/src/main/webapp">

   <Loader className="org.apache.catalina.loader.DevLoader" reloadable="true" debug="1" useSystemClassLoaderAsParent="false" />

 </Context>

替代性的解决方案:

子工程PassoDB,PassoWebCommon还没有完全的实现热部署。主Web项目可以热部署。

之前部署不成功的可能原因:

  • ClassNotFound Exception. 全部打包后的War文件解压后替换到 PassoWebApp/src/main/WEB-INF/webapp 下后可以正常部署,说明因为server.xml配置不完全,缺少必要的文件?!
  • 重新导入了Projects,原来的Projects的Tomcat插件下的相关属性可能因为多次修改已经混乱。
  • class文件都在 PassoWebApp/src/main/WEB-INF/webapp/classes 路径下,Eclipse IDE中不显示,Finder中可看



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值