问题标签 [redeploy]

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 投票
0 回答
506 浏览

jsp - wldeploy - 远程应用程序的部分重新部署

我在 nostage="false" 模式下部署在远程 Weblogic Server 上的爆炸 EAR。EAR 非常大,因此每次完全取消部署/部署都很慢。

如果我修改“stage”文件夹下的 JSP,我会立即看到 web-app 中的更改。

如果我在“stage”文件夹下添加一个 JSP,我在 web-app 中看不到新闻 jsp。

是否可以对 jsps(并且只有 jsps)进行部分远程重新部署?我试过类似的东西

但我得到了

[DeploymentService:290066] 从管理服务器下载文件以获取部署请求“1,439,276,275,680”时出错。潜在错误是:weblogic.deploy.service.datatransferhandlers.DataHandlerManager$RemoteDataTransferHandler.getDataAsStream(DataHandlerManager.java:153) 的 weblogic.deploy.service.datatransferhandlers.HttpDataTransferHandler.getDataAsStream(HttpDataTransferHandler.java:86) 的“null”

有什么建议吗?

0 投票
1 回答
2916 浏览

deployment - 操作方法:弹性 beantalk + 部署 docker + 优雅关闭

嗨,stackoverflow 的伟大人物,

在 EB 上托管一个 docker 容器,上面运行基于 nodejs 的代码。在重新部署我们的 docker 容器时,我们希望旧的容器能够正常关闭。

我找到了关于我们的代码如何接收由“docker stop”命令产生的 sigterm 信号的帮助和指南。

然而,对在以下位置运行 docker 的 EB 机器的进一步调查 /opt/elasticbeanstalk/hooks/appdeploy/enact/01flip.sh 表明,当从当前容器“翻转”到新的暂存容器时,旧容器会被 'docker kill' 杀死

有没有办法将此行为更改为 docker stop?
还是一般推荐的处理旧容器正常关闭的方法?

谢谢!

0 投票
0 回答
215 浏览

java - 如何最小化 Tomcat 自动部署时间/分心?

我正在开发一个基于 servlet 的小型应用程序,具有快速构建/部署/测试周转。我发现 Tomcat 8.0 在开发过程中自动重新部署的等待时间(主机设置为“autoDeploy=true”)非常令人分心:它在几乎立即和近 10 秒之间变化。

我想(大致按优先顺序):

  • 配置 Tomcat 以检查每个请求的重新部署。
  • 减少 Tomcat 在轮询重新部署之前等待的时间(例如,1 秒)。
  • 或者,有一种方便的方法可以在构建 .war 后立即提示 Tomcat 重新部署。(我正在使用 Ant 构建/部署。)

在过去的 30 分钟里,我一直在搜索 Tomcat 文档(和 SO),但没有看到任何内容。我错过了什么吗?

任何人都可以推荐一种他们发现最小化周转时间(和分心)的方法(上述方法之一)吗?

0 投票
1 回答
277 浏览

grails - 简单 Grails 2.5.1 应用程序使用 Groovy 2.4.4 泄漏类加载器

我在 Tomcat 8 中热重新部署一个简单的 Grails 应用程序时遇到问题。

我的设置如下:

  • Grails 2.5.1 全新的应用程序,刚刚创建create-app
  • Tomcat 8.0.28(64 位 Linux 二进制版本)
  • Java 1.8.0_65-b17 HotSpot 服务器虚拟机

Tomcat也是全新安装的,只修改了两处(因为我想在生产中使用):

服务器.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" undeployOldVersions="true">

上下文.xml
<Context antiResourceLocking="true">

我已经重新启动了 Tomcat 服务器。根据 JVisualVM,它加载了 2398 个类。复制由 生成的 war 文件grails prod war并等待部署完成后,它加载了 10 022 个类。再次复制战争,从而触发重新部署后,它有 16 300 个班级。

我在第一次部署后进行了堆转储,第二次使用 eclipse MAT 分析类加载器,我可以看到有一个额外org.apache.catalina.loader.WebappClassLoader的 6 138 个加载的类(所以总共有两个)。

堆空间保持不变,只有 MetaSpace 的使用量显着增加(与类的数量大致相同)。

更新

使用 MAT 深入挖掘,我注意到总是有 9 个实例使类加载器保持活动状态。它们是org.codehaus.groovy.reflection.ClassInfo(每个原始 java 类型包装器和Void)的实例。这些 ClassInfos 仅由java.lang.ClassValue$Entryextends引用WeakReference,所以我真的很困惑这些实例如何没有被垃圾收集。

有没有人有类似的问题?什么可能导致这个装载机徘徊?

0 投票
3 回答
2788 浏览

