`
LucasLee
  • 浏览: 206024 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用Eclipse在Web项目引用Java项目时实现热部署

阅读更多
以前也研究过Eclipse里Web Project引用Java Project的问题,没有解决,特地再深入研究了一下。
思路及实践如下:
1.Elcipse里Project Properties里有Project Reference的设置,说明有这个特性,Java Builder Path里也有引用的Projects设置。
试验:建立两个Java Project A、B,B引用A,设置B的Java Builder Path/Projects引用Project A,则B中的Class可以调用A中的Class,编译和运行都通过。
说明Eclipse对Java Project的解决方案良好。
(Project Reference的设置不知道有什么用处)
2.Web应用,使用Eclipse WTP
按上面的试验设置,(这里的B项目是一个Web项目),编译可以通过,但是运行时找不到A项目中的类。
没有找到有相应的解决方案。
3.Web应用,使用Sysdeo Tomcat Plugin
发现有这个Window/Preferences/Tomcat/Advanced/Add Java Projects to Tomcat classpath设置,将Java项目设置到Tomcat的类路径中,对Tomcat是全局的,有一些不灵活,和其它的缺陷,比如加载这些类的ClassLoader将是SystemClassLoader而不是WebAppClassLoader,这将影响某些资源文件的加载。
另外,我在Tomcat5.5.17上试验这个设置,结果启动Tomcat就出错。

看了Sysdeo的文档,它介绍了DevLoader就专门解决这个问题的。看了一下他的源码,很简单,总共只有200行,基本上的逻辑是,读取Eclipse项目下的.#webclasspath、.classpath文件以获得引用的java类路径,由
DevLoader加载这些项目外的类。
具体操作是:
1)设置Java Builder Path;
2)将Sysdeo Plugin下的DevLoader.zip解压到Tomcat目录/server/classes下,在Tomcat Project/Project Properties/Tomcat/Devloader 中选中Active DevLoader,及选中列表中项目外的classpath。
参考Sysdeo Plugin的ReadmeDevLoader.html.

这样就解决了这个问题,效果是:修改了项目A、B中的代码,不用重起Tomcat,就可以在浏览器中立即看到修改后的效果。
分享到:
评论
6 楼 冉翔 2007-03-09  
robbin 写道
冉翔 写道
先谢谢LZ,可是我的项目最迫切解决的是页面。关于不同的class路径加载,其实都没什么了。可就是本来在不同的目录下的页面合并到一个地方这个搞不定。

就是譬如说我真正的deploy的结构想要这样的:
root
   - user
   - master
root下面有两个目录。user和master,里面存放的都是相关的页面jsp,js之类的文件。
但是在开发环境下。可能user目录是放在/A/root/user,而master是放在/B/root/master
A
    - root
        - user
B
    - root
        - master

大约可以说是这样子的情况。


我那法子就是教你干这个的。


恩,我看了。你说的是不同的apps之间如何办的。我这里是让他们依然是一个app啊。
5 楼 LucasLee 2007-03-09  
robbin 写道

我那法子就是教你干这个的。


你的方法是说,两个项目是在两个context里启动,我觉得他的意思是,他的两个project的文件其实是要部署在一个context里的。
那么你的方法就有局限了,如果两个project里的文件互相调用就不好办了。
4 楼 robbin 2007-03-09  
冉翔 写道
先谢谢LZ,可是我的项目最迫切解决的是页面。关于不同的class路径加载,其实都没什么了。可就是本来在不同的目录下的页面合并到一个地方这个搞不定。

就是譬如说我真正的deploy的结构想要这样的:
root
   - user
   - master
root下面有两个目录。user和master,里面存放的都是相关的页面jsp,js之类的文件。
但是在开发环境下。可能user目录是放在/A/root/user,而master是放在/B/root/master
A
    - root
        - user
B
    - root
        - master

大约可以说是这样子的情况。


我那法子就是教你干这个的。
3 楼 LucasLee 2007-03-09  
冉翔 写道
先谢谢LZ,可是我的项目最迫切解决的是页面。关于不同的class路径加载,其实都没什么了。可就是本来在不同的目录下的页面合并到一个地方这个搞不定。

就是譬如说我真正的deploy的结构想要这样的:
root
   - user
   - master
root下面有两个目录。user和master,里面存放的都是相关的页面jsp,js之类的文件。
但是在开发环境下。可能user目录是放在/A/root/user,而master是放在/B/root/master
A
    - root
        - user
B
    - root
        - master

大约可以说是这样子的情况。


这个我就没办法了。我想你们应该在这样分割项目之前解决好这个问题,不是每种分割方法都方便开发的。
我想,即便是WSAD这类商业IDE也不一定支持这类分割吧。
2 楼 冉翔 2007-03-09  
先谢谢LZ,可是我的项目最迫切解决的是页面。关于不同的class路径加载,其实都没什么了。可就是本来在不同的目录下的页面合并到一个地方这个搞不定。

就是譬如说我真正的deploy的结构想要这样的:
root
   - user
   - master
root下面有两个目录。user和master,里面存放的都是相关的页面jsp,js之类的文件。
但是在开发环境下。可能user目录是放在/A/root/user,而master是放在/B/root/master
A
    - root
        - user
B
    - root
        - master

大约可以说是这样子的情况。
1 楼 LucasLee 2007-03-09  
此文章同时做为对这个帖子的回复:
(在我们的项目架构中,如何解决热部署的问题呢?)
http://www.iteye.com/my_topic/58150

相关推荐

    eclipse 创建java web项目整理文档.docx

    本文档介绍了使用 Eclipse 创建 Java Web 项目的步骤,包括安装 Apache-Tomcat 服务器、在 Eclipse 中添加服务器、创建 Dynamic Web 项目、配置 Servers、修改 Web.xml 文件、启动服务器和访问 Java Web 项目等。

    idea部署eclipse的web项目(tomcat)

    在IT行业中,开发Java Web应用时,经常使用集成开发环境(IDE)如IntelliJ IDEA(简称Idea)和Eclipse。尽管Idea是许多开发者首选的工具,但有些项目可能是在Eclipse下创建和测试的。本篇将详细介绍如何在Idea中部署...

    eclipse修改代码后热部署(不需要重启服务

    在IT行业中,开发Java Web应用程序时,经常使用集成开发环境(IDE)如Eclipse进行编码。然而,每次修改代码后都需要重启服务器以查看更改效果,这无疑降低了开发效率。为了解决这个问题,开发者通常寻求“热部署”...

    eclipse上如何进行热部署

    在eclipse中,热部署可以通过配置服务器和项目的部署方式来实现。下面将详细介绍eclipse热部署的配置步骤和相关知识点。 热部署的原理 热部署的原理是基于Java的类加载机制。当我们修改了Java类文件后,热部署机制...

    maven-eclipse-tomcat热部署

    在开发Web应用程序时,结合Eclipse集成开发环境(IDE)和Tomcat服务器,我们可以实现项目的快速构建和热部署,提高开发效率。 1. **Maven Web 项目创建** Maven 提供了多种 archetype(模板)来创建不同类型的项目...

    在Eclipse中Tomcat和Maven插件相互配合进行热部署

    这个过程涉及到了源码管理和自动化构建工具Maven,以及集成开发环境Eclipse中的服务器适配器Tomcat,它们共同助力实现项目的热部署,即代码修改后无需重启服务器即可看到更新效果。 首先,Maven是一个强大的项目...

    eclipse中配置使用jetty调试web项目

    而在Eclipse中配置Jetty,可以实现热部署和实时调试,极大提高了开发效率。 1. **安装Jetty插件** 在Eclipse中配置Jetty的第一步是安装Jetty插件。你可以通过Eclipse的内置软件更新站点或Marketplace来搜索并安装...

    eclipse热部署

    ### Eclipse热部署详解 #### 一、什么是热部署 ...通过以上步骤,无论是使用Eclipse还是MyEclipse,都可以有效地实现热部署功能,提高开发效率。希望这些详细的步骤能帮助解决开发过程中的问题。

    ecilipse+tomcat+jrebel实现热部署

    在本文中,我们将介绍如何使用 Eclipse、Tomcat 和 JRebel 实现热部署。首先,需要下载 JRebel 的插件 update-site-6.4.0.RELEASE,并安装到 Eclipse 中。然后,需要破解 JRebel 的许可证,以便能够使用 JRebel 的...

    Maven项目中的热部署

    4. Maven的maven-eclipse-plugin或maven-idea-plugin: 这些Maven插件可以帮助你生成IDE的项目文件,虽然它们现在已经不再维护,但在过去它们可以辅助实现热部署,通过与IDE的配合,自动跟踪源代码变化。 5. Spring ...

    eclipse jee 热部署配置图解

    本文将详细讲解如何在Eclipse JEE环境中配置热部署,以便于在修改jsp和java文件后,无需重启Tomcat服务器即可实现应用的更新。 首先,我们要理解热部署的基本原理。热部署是指在运行状态下,对应用中的某些部分进行...

    Jrebel 基于TOMCAT实现项目修改热部署

    JRebel 是通过动态类加载技术,实现在运行时替换已经加载的类,以达到热部署的效果。它拦截了 JVM 的类加载过程,当检测到源代码发生变化时,会自动重新编译并加载新的类,而无需重启应用程序服务器。 **2. JRebel ...

    jrebel热部署工具-eclipse

    标题中的"JRebel热部署工具-eclipse"指的就是将JRebel这个神器与Eclipse集成,以提升Java Web开发的效率。Eclipse作为广泛使用的Java集成开发环境(IDE),在开发者社区中拥有极高的声誉。然而,Eclipse默认的机制...

    在eclipse自动发布项目

    - 使用Eclipse内置的功能:在Eclipse IDE中集成了Tomcat服务器管理工具,可以直接通过Eclipse界面操作完成项目的发布和热部署,极大地简化了开发流程。 #### 利用`server.xml`文件实现自动发布 1. **修改`server....

    Maven +Tomcat+m2eclipse的热部署(hot deploy)

    ### Maven + Tomcat + m2eclipse 的热部署详解 #### 概述 Maven、Tomcat 和 m2eclipse 是 Java...然而,需要注意的是,虽然热部署可以提高效率,但在生产环境中应谨慎使用,以避免因未完全测试的代码更新导致的问题。

    b3log-solo在eclipse下的热部署方案.docx

    本文档将详细介绍如何在Eclipse IDE环境下实现b3log-solo项目的热部署。通过此方案,开发者能够在不重启服务器的情况下快速更新代码并查看效果,极大提高开发效率。 #### 开发环境与工具配置 **开发环境:** ...

    Maven构建并热部署一个简单的Web Project

    本篇文章将详细讲解如何使用Maven来构建并实现一个简单Web项目的热部署。 **一、Maven简介** Maven是一个基于项目对象模型(Project Object Model,POM)的概念,用于管理及构建Java项目。它通过POM文件来管理项目...

    配合m2eclipse,改造tomcatPluginV321根据maven的依赖自动热部署

    标题中的“配合m2eclipse,改造tomcatPluginV321根据maven的依赖自动热部署”涉及了两个主要的开发工具集成:M2Eclipse(Maven插件)和Tomcat Plugin V321,以及它们如何协同工作以实现基于Maven依赖的自动热部署。...

    maven多模块项目+jetty热部署实例源码

    ** Maven多模块项目详解 ** ...通过这个实例源码,你可以学习如何在Eclipse中配置Maven多模块项目,并结合Jetty进行热部署。了解并实践这些知识点,将有助于你快速构建和调试Java Web项目,提高开发效率。

Global site tag (gtag.js) - Google Analytics