Chris2018998 / beecp-starter

beecp starter on springboot
Apache License 2.0
35 stars 12 forks source link

beecp-spring-boot-starter-1.6.6会导致独立的Tomcat9.0.50启动报错 #20

Open LSL1618 opened 2 years ago

LSL1618 commented 2 years ago

@Chris2018998 我将beecp-spring-boot-starter升级到1.6.6后,把项目打成war包然后部署到Tomcat9.0.50,启动之后项目无法访问。日志文件报错内容如下:

02-Jun-2022 16:40:04.571 严重 [main] org.apache.catalina.core.StandardContext.startInternal 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到
02-Jun-2022 16:40:04.575 严重 [main] org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[/pqcs]启动失败
02-Jun-2022 16:40:04.571 严重 [main] org.apache.catalina.core.StandardContext.filterStart 启动过滤器异常
    java.lang.NoSuchMethodException: cn.beecp.boot.datasource.monitor.DataSourceMonitorFilter.<init>()
        at java.lang.Class.getConstructor0(Class.java:3082)
        at java.lang.Class.getConstructor(Class.java:1825)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:250)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4613)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:728)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1024)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1911)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:825)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:475)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
        at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
        at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:948)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1388)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:921)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:437)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:934)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Chris2018998 commented 2 years ago

感谢反馈,我看一下,尽快解决。

Chris2018998 commented 2 years ago

试一下这个临时包

https://github.com/Chris2018998/BeeCP-Starter/blob/master/doc/temp/beecp-spring-boot-starter-1.6.6.jar

Chris2018998 commented 2 years ago

启动类继承一下 SpringBootServletInitializer ,类似

@EnableMultiDs
@EnableDsMonitor
@SpringBootApplication
public class MutilDsApplication extends SpringBootServletInitializer {

   public static void main(String[] args) {
        SpringApplication.run(MutilDsApplication.class, args);
    }
}
Chris2018998 commented 2 years ago

新版本已出,有什么问题,欢迎交流。

LSL1618 commented 2 years ago

@Chris2018998 新版本试用了一下,正常不报错了!非常感谢及时修复!打成war包部署在独立的tomcat中,启动类肯定是要继承 SpringBootServletInitializer 类的,这是前提条件。