tomcat - 在容器环境中优雅地停止 Logback

今天我得到PermGen OutOfMemory错误。

分析表明,Nearest GC Root for WebappClassLoaderis Logback thread:

这是:

此线程的堆转储中的线程转储:

我使用具有热重新部署功能的 Tomcat 8并通过以下方式进行reloadable="true"外部化:CLASSPATHPreResources

logback.xmlscan="true"

/home/user/devel/app/.config/logback.xmlTomcat 8 中保存修改后会收到通知(我不确定使用什么 API 来监视 fs 上的更改)并开始重新部署应用程序。那是之前发生的事情PermGen OutOfMemory

如何在容器环境中优雅地停止 Logback?

如何停止"logback-1"线程?

我发现了一些相关的讨论,但无法理解如何处理该信息:

更新我玩堆转储visualvm。低于从坏logback-1线程跳转的级别:

它指的是

通过在 Logback 源中搜索,ExecutorServiceUtil找到了更改日志条目

ch.qos.logback.core.util.ExecutorServiceUtil#THREAD_FACTORY 打开的所有线程现在都是守护进程,它修复了在未调用 LoggerContext#stop() 时应用程序在关闭时挂起的问题 (LOGBACK-929)。请注意,守护线程会被 JVM 突然终止,这可能会导致不良结果,例如 FileAppender 写入的文件损坏。仍然强烈建议应用程序调用 LoggerContext#stop() (例如,在关闭挂钩中)以正常关闭附加程序。

容器环境中的守护线程是危险的并导致内存泄漏,这对吗?

0 投票
1 回答
506 浏览

java - 连接池数据源异常与休眠 c3p0 重新部署 weblogic12c 战争

我在使用 hibernate 和 weblogic 12c 和 Oracle 11g 时遇到问题,当我安装我的应用程序时,它运行正常,但是当我更新应用程序时,它抛出了这个问题:获取可池资源时发生异常。将重试。java.lang.NullPointerException 问候

休眠属性:

0 投票
0 回答
109 浏览

java - 重新部署后的 DataSource context.lookup

在 weblogic 和 hibernate 中搜索我的问题后,我发现问题发生在 jndi 查找中,当您安装应用程序时,它运行正常,但是当您重新部署应用程序时会发生这种情况:

javax.naming.NameNotFoundException: Unable to resolve 'ds_c719_002'. Resolved ''; remaining name 'ds_c719_002'

我的配置文件(我正在使用 java 配置)

问候

0 投票
0 回答
972 浏览

tomcat - Hikari Connecticns 没有在种子应用程序中对 tomcat 进行热重新部署时关闭

在对种子应用程序进行热重新部署时,它无法从连接池中释放连接。Tomcat 抛出内存不足异常。

如果部署是第一次完成,它可以正常工作,因为没有需要释放的现有连接。

此外,如果我们关闭 tomcat 实例,它会正确释放连接。

使用默认的 Hikari 连接池设置,并且未进行任何自定义。


添加日志:-

