问题标签 [hotdeploy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3596 浏览

java - Grails 或 Play 如何检测更改和热重载类?

我很好奇有人知道 Grails 或 Play 等框架如何检测代码中的更改并自动触发重新编译而不重新启动应用服务器的详细信息吗?是否有特定于 Groovy 的编译器或其动态特性的东西可以很容易地发生这种情况?

作为背景,我在构建过程中有一个自定义代码生成阶段,我希望能够拥有类似的编辑和刷新功能。

提前感谢任何指针,即使我必须筛选代码以获得更大的图片。

编辑:我应该澄清一下,我并不想构建一个 Grails 插件,而是要了解在 servlet 容器中的任何应用程序中执行此操作需要什么。即,我使用的是 Groovy 而不是 Grails。

Edit2:听起来 Play 有一个特定的 DEV 模式,可以实现这种热重载:http ://www.playframework.org/documentation/1.1.1/main#lifecycle

我知道 JRebel 通过类加载器执行复杂的类版本控制,但我假设像 Grails 或 Play 这样的 Web 框架没有将它提升到那个级别。

0 投票
1 回答
1219 浏览

eclipse - 大型代码库热部署到 weblogic 10.3

我有一个非常大的代码库,它的 build.xml 包含很多 jar,一些战争文件。一个 .class 文件可能引用多个 jar 文件。我手动编译代码并使用 Ant 将 .ear 文件部署到 weblogic 10.3 应用服务器中。但是这个编译和部署需要大约 10 到 15 分钟的时间。有什么办法可以逃避这部分吗?意味着,当我从 ide 修改任何 java 类时,它会在 bin 文件夹中生成一个 .class 文件。我可以从 bin 文件夹中获取所有修改过的 .class 文件,并直接将它们部署到相应的 jar 文件中,而无需重新启动服务器吗?任何帮助,将不胜感激。

提前致谢,

0 投票
2 回答
2207 浏览

tomcat - Tomcat热部署失败

我想在tomcat中进行热部署,但失败了。我使用 maven tomcat 插件来部署。当我调用“mvn tomcat:redeploy”时,战争成功上传到 tomcat webapps 文件夹。但是没有解包成功,因为我原来的webapplication文件夹没有成功删除。在 WEB-INF/lib 下仍然存在一个 oracle jdbc jar。当我尝试手动删除它时,它不能是删除事件。它告诉我有一个进程正在使用它。我猜jdbc连接没有释放。

我怎么解决这个问题 ?谢谢

张杰夫

0 投票
2 回答
1308 浏览

java - 开发 Java webapps 最有效的方法是什么?或者更具体地说,说 Wicket 应用程序?

这是我第一次在这里发布问题,我会尽量让我的问题尽可能清楚。

我试图找到开发 Java webapps 的最佳流程。经过几个月的反复试验,我的 Web 开发环境由以下部分组成:

框架:Apache Wicket 1.4.16
IDE:eclipse Galileo,带有 m2eclipse 插件
构建工具:Maven 2
数据访问:EclipseLink 2.1.1 via JPA 2.0(带有 StaticWeave)
RDBMS:MSSQL 2005 或更高版本,带有 jTDS
DI:Google Guice 2.0
开发 Web 容器: 嵌入在 Maven Jetty 插件中的 Jetty 服务器。
目标 web 容器:Tomcat 6.x 或更高版本

我使用 maven Jetty 插件来测试运行我的 webapps,在需要行精度跟踪时启用 JPDA。

每当对源代码进行更改时,我都必须重新加载我的应用程序才能生效。按 ENTER 重新加载是可以的,但是在几次重新加载后(大约 3~5 取决于我的 PermGen 设置),抛出 OutOfMemoryException,然后我必须关闭并再次启动我的应用程序。我知道自动重新加载可以通过配置来实现,但它只会导致 OOME 更快(由于过度重新加载)。

谷歌搜索后,我意识到与一些内存泄漏问题有关。我已经尝试扩大 MaxPermSize 设置,但我的装备上的 RAM 是有限的,将其设置为非常大的东西是不合理的。顺便说一句,Tomcat 7 中引入了内存泄漏检测,我发现大多数内存泄漏来自 jTDS、Google Guice 和 Wicket 本身,但我对此无能为力。

我能做些什么来加速我的开发过程吗?为了减少重新加载时间,我应该转向更高级的 Web 容器,比如 Glassfish(抱歉,我买不起 WebLogic 或 WebSphere。)或其他任何东西。

在此先感谢,欢迎任何意见!

0 投票
2 回答
764 浏览

python - 在 Apache 上使用 mod_wsgi、python 和 django 进行热部署

我已经用 mod_wsgi、python_sql、mysql 和 django 设置了一个 Apache 服务器。一切都很好,除了如果我做了一些代码更改,它们不会立即反映,尽管我认为所有的东西都是在涉及到 python/mod_wsgi 时动态编译的。

我必须关闭服务器并再次回来查看更改。

有人能指出我如何通过上述设置实现热部署吗?

谢谢,

尼拉吉

0 投票
3 回答
2351 浏览

java - Tomcat 和 Eclipse 零周转部署

我希望能够在 Eclipse 中开发时(几乎立即)将代码更改部署到 Tomcat。

到目前为止,我的 Eclipse 输出将构建的类放在WEB-INF/classes我的 Web 应用程序的文件夹中。

我还有一个可重新加载的上下文,web.xml作为一个被监视的资源。对此文件的任何编辑/保存都会重新加载我的网络应用程序,只需一秒钟多一点——比构建新的战争文件并完全部署它要快得多。

但是,我想做的是在我编辑任何源文件时触发重新部署。由于 .class 文件正在 Tomcat 中进行修改,看来我只需要监视WEB-INF/classes文件夹及其子文件夹中的任何更改。

我读过我可以在 Tomcat 中添加额外的监视资源,context.xml但这似乎不是我所需要的——除非可以指定一个将被监视的目录(包括递归监视子文件夹和文件)?

所以本质上,我的问题是我可以观看整个类文件夹(不包括每个WatchedResource明确)以触发在 Tomcat 中的重新部署吗?

如果不是,我可以将 Eclipse 配置为touchweb.xml 文件,每当我在该项目中保存源文件时?我正在Windows系统上开发。:(


PS 我对 JRebel 产品不感兴趣。任何答案都应该是免费的解决方案。


更新

根据 Tomcat文档,应通过将上下文设置为可重新加载来监视 classes 文件夹:

如果您希望 Catalina 监视 /WEB-INF/classes/ 和 /WEB-INF/lib 中的类的更改,请设置为 true,并在检测到更改时自动重新加载 Web 应用程序。

只有对 web.xml 的更改似乎会触发重新加载。这是一个错误还是我的设置不正确?

另外,我已经阅读了有关docBase为给定上下文设置属性的信息:

这似乎接近我的需要,因为我可以快速在 Eclipse 中重新发布。我唯一的问题是我需要多个 Web 应用程序 / servlet 同时在 Tomcat 中运行,在同一个端口等上。

0 投票
1 回答
1268 浏览

jboss - jboss 战争部署监听器

是否有一个监听器可以实现“部署战争”事件?

我知道有ContextServletListener。但它必须为每个组件(几个 web.xml 文件)“附加”。

作为后备,如果我使用 ContextServletListener,我怎么知道最后一个组件已经部署?

附带说明:完成后,我需要注意热部署。

0 投票
2 回答
1107 浏览

tomcat - jboss - tomcat 部署监听器

部署所有战争后,我需要编写一条日志行。Tomcat 的部署器是否有我可以挂钩的观察者模式?

在第一次启动时,jBoss/Tomcat 会发送一行,其中包含启动所花费的确切时间。不完美......但有效。

但是在热部署时,不会发送/写入通知/日志:(

(项目中大约有 100 个 servlet,按顺序列出它们是有风险的,然后猜测一旦最后一个初始化就完成了部署,所以让我们尝试跳过那种解决方案)

有什么提示吗?

0 投票
2 回答
714 浏览

jetty - Maven码头插件,如何做到这一点:修改类而不重启服务器

几天前,我的 pm 要求我们使用 maven 和 jetty 来开发和调试应用程序,但我再也没有使用过它们。现在,我不能在不重新启动码头的情况下热部署应用程序,如果我每次都重新启动码头来修改应用程序,我会发疯的。这会浪费很多时间。

所以,我希望有人可以帮助我,如何配置它。

谢谢。

0 投票
1 回答
831 浏览

tomcat - 在不重新启动tomcat的情况下影响java/jsp更改

我应该如何配置 tomcat 以使 JSP/Java 更改立即生效而无需重新启动 tomcat?当我在进行一些 Java 更改后重新部署应用程序时,它会自动重新启动 tomcat。这真的很令人沮丧,因为 tomcat 需要 3-4 分钟才能启动我的 Web 应用程序。

我正在使用版本:6.5.1 GA,Apache Tomcat 6.0

谢谢你。