解决方案 »

  1.   

    让守护线程在ServletContextListener 里启动试试。
      

  2.   

    偏要在 tomcat启动时 在启动其他东西吗
      

  3.   

    你这种方法不行,即使设定优先级,tomcat不保证一定优先执行,只是几率大而已,其实很简单,用一个bean来初始化就可以了,spring初始化不完成项目就不能访问,这样应该也达到了你的目的,你要做的就是写个类,里面包含一个init方法,在这里启动线程,然后在spring里配置<beans>
     <bean id="yourid" class="yourclasspath" init-method="init">
      <property />
     </bean>
    </beans>
      

  4.   

    如果你确实把 ”开启监听端口“放在一个新线程中的话,那可能是其它原因,可以在 Eclipse 中以 debug 方式启动 tomcat,然后在 debug 视图中观察所有线程,右击每一个线程,Suspend 它看它当前正走在哪里。你的新线程应该也是在其中才对,你可以观察它当前正在哪个方法中执行就能猜到原因了。