2016 年 10 月 26 日下午 2:46:24 org.apache.catalina.startup.HostConfig deleteRedeployResources 信息:取消部署上下文[/test-web-1.0.0] 2016-10-26 14:46:24,156?[0;39m ? [35mContainerBackgroundProcessor[StandardEngine[Catalina]]?[0;39m ?[36mo.sswlSeed ServletContextListener?[0;39m - 停止种子 Web 应用程序 2016-10-26 14:46:24,157?[0;39m ?[35mContainerBackgroundProcessor[StandardEngine[ Catalina]]?[0;39m ?[36mo.sjiJpaPlugin?[0;39m -为持久性单元 test-xxx 关闭实体管理器工厂 2016-10-26 14:46:24,158?[0;39m ?[35mContainerBackgroundProcessor[StandardEngine[ Catalina]]?[0;39m ?[36mo.sjiJdbcPlugin?[0;39m -关闭 JDBC 数据源 test_ds 2016-10-26 14:46:24,159?[0;39m ?[35mContainerBackgroundProcessor[StandardEngine[Catalina]]?[0;39m ?[36mc.zhpHikariPool?[0;39m - HikariCP 池 HikariPool-0 正在关闭。2016-10-26 14:46:24,228?[0;39m ?[35mContainerBackgroundProcessor[StandardEngine[Catalina]]?[0;39m?[36mo.sswlSeedServletContextListener?[0;39m -种子 Web 应用程序停止 ?[31m?[0 ;39mOct 26, 2016 2:46:24 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 严重:Web 应用程序 [/test-web-1.0.0] 注册了 JDBC 驱动程序 [com.mysql.jdbc.Driver] 但是Web 应用程序停止时无法取消注册。为防止内存泄漏,已强制注销 JDBC 驱动程序。 2016 年 10 月 26 日下午 2:46:24 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 严重:Web 应用程序 [/test-web-1.0.0] 似乎已经启动了一个名为 [Abandoned connection cleanup thread] 但已未能阻止它。这很可能造成内存泄漏。 2016 年 10 月 26 日下午 2:46:25 org.apache.catalina.startup.HostConfig deployWAR

信息:部署 Web 应用程序存档 F:\Eclipse-New-PSA\Eclipse_DEV\Serveurs\J2EE\tomcat\apache-tomcat-7\webapps\test-web-1.0.0.war

14:46:32,543 |-LoggerContext [default] 中的信息-找不到资源 [logback.groovy] 14:46:32,543 |-LoggerContext [default] 中的信息-找不到资源 [logback-test.xml] 14: 46:32,543 |-LoggerContext [default] 中的信息 - 在 [file:/E:/PSA-test/GL_SVN_TEST_ENV/test-conf/test-web/logback.xml] 找到资源 [logback.xml] 14:46:32,606 | joran.action.ConfigurationAction 中的-INFO - 未设置调试属性 14:46:32,739 | LevelChangePropagator@425941ba 中的-INFO - 将 Logger[org.reflections] 上的 OFF 级别传播到 JUL 框架 .... 14 :46:32,740 |-CH.qos.logback.core.joran.action.TimestampAction 中的信息 - 使用 key="bySecond" 和 value="20161026T144632" 将属性添加到 LOCAL steste 14:46:32,746 |- ch.qos.logback.core.FileAppender[FILE] 中的信息 - 文件属性设置为 [c:/temp/log//TestWeb-20161026T144632.log] 14:46:32,811 |-INFO in joran.action.RootLoggerAction - 将 ROOT 记录器的级别设置为 INFO

?[34mINFO ?[0;39m ?[33m2016-10-26 14:46:35,062?[0;39m ?[35mlocalhost-startStop-2?[0;39m ?[36mo.sswlSeedServletContextListener?[0;39m - 起始种子Web 应用程序 ?[31m?[0;39m?[31mWARN?[0;39m?[33m2016-10-26 14:46:42,623?[0;39m?[35mlocalhost-startStop-2?[0;39m?[36mo .heHibernatePersistence?[0;39m - HHH015016: 遇到一个已弃用的 javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; 使用 [org.hibernate. jpa.HibernatePersistenceProvider] 代替。2016-10-26 14:46:42,678?[0;39m ?[35mlocalhost-startStop-2?[0;39m ?[36mo.hjiuLogHelper?[0;39m - HHH000 204:处理 PersistenceUnitInfo [名称:test-xxx。 ..] 2016-10-26 14:46:42,801?[0;39m ?[35mlocalhost-startStop-2?[0;39m ?[36mo.h.Version?[0;39m - HHH000412:休眠核心{4.3。 11.Final} 2016-10-26 14:46:42,808?[0;HikariCP 池 HikariPool-0 正在启动。 2016-10-26 14:46:43,417?[0;39m ?[35mlocalhost-startStop-2?[0;39m ?[36mo.hdDialect?[0;39m - HHH000400:使用方言:org.hibernate.dialect.MySQLDialect 2016-10-26 14:46:43,908?[0;39m ?[35mlocalhost-startStop-2?[0;39m ?[36mo.hhiaASTQueryTranslatorFactory?[0;39m - HHH000397:使用 ASTQueryTranslatorFactory ?[31m?[0;39m

异常:从线程“ContainerBackgroundProcessor[StandardEngine[Catalina]]”中的 UncaughtExceptionHandler 抛出 java.lang.OutOfMemoryError

0 投票
2 回答
2061 浏览

java - 重新部署war时是否需要重启tomcat?

我知道Tomcat可以.war在重新部署时重新加载文件,我不需要杀死Tomcat进程并重新启动它。我可以删除.war,等待 Tomcat 取消部署,然后将新的复制.war到 Web 路径。但是,经过多次微不足道的更新战争而没有重新启动Tomcat,是否可能Tomcat无法有效释放内存或导致一些性能问题?假设一个 Tomcat 实例中只有一个 war 应用程序。

0 投票
1 回答
288 浏览

war - 在 EAR 中重新部署飞行战争与多重战争 (wildfly)

在一个 EAR 中可能会发生多次战争。

但是,例如在管理控制台上部署时,是否可以只替换 EAR 中的一场战争?

例子 :

耳朵 WAR1 WAR2

然后我只需要重新部署 WAR1 而不是完全 EAR