精华内容
下载资源
问答
  • (1)然后,在tomcat\bin目录下运行“service.bat install”,(如果是vistar或者windows7需要以管理员身份运行命令行,否则其安全机制会阻止安装tomcat服务) (2)然后services.msc进入服务控制台,设置tomcat服务为...

    设置成系统自启动服务:

    (1)然后,在tomcat\bin目录下运行“service.bat install”,(如果是vistar或者windows7需要以管理员身份运行命令行,否则其安全机制会阻止安装tomcat服务)
    (2)然后services.msc进入服务控制台,设置tomcat服务为自动启动

    定时启动关闭

    (1)在记事本中输入shutdown -r -f -t 10保存为.bat文件(10为时间多久重启一次,其实就是windows延迟多少秒后重启电脑的命令)

    (2)打开C:\WINDOWS\Tasks文件夹,双击添加任务计划----》下一步------》浏览---》 选中你刚的.bat文件----》下一步----》下一步---》输入密码---》下一步----》勾选上 在点击“完成”时,打开此任务的高级属性。

    (3)在弹出的窗口中-----计划-----》高级-----》选择自己的需要

    注意:运行中输入:services.msc打开服务,找到Task Scheduler看是否禁用,禁用的话上面的设置不会生效,设置成自动才有效

    展开全文
  • Tomcat 怎么停止服务的?

    千次阅读 2017-09-07 10:54:58
    这里有个疑问,既然都是通过调用 MAINCLASS 类进行操作的,那就是启动tomcat服务是一个进程、关闭tomcat服务应该是另一个进程。那么如果是多个进程,是怎么互相操作的呢?带着疑问我们分析下tomcat的源码。客户端...

    通过分析 Tomcat catalina.bat 原理解析时,发现启动tomcat和关闭tomcat都是调用 MAINCLASS 启动类进行操作的。

    Catalina.bat

    这里有个疑问,既然都是通过调用 MAINCLASS 类进行操作的,那就是启动tomcat服务是一个进程、关闭tomcat服务应该是另一个进程。

    那么如果是多个进程,是怎么互相操作的呢?带着疑问我们分析下tomcat的源码。

    客户端操作(shutdown操作)

    Bootstrap 类 main 方法

    Bootstrap类main方法

    这里会调用stopServer() 方法

    Bootstrap 类 stopServer() 方法

    Bootstrap 类 stopServer 方法
    这里通过反射会调用 Calalina.java 中的 stopServer 方法

    Calalina 类 stopServer() 方法

    Calalina 类 stopServer 方法

    从该方法中我们发现,它是通过 socket 连接 要关闭的 tomcat 服务器,只发送一个 “SHUTDOWN” 字符串操作,就执行结束了。

    Socket的ip和端口

    SHUTDOWN 的默认ip是localhost,端口是通过tomcat\conf\server.xml中配置的,如下:
    tomcat/conf/server.xml

    服务端操作(运行中的tomcat)

    Catalina类 start 方法

    Catalina.java 类中start方法中调用了两个方法如下:
    Catalina 类 start 方法

    1. await() 方法监听停止服务请求的方法
    2. stop() 方法是停止服务的方法

    await() 方法是阻塞方法,只有客户端请求关闭tomcat服务时,他才会执行stop() 方法,否则一直等待关闭请求。

    StandardServer 类 await 方法

    StandardServer 类 await
    通过源码,可以看出,这里开启了一个ServerSocket,端口是Server.xml 中配置的 shutdown 端口。
    然后调用socket.accept() 方法监听停止tomcat服务的请求。

    **这里的address默认是”localhost”,也就是只监听ip是localhost上的关闭请求。
    如果想支持远程关闭,可以这样配置:**

    <Server port="8085" shutdown="SHUTDOWN" address="192.168.3.249">

    Paste_Image.png

    如果有请求,则接受请求,并判断请求的内容是不是 “SHUTDOWN” 字符串。
    如果是 “SHUTDOWN”,则跳出循环,并停止该 Socket 服务。然后在调用停止 Tomcat 服务方法。

    Catalina 类 stop() 方法

    停止服务代码如下 :
    Paste_Image.png

    本人简书blog地址:http://www.jianshu.com/u/1f0067e24ff8    
    点击这里快速进入简书

    GIT地址:http://git.oschina.net/brucekankan/
    点击这里快速进入GIT

    展开全文
  • 怎么启动tomcat服务器及闪退问题

    千次阅读 2019-05-19 19:58:35
    怎么启动tomcat服务器 1.启动tomcat目录。 tomcat目录/bin/startup.bat(window启动文件) 找到startup.bat 双击运行。会有一个黑窗口,黑窗口不要关闭。(如果关闭,相当于把tomcat停止了。) 2.在浏览器地址栏中...

    怎么启动tomcat服务器
    1.启动tomcat目录。 tomcat目录/bin/startup.bat(window启动文件) 找到startup.bat 双击运行。会有一个黑窗口,黑窗口不要关闭。(如果关闭,相当于把tomcat停止了。)

    在这里插入图片描述

    2.在浏览器地址栏中输入:http://localhost:8080 或者 http://127.0.0.1:8080localhost ,如果看到如下页面,证明启动成功

    在这里插入图片描述
    闪退问题
    重启一下电脑,或者检查一下端口是否被暂用了

    展开全文
  • 关闭Tomcat时报如下错误: > 四月 25, 2018 10:18:12 上午 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads # > 警告: The web application [Oaks] appears to have started a thread...
  • 原以为是tomcat的问题,换了tomcat还会报错。 如图,错误信息是说dt_socket.dll文件有错。这个文件是在jdk文件夹中jre/bin下的。这么说还是jdk的问题? 这个错误什么时候产生不明确,只得等待。有次两天没出错,我...
  • 在整个发版过程中,需要对线上业务无感知,对业务不产生任何影响,这里就需要涉及到如何对服务和网关进行优雅关闭和启动了。本文将聚焦于Dubbo服务集群网关(我们内部也称之为接入层)的优雅关闭流程,研究基于Tomca.....

    云集技术平台以分布式架构分层部署,以 Dubbo 作为微服务框架, Tomcat 作为 Dubbo集群聚合的网关。随着业务的飞速迭代,需要频繁的对服务和网关进行迭代升级发版。在整个发版过程中,需要对线上业务无感知,对业务不产生任何影响,这里就需要涉及到如何对服务和网关进行优雅关闭和启动了。

    本文将聚焦于 Dubbo 服务集群网关(我们内部也称之为接入层)的优雅关闭流程,研究基于 Tomcat 的 Dubbo 网关如何做到优雅关闭。

    1. 背景

    过去云集业务在发版的这个过程中,经常会收到大量的异常告警短信,这说明发版影响了线上服务。通过大量的日志分析和定位后,我们发现导致发版告警的原因主要有以下几方面:

    • 节点在关闭的过程中没有优雅关闭,存在请求还在处理中未返回时,服务容器已经处于关闭阶段的情况。

    • 升级后启动节点时,没有做到整体流量平顺,导致节点压力过大,出现线程池耗尽等异常。

    • 在关闭接入层时,没有及时摘除节点,表现为接入层正在关闭,而 Nginx 流量仍然在往该节点发。

    找到原因之后,上面3个问题我们通过各种手段和技术一一解决,现在云集系统在发版时,已如丝般顺滑。本文将重点分析一下第一条出现的原因和解决方案,并带大家更加了解 基于Tomcat、SpringDubbo的优雅关闭流程。

    2. 概述

    通常情况下,Dubbo 网关接入层以 Tomcat 作为载体,并同时作为一个 Dubbo Consumer 的角色,聚合多个 Dubbo 服务调用结果,并返回给前端。

    因此我们最终的目标是完成由 Tomcat容器的优雅关闭 -> Spring容器的关闭 -> Dubbo容器的关闭。由于公司业务发展迭代,新旧服务并行,导致目前在选择 Tomcat 和 Dubbo 版本时,存在一些差别,比如有点业务服务使用的是比较传统的 Tomcat7 + Spring3 + Dubbo2.5的架构,而比较新兴的业务则使用的是比较新的 Springboot + Dubbo2.7 的版本。由于版本的选择不同,上述三个组件的关闭顺序是不同的。

    这三者关闭的顺序可能是并行的,也可能是串行的。如果是并行的情况,其组件之间不能做到顺序的关闭,可能会影响到业务,不能达到优雅关闭的效果,云集此前就由于这个原因,导致发版频繁出现大量异常。因此,我们逐一分析一下这三个组件的关闭逻辑,以及给出怎么解决3个组件的关闭顺序的方案。

    2.1. JVM 优雅关闭钩子

    JVM 提供了 Runtime.getRuntime().addShutdownHook方法用来注册自定义的关闭逻辑。

    代码类:java.lang.Runtime

    public void addShutdownHook(Thread hook) {
      SecurityManager sm = System.getSecurityManager();
      if (sm != null) {
        sm.checkPermission(new RuntimePermission("shutdownHooks"));
      }
      ApplicationShutdownHooks.add(hook);
    }
    • JVM 在退出时会等待所有的钩子线程执行完毕之后,才会彻底关闭。到时候会直接停止还在运行的所有线程(包括daemon非daemon)。

    • 关闭钩子本质上是一个线程,对于一个JVM中注册的多个关闭钩子会并发执行,所以 JVM 并不保证它们的执行顺序,建议在一个钩子中执行应用的关闭操作。

    • 在关闭钩子中,不能执行注册、移除钩子的操作,JVM将关闭钩子序列初始化完毕后,不允许再次添加或者移除已经存在的钩子,否则 JVM抛出 IllegalStateException。不能在钩子调用System.exit(),否则卡住JVM的关闭过程,但是可以调用Runtime.halt()

    3. Tomcat 的优雅关闭

    使用 kill -15 或 kill 来关闭 Tomcat 时,  Tomcat 会收到 kill 信号,并触发 Tomcat 在启动时就注册好的 JVM 优雅关闭钩子,详见如下代码(注:本文主要以 Tomcat7 的源码作为说明, Tomcat8 逻辑类似)。

    • 类 org.apache.catalina.startup.Catalina

    public void start() {
      //... 部分代码省略 ...
        //核心逻辑,注册shutdown hook 勾子
        if (useShutdownHook) {
            if (shutdownHook == null) {
                shutdownHook = new CatalinaShutdownHook();
            }
            Runtime.getRuntime().addShutdownHook(shutdownHook);
        }
        //... 部分代码省略 ...
    }

    protected class CatalinaShutdownHook extends Thread {
        @Override
        public void run() {
            try {
                if (getServer() != null) {
                    Catalina.this.stop();
                }
            } catch (Throwable ex) {
                ExceptionUtils.handleThrowable(ex);
                log.error(sm.getString("catalina.shutdownHookFail"), ex);
            } finally {
                LogManager logManager = LogManager.getLogManager();
                if (logManager instanceof ClassLoaderLogManager) {
                    ((ClassLoaderLogManager) logManager).shutdown();
                }
            }
        }
    }
    • 在接收kill信号之后,会触发 Catalina.this.stop() 来进行关闭,其具体关闭逻辑如下:

    public void stop() {
      // Shut down the server
      try {
        Server s = getServer();
        LifecycleState state = s.getState();
        if (LifecycleState.STOPPING_PREP.compareTo(state) <= 0
            && LifecycleState.DESTROYED.compareTo(state) >= 0) {
          // Nothing to do. stop() was already called
        } else {
          s.stop();
          s.destroy();
        }
      } catch (LifecycleException e) {
        log.error("Catalina.stop", e);
      }
    }

    Stop() 方法会停止 Tomcat Server,从而去停止其各组件,包括 filter,listener,servlet 等等,最后再调用各组件的 destroy() 方法进行资源释放。

    3.1. 结论

    本节主要介绍了基于 kill -15 的操作来关闭 Tomcat 容器时,Tomcat 通过 JVM shutdownhook 可以对整个程序关闭进行强有力的控制,可以做到优雅的关闭。

    如果我们考虑在 Tomcat 收到 kill 信号时,等待若干秒后再执行优雅关闭,可以在Catalina.this.stop()前进行拦截并增强。

    4. SpringWeb 的优雅关闭

    在本文中 SpringWeb专指基于 SpringMVC 模式,多数通过xml进行配置,并打成war包在 Tomcat容器中运行的模式,区别于目前比较新颖的技术SpringBoot。

    上文提到了 Tomcat 在关闭时,会分别关闭其各种组件,包括启动时注册在其上的 Servlet、 Listener、 Filter 等,而在关闭 Servlet 和Listener 的这个过程中,其实会触发关闭 SpringMVC 和 Spring 容器

    4.1. Spring MVC 关闭

    因为 SpringMVC 核心就是一个 Servlet,因此能够直接接收到 Tomcat 的关机信号。

    代码类:javax.servlet.Servlet

    public interface Servlet {
       //省略部分代码

        void destroy();
    }

    Servlet 接口定义了 destroy 方法,子类通过实现此方法,并处理关闭逻辑即可。

    代码类:org.Springframework.web.servlet.FrameworkServlet

    /**
     * Close the WebApplicationContext of this servlet.
     */

    @Override
    public void destroy() {
      // Only call close() on WebApplicationContext if locally managed...
      if (this.webApplicationContext instanceof ConfigurableApplicationContext && !this.webApplicationContextInjected) {
          ((ConfigurableApplicationContext) this.webApplicationContext).close();
      }
    }

    相信大家都清楚 SpringMVC 的核心就是一个 Servlet, 其实现类为 DispatcherServlet,在其父类 FrameworkServlet 中实现了 Servlet 接口的 destroy 方法,并在方法里面调用了 this.webApplicationContext().close(),而当前类中的 webApplicationContext 即为 Spring 上下文 ApplicationContext 的子类,通过调用其 close() 方法就可以优雅的关闭 Spring容器。

    4.2. Spring Root 容器的关闭

    Spring Root 容器(父容器) 在Tomcat启动时,是通过 ServletContextListener 这个类来加载启动的,此类实现了 Listener,当Tomcat容器进行关闭的时候,即会触发其关闭逻辑,并实现优雅关闭,代码示例如下:

    代码类:

    org.Springframework.web.context.ContextLoaderListener

    public class ContextLoaderListener extends ContextLoader implements ServletContextListener {
      /**
       * Close the root web application context.
       */

      @Override
      public void contextDestroyed(ServletContextEvent event) {
        closeWebApplicationContext(event.getServletContext());
        ContextCleanupListener.cleanupAttributes(event.getServletContext());
      }
    }

    4.3. 结论

    在 SpringWeb 模式下,Spring父子容器都是基于 Servlet api 实现的,因此其关闭逻辑由 Tomcat 关闭触发,也就意味着 Tomcat 和 Spring 的关闭是串行执行的,即 Spring 容器的关闭是在 Tomcat 容器作出反应之后进行的。在这样的模式下关闭,能够达到优雅关闭。

    5. SpringBoot 模式的优雅关闭

    SpringBoot 的入口类是 org.Springframework.boot.SpringApplication.run,其启动和关闭逻辑和传统的SpringWeb 存在较大差别。

    在 SpringApplication.run 的过程中,有下面这段代码是注册优雅关闭钩子的,该钩子最终执行的是 doClose 方法。

    public ConfigurableApplicationContext run(String... args) {
        // omitted...
        refreshContext(context);
        // omitted...
    }

    private void refreshContext(ConfigurableApplicationContext context) {
      refresh(context);
      if (this.registerShutdownHook) {
        try {
          context.registerShutdownHook();
        }
        catch (AccessControlException ex) {
          // Not allowed in some environments.
        }
      }
    }

    因此SpringBoot在接收到 kill 信号时,会触发org.Springframework.context.support.AbstractApplicationContext 类的 doClose() 方法,并开始对Spring容器进行关闭。

    @Override
    public void registerShutdownHook() {
      if (this.shutdownHook == null) {
        // No shutdown hook registered yet.
        this.shutdownHook = new Thread() {
          @Override
          public void run() {
            synchronized (startupShutdownMonitor) {
              doClose();
            }
          }
        };
        Runtime.getRuntime().addShutdownHook(this.shutdownHook);
      }
    }

    5.1. 结论

    在 SpringBoot 以 war 包部署的情况下,Tomcat 的关闭和 Springboot 的关闭是并行的,因为它们各自注册了JVM关闭钩子,因此其关闭过程是不分先后的。

    而在 SpringBoot 以jar包形式运行时,其Tomcat容器是内嵌的模式,因此是由SpringBoot 来引导 Tomcat进行关闭,其关闭过程则是串行的。

    5.2 小结

    上文我们分析了 Tomcat 和 SpringWeb 是一个串行的优雅关闭机制,SpringWeb 的组件不会注册优雅关闭钩子,而是直接在 Tomcat 的关闭过程中对自己进行关闭。

    Springboot 则是和Tomcat关闭是并行的。

    这两种情形下都可以正常的关闭应用,不会有什么问题。但是如果我们想在Tomcat收到 kill 信号之后,停顿一段时间(10s)再关闭,那么如何在Tomcat容器停顿的同时,Spring容器也能跟着停顿呢?

    当然传统 Spring是可以跟着停顿的。SpringBoot如何去做呢?

    6. Dubbo 2.5 优雅关闭

    云集内部基本上所有业务的Dubbo服务容器都是基于Spring运行的,因此后文谈到的Dubbo关闭的前提都会是 Tomcat -> Spring -> Dubbo 这个流程。

    通过前文的分析,我们已经知道以 Tomcat 为容器的 SpringWeb 应用在关闭时是可以随着Tomcat关闭而关闭的。如果在这两个组件的基础上再增加 Dubbo 容器组件呢?

    Dubbo 2.5的版本自己维护了一个优雅关闭钩子,代码如下:

    代码类:com.alibaba.Dubbo.config.ProtocolConfig

    static {
            Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
                public void run() {
                    if (logger.isInfoEnabled()) {
                        logger.info("Run shutdown hook now.");
                    }
                    ProtocolConfig.destroyAll();
                }
            }, "DubboShutdownHook"));
    }

    这段静态代码块注册了Dubbo自己的关闭钩子。

    当收到 kill 信号时,它会调用 ProtocolConfig.destroyAll() 来对容器进行关闭。因为它自己注册了JVM钩子,所以它的关闭过程和 Tomcat 容器是并行的,有可能 Tomcat刚准备开始关闭时,Dubbo已经开始关闭了。

    这样就会造成很多问题,Dubbo容器依托于 Spring 容器,外界的调用通过 Spring 容器最终调用到Dubbo,如果此时 Spring 容器没有销毁,仍有请求进来,但是Dubbo容器却已经销毁了,这就会造成异常,这样关闭不是优雅的。

    6.1. 结论

    当 Dubbo 依托 Spring 容器启动时,Dubbo 2.5版本的关闭是存在明显缺陷的,它不能保证关闭时新的请求会进来。正常情况下,Dubbo容器的关闭应该由 Spring 容器关闭时触发,按照 Tomcat -> Spring -> Dubbo 的顺序来进行关闭,才能达到完全的优雅关闭,不出现异常。

    那么Dubbo如何做到在Spring之后进行关闭呢? 我们应该做到如下两点:

    • 移除Dubbo自己维护的JVM Shutdown Hook 关闭钩子。

    • 通过监听 Spring 关闭的事件如 ContextClosedEvent 之后,触发关闭逻辑。

    7. Dubbo 2.6 优雅关闭

    Dubbo 2.6 版本对比 2.5 版本有一定的变化,它构建一个DubboShutdownHook 类,专用于优雅关闭。并且仍然维护了一个关闭钩子, 不过注册逻辑放在了 AbstractConfig 类下,通过静态代码块注册

    代码类:com.alibaba.Dubbo.config.AbstractConfig

    static {
        Runtime.getRuntime().addShutdownHook(DubboShutdownHook.getDubboShutdownHook());
    }

    通过静态代码类注册了Dubbo自己的关闭钩子 DubboShutdownHook。

    代码类:com.alibaba.Dubbo.config.DubboShutdownHook

    public class DubboShutdownHook extends Thread {

      @Override
      public void run() {
        if (logger.isInfoEnabled()) {
          logger.info("Run shutdown hook now.");
        }
        //销毁Dubbo容器, 具体代码略.
        destroyAll();
      }

    DubboShutdownHook 在 JVM钩子触发时会调用 destroyAll() 方法销毁Dubbo容器。同时,2.6 版本增加了监听 Spring 关闭事件后,触发销毁容器的逻辑,如下代码所示:

    代码类:com.alibaba.Dubbo.config.Spring.extension.SpringExtensionFactory

    public class SpringExtensionFactory implements ExtensionFactory {
        private static final ApplicationListener shutdownHookListener = new ShutdownHookListener();

        public static void addApplicationContext(ApplicationContext context) {
            contexts.add(context);
            BeanFactoryUtils.addApplicationListener(context, shutdownHookListener);
        }

        private static class ShutdownHookListener implements ApplicationListener {
            @Override
            public void onApplicationEvent(ApplicationEvent event) {
                if (event instanceof ContextClosedEvent) {

                    DubboShutdownHook shutdownHook = DubboShutdownHook.getDubboShutdownHook();
                    shutdownHook.destroyAll();
                }
            }
        }
    }

    如上所示,当收到 ContextClosedEvent 事件时,会调用 shutdownHook.destroyAll() 来销毁 Dubbo 容器。

    7.1. 结论:

    Dubbo 2.6 版本支持了监听 Spring Close 的事件后关闭自身来做到和 Spring 容器串行关闭。
    但是这个版本仍然自己维护了一个 关闭钩子。这样当收到 kill 信号时,首先 Dubbo 自身的钩子会触发一次 destroyAll 方法,然后 Spring 容器在关闭时又会触发一次 destroyAll 方法。
    相当于这里会触发两次,并且 Dubbo自己触发的那次和 Spring 以及 Tomcat 的关闭会是并行状态,仍然会存在问题,这样不是一个优雅关闭模式。

    8. Dubbo 2.7 优雅关闭

    Dubbo 在2.7 版本中针对 2.6 的问题进行了修复,当认为当前 Dubbo 容器是和 Spring 一起启动运行时,就会将自己维护的 JVM 钩子移除,详见代码如下:

    2.7 版本仍然在AbstractConfig中通过静态代码注册了关闭钩子,但是上面加了一段注释,主要做兼容。

    代码类:org.apache.Dubbo.config.AbstractConfig

    static {  
            // this is only for compatibility 注册钩子
            DubboShutdownHook.getDubboShutdownHook().register();
    }

    代码类:DubboShutdownHook

    /**
    * Register the ShutdownHook
    */

    public void register() {
      if (!registered.get() && registered.compareAndSet(falsetrue)) {
        Runtime.getRuntime().addShutdownHook(getDubboShutdownHook());
      }
    }
    /**
    * Unregister the ShutdownHook
    */

    public void unregister() {
      if (registered.get() && registered.compareAndSet(truefalse)) {
        Runtime.getRuntime().removeShutdownHook(getDubboShutdownHook());
      }
    }
    • 通过 register 和 unregister 注册钩子和取消注册钩子。

    在 SpringExtensionFactory 类,增加了下面一个操作,当认为当前 Dubbo 容器是基于 Spring 时,会将自己维护的钩子移除。

    代码类:org.apache.Dubbo.config.Spring.extension.SpringExtensionFactory

     public static void addApplicationContext(ApplicationContext context) {
            CONTEXTS.add(context);
            if (context instanceof ConfigurableApplicationContext) {
                ((ConfigurableApplicationContext) context).registerShutdownHook();
               // 这里会移除自己注册的钩子
                DubboShutdownHook.getDubboShutdownHook().unregister();
            }
            BeanFactoryUtils.addApplicationListener(context, SHUTDOWN_HOOK_LISTENER);
        }

    通过上面的代码将Dubbo 自己维护的关闭钩子移除以后,Dubbo 的关闭逻辑就会和 Spring 同步串行执行了。

    8.1. 总结

    Dubbo 2.7 版本曲线救国,一波三折,终于将 Dubbo 的关闭逻辑和 Spring 同步了,这样我们总算实现了本文开始提出的 Tomcat -> Spring -> Dubbo 这个串行之行的目标。这也是我们希望预期能达到的关闭模式,因为在这种模式下,是能够保证整个程序优雅关闭的。

    9. 拓展

    通过了解接入层服务的关闭流程和原理之后,我们可以针对已存在不能优雅关闭的版本关键代码使用字节码增强等手段进行修复。最终通过技术加上相关流程,我们在内部兼容并实现了这套优雅关闭。现在云集发版系统对线上发版的错误异常已经大幅度减少,再也没有看到因为发版非优雅关闭而出现的告警短信和邮件了。

              关注一下,更多精彩等着你!

    f2c2db6ff8afa830c12c6851815c3edb.png

    展开全文
  • Tomcat的 (服务) 错误 我今天在使用阿帕奇的Tomcat软件时,由于装在了有中文的目录下,再次启动服务时出现了打不开服务的问题 于是我就卸载了…但是再重新装这个软件时 出现了各种各样...强制关闭Tomcat服务,再删除注册表
  • 随时记录遇到的问题,后续...linux下启动tomcat或者关闭tomcat时,都会报错,如下:Catalina.stop: java.net.ConnectException: Connectionrefusedjava.net.ConnectException: Connection refusedat java.net.PlainS...
  • 时间线2020-07-11 17:40:00 hotfix修复版本上线2020-07-11 17:50:00 用户反馈页面无法访问,所有的请求全部爆502 bad gateway , 显示连接不上后端服务了2020-07-11 17:54:00 运维第一反应给予系统重启2020-07-11 17:...
  • 背景 有时候我们作为client不知道服务器是否提供长连接,或者...我把tomcat maxkeepaliverequest参数设定为1,意思是只要接收一个请求就断开,相当于关闭了长连接。 request我勾选了keep alive 查看结果respons...
  • 从计算机管理-服务中启动Tomcat服务。 !... 然后打开jconsole或者jvisualvm没有检测到Tomcat服务怎么办?...**但是我想要的,是通过启动服务的方式启动Tomcat服务,jconsole,和jvisualvm怎么能监控到。 **
  • Tomcat8.5正常启动日志[注意日志解释]正常关闭Tomcat服务日志[shutdown.sh]kill -9 进程号 关闭Tomcattomcat的shutdownhook被触发,执行了销毁逻辑 线上Tomcat进程怎么又不见了? 10月5日,作为程序员的你正享受着...
  • 这表示服务器在连接关闭之前等待客户端发出请求的最长时间: server.connection-timeout= 5s 我们还可以定义请求头的最大大小: server.max-http-header-size= 8KB 请求正文的最大大小: server.tomcat.max-swallow-...
  • 于是就想写一个bat脚本控制tomcat的重启,然后发现不知道该怎么批量关闭。试了好多,杀端口都不行。就连start批量启动也不行,因为这万恶的路径带中文,贼尴尬啊。有没有什么好的方法来控制tomcat的重启
  • 进和你tomcat的安装目录进入里面bin目录下列可以直接在cmd中运行(要进入tomcat的bin目录),也可直接双击startup.bat 启动tomcatshutdown.bat 关闭tomcatservice install (service.bat加上 install参数)安装成服务.....
  • 本次的实验需要nginx服务和tomcat服务{具体就不讲怎么安装}环境: 1.centos6.5 2.iptables和selinux关闭 3.服务全部启动 思路:通过nginx的配置文件中指定对应的服务。nginx.conf配置内容:#user nobody; ...
  • 前几天阿粉的一个小学弟在咨询阿粉面试的时候怎么还会问到关于Tomcat调优和JVM优化,我听完这个的时候,当时就想说,问这个不是应该的么?那么下面阿粉就给大家好好的掰扯掰扯这个Tomcat优化和 JVM 参数优化的事情...
  • 症状 在eclipse中是比较正常的,tomcat在eclipse里面能正常启动,而...关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问htt://localhost:8080/能正常访问tomcat管理页面。 ...
  • 我们现在有一台Windows2012的云服务器 在云服务器上能用localhost直接访问tomcat项目 但在本地用云服务ip地址却访问不了 是因为什么 需要配置什么文件么 防火墙是关闭的 入网规则和出网规则端口也配置了
  • 热部署能够在不关闭Tomcat的情况下直接将war包部署到服务器上。修改Tomcat配置文件需要修改tomcat的conf/tomcat-users.xml配置文件。添加用户名、密码、权限。启动服务器点击这个链接进入后台管理功能这里输入刚才...
  • Apache JServ protocol服务 怎么关闭

    千次阅读 2017-10-27 16:51:00
    Apache JServ protocol = AJP 解决方案:修改tomcat 的service.xml配置文件 将 &lt;Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /&gt;这一行注释掉
  • tomcat 创建定时 任务 关闭 重启

    千次阅读 2015-11-24 19:09:50
    但是我们的服务器有时候就卡死了或者怎么样,毕竟也有不少人 本来是要用集群的,,可是虚拟机啊,,本来分的就少。。 然后朋友说 用 任务计划 可以的,然后整了好烦人设置 tomcat 定时任务1.第一种方案1.1控制面板...
  • 使用shutdown.bat 停止不了tomcat ,这是jvm内存设置的问题么,怎么会停止不了服务器 提示 Error occurred during initialization of VM Could not reserve enough space for object heap 看...
  • 前提条件:1、安装linux系统2、打开linux系统的ssh服务3、关闭linux系统远程防火墙4、在linux系统安装tomcat服务5、提前准备好应用war包6、需要安装paramiko服务使用场景:节省重复又麻烦的手动部署动作,自动化多...
  • tomcat是一个web容器,可以将web应用部署到tomcat,由它提供web服务,一个web容器中可以部署多个web应用,这些web应用可以是同一个域名,也可以是多个域名的服务。 3. tomcat有哪些组件 4.怎么快速理解这些组件呢?...
  • 因为最近发现有服务器的tomcat不知道什么缘故关闭了,导致页面访问不了、为了解决这一问题。就将tomcat改为自启动。怎么改能?流程如下: 在电脑搜索栏输入services.msc进入电脑的服务管理界面并且找到服务器的位置...
  • 由于 SpringBoot 是一个微服务框架,其生产部署的方式也需要尽可能的简单,与常规的 Web 应用有着一个巨大的不同之处,它可以内嵌一个 Web 容器,如:Tomcat、Jetty等,不再需要将应用打包成容器规定的特定形式。...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 132
精华内容 52
关键字:

tomcat服务怎么关闭