问题标签 [hotswap]

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 投票
2 回答
184 浏览

haskell - 在haskell中交换嵌套列表

我想交换一个列表(1,3,[2,4],5,[7,12,[14]])

我知道在 haskell 类型的列表中应该是相同的,所以我很困惑我该怎么做。

我应该使用其他数据结构吗?或者我应该定义另一种数据类型?

例如交换 2 3 (1,3,[2,4],5,[7,12,[14]]) ==> (1,3,5,[2,4],[7,12,[ 14]])

0 投票
3 回答
7971 浏览

python - Pickle:处理更新的类定义

在通过重新编译脚本更新类定义后,pickle 拒绝序列化该类先前实例化的对象,并给出错误:“Can't pickle object: it's not the same object as”

有没有办法告诉泡菜它应该忽略这种情况?要仅按名称识别类,请忽略导致不匹配的内部唯一 ID?

我肯定会欢迎作为答案的替代等效模块的建议,它以方便和强大的方式解决了这个问题。


作为参考,这是我的动机:

我正在创建一个高生产力、快速迭代的开发环境,在其中实时编辑 Python 脚本。脚本被反复重新编译,但数据在编译过程中仍然存在。作为生产力目标的一部分,我尝试使用 pickle 进行序列化,以避免为不断变化的数据结构编写和更新显式序列化代码的成本。

大多数情况下,我序列化内置类型。我小心地避免在我腌制的类中进行有意义的更改,并且在必要时我使用 copy_reg.pickle 机制对 unpickle 执行上转换。

脚本重新编译完全阻止我腌制对象,即使类定义实际上没有改变(或只是以良性方式改变)。

0 投票
4 回答
1422 浏览

java - 无法在不重新部署到服务器的情况下将 xhtml 更改发布到 Jboss 为 7.1.1

我正在使用Jboss 7.1.1 AS来部署我JSF的基于 Web 应用程序。我正在使用Filesync插件来热交换代码。.java对于或any other file更改,它工作得非常好。但是Jboss as,当我修改.xhtml页面中的某些内容时,并没有收到更改。

我尝试添加

web.xml. 但它也不起作用,当我刷新页面时,我在浏览器中看不到我的更改。tomcat当我使用相同的配置时,它可以工作。Jboss为了使这项工作,我需要做任何特殊的配置吗?

0 投票
1 回答
474 浏览

java - java中的动态注释更改

我必须在运行时更改 java 中模型类的注释。该场景在我的网页上,当我更改下拉列表的值并单击应用按钮时,我有一个下拉列表,我必须根据下拉值在我的模型类上放置注释。

为此,我使用 javaassit 在类上添加注释。我认为注释已正确应用,但我无法重新加载该类。我曾尝试使用 HotswapAgent 来做到这一点。但看起来不像它的工作。

我正在使用游戏框架

任何帮助将不胜感激。

0 投票
2 回答
4795 浏览

java - 各种用于热类重载的 Java 插件有什么区别,哪一个最直观?

我目前正在尝试在 Java 应用程序中实现热类重新加载,但是有很多插件可供选择,我无法在这些选项之间找到一个很好的比较。此外,插件的网站也不是很清楚确切的功能是什么以及如何使用它们。

还可以选择制作自定义热类重新加载 ClassLoader,但如果已经有这么多插件可以完成这项工作,我觉得这类似于“重新发明轮子” ..其他人是否同意这一点?

我发现我认为可以完成这项工作的 Java 插件:

那么有没有人碰巧知道插件之间的区别是什么?还有哪个插件使用起来最直观

附带说明:我真正想做的是重新加载我的 java 应用程序的 .jar 文件依赖项。我有一些 java 代码会经常自动重新编译,然后转换为 .jar 文件。它是我的 java 应用程序的依赖项,我的应用程序每次都需要使用这个 .jar 文件的最新版本。

0 投票
0 回答
56 浏览

java - 从客户端动态地热交换服务器运行时行为

假设我已将日志服务部署到某个(符合 jaxrs 的)容器。

如果我向托管此服务的容器发出以下请求,我希望在容器的标准输出日志中看到我的消息输出:

现在我想用一些任意客户端指定的行为在运行时更改此日志消息的实现。

例如,假设我们有一个接口:

并且该服务被重新定义为使用此接口的实现:

因此问题就变成了,如何将记录器的实现与服务器外部的某个客户端定义的新实现进行热交换。

我的第一直觉是 RMI 和/或动态代理可以让我到达我想去的地方,但我不确定所有的安全策略疯狂。

基本上我想要的是能够执行以下操作:

