Java 在Apache下停止/禁用特定的Web服务

Java 在Apache下停止/禁用特定的Web服务,java,linux,jboss,Java,Linux,Jboss,我在Linux上运行jBoss,它运行Java SOAP Web服务。我通常不在日常工作中处理这些问题,所以不能给出太多细节。webservice是系统另一部分的心跳。考虑到系统的设计(我们希望很快就会改变),我们不能让服务器“停止旋转”来修补它。我想知道的是,有没有一种特定的方法可以只禁用运行心跳信号的web服务,同时允许其他web内容继续运行?如果它生活在自己的.war中,请从$tomcat\u home/webapps中删除.war-该服务将关闭(其余的将继续运行).听起来你无法触及战争,

我在Linux上运行jBoss,它运行Java SOAP Web服务。我通常不在日常工作中处理这些问题,所以不能给出太多细节。webservice是系统另一部分的心跳。考虑到系统的设计(我们希望很快就会改变),我们不能让服务器“停止旋转”来修补它。我想知道的是,有没有一种特定的方法可以只禁用运行心跳信号的web服务,同时允许其他web内容继续运行?

如果它生活在自己的
.war
中,请从
$tomcat\u home/webapps
中删除
.war
-该服务将关闭(其余的将继续运行).

听起来你无法触及战争,如果不取消部署服务或更改代码,就无法轻松地停止战争中的单个服务。这有点像是瞎猜,但您可能能够在容器级别单独部署一个用于拦截绑定(即匹配URI)heartbeat web服务的http请求的代理。当您想要重新启用心跳时,您可以取消部署该阀


它不会停止心跳,但您可以阻止它接收请求。

如果前面有任何负载平衡器,您可以暂时阻止该级别的请求。或者,如果可能对代码进行微小的更改,您可以在properties-service.xml中引入一个新属性(BLACKOUT\u PERIOD\u ACTIVE或其他内容),并让web服务在响应之前检查它。如果断电期间处于活动状态,则可以相应地插入逻辑

没有实现的所有细节也不是没有的。因此,事实证明他们处于同一场战争中。删除处理请求的.class文件就足够了,还是这只是一个坏主意?您不能停止webapp(处理心跳请求的服务)中的一项功能在不影响webapp其他部分的情况下,除非有人自己将该逻辑构建到应用程序中。如果是jboss,它肯定支持热取消部署。只需从jbosshome/server/myserver/deploy目录中删除服务这两个服务(1个停止,1个不停止)位于同一个.war中,因此我不能只删除war。我可以从.war中删除.class文件吗,或者这是个坏主意?