想法?

(哦,我知道这会带来严重的安全风险,并且这种模式不应该在生产环境中使用。我的兴趣是设计一个模拟服务,其中服务的行为和副作用可以通过调用模拟服务的集成测试来定义)

0 投票
5 回答
21493 浏览

javascript - 启用 html 和 javascript 文件的 IntelliJ 热交换

我对 IntelliJ 相当陌生,我正在使用它来开发 AngularJS / Java Web 应用程序。当我更改 HTML 或 JavaScript 代码时,我总是必须重新启动应用服务器(我使用的是 Jetty)。是否有为 HTML/JS/CSS 文件提供热插拔的配置或插件?

我正在使用 IntelliJ 12 Ultimate 版。

0 投票
1 回答
2081 浏览

jakarta-ee - 什么情况下需要重启 JBoss 服务器?

虽然对已部署/实时应用程序进行了任何更改,但在哪些情况下我们需要“重新启动”“JBoss 服务器”?
即。
- 如果只是完成了一些(.js/.css/.jsp)文件的热交换。
- 如果某个类被替换。
- 如果我替换完整的 .war 文件。
...ETC。

0 投票
1 回答
8577 浏览

eclipse - Eclipse Maven Weblogic 热代码交换

我有一个关于在 Eclipse 中使用 Maven 在 Weblogic 上运行 Java EE 应用程序的基本问题。

我使用 OEPE(Oracle Enterprise pack for Eclipse),它带有一些插件,例如 m2e 和 wtp。据我所知,这个插件读取 pom 文件并基于它们构建 jar、war 和 ear 文件。

我现在做的是这样的:

我检查了自动构建选项并让这些插件创建我的 EAR 文件,然后右键单击 Eclipse 中的 weblogic 服务器实例并使用添加/删除选项将其添加到服务器,最后启动应用程序服务器。这样,当我在我的类中更改代码时,它们将被应用程序服务器选中并且热交换工作。

构建 EAR 文件的另一种方法是使用 m2e 插件:右键单击父 pom 文件并选择 maven install 然后启动应用程序服务器并使用 wls:deploy 来部署 EAR 文件。(这次我没有从 Eclipse 中将 ear 文件添加到应用程序服务器,当我在 IDE 中右键单击我的 weblogic 实例时,eclipse 也不知道那个 EAR 文件)。

据我所见,我只能将这些工件添加到使用 wtp 插件构建的服务器,而不是使用 m2e 插件的 maven 命令构建的工件。wtp 和所有这些插件(实际上只是运行 mvn -install 的 m2e 除外)的问题在于它们不能完美地工作。有时他们没有正确构建工件,有时 jar 文件已经过时并且它们没有得到更新。此外,当您在另一个 maven 项目中使用一个项目的 jar 文件时,他们会在您更改之前被 jar 文件卡住,而使用 m2e 时,它​​们会完美地构建。

现在这是真正的问题:

哪种方式是正确的热部署方式?

我错过了什么吗?使用 m2e 插件构建 ear 文件并使用 wls:deploy 进行部署是否足够?如果是这样,热插拔将如何自行发生,或者我应该每次都使用 wls:redeploy 吗?如果 m2e 足够了,那么我假设我应该放弃 wtp 插件(它不知道 pom 文件的所有插件,我有时应该在 eclipse 的生命周期管理 xml 文件中将它们标记为忽略)。

很抱歉这个问题太长了,但我希望我能把案子说清楚并得到一些帮助!

0 投票
2 回答
8941 浏览

java - JDK 8 中的高级代码热交换?

我正在 JavaVM 中寻找更好的 HotSwapping。只能应用方法体更改是可以的,但非常有限。

可用的选项是 JRebel 和一个名为Dynamic Code Evolution Virtual Machine (DCEVM)的已停产项目。

那里有一个由 DCEVM 的核心开发人员编写的JEP 159 。2011 年的一篇博客文章提到,DCEVM 的开发人员现在正在为 Oracle 工作以将其集成到 JDK 中。

我们是否已经对 JDK 8 beta 提供了这种支持,还是推迟到了 JDK 9?

我需要热交换来添加、删除和重命名私有方法。这会有很大帮助。有没有允许我这样做的产品(除了 JRebel,公关活动让我不高兴)。

DCEVM 的最新支持版本是 1.6u24,它只提供 32 位 linux 二进制文件。因为我使用 1.7 和 64 位 Linux,所以这对我来说都是一个阻碍。

github 上还有另一个名为Fakereplace的项目。这可以很容易地用于我的目的还是我不应该对此进行调查?