美文网首页Java错误异常
使用EDAS时,在启动消费者Ali-tomcat时启动失败,Pa

使用EDAS时,在启动消费者Ali-tomcat时启动失败,Pa

作者: Vchar_Fred | 来源:发表于2018-07-08 14:05 被阅读0次

    我开发使用的IntelliJIdea, 找到当前问题所在是在其tomcat日志文件中发现的,因此若你还没去查看过该日志文件建议去查看。该日志文件路径在: C:\Users\tom\.IntelliJIdea2017.3\system\tomcat\项目名\logs


    在使用阿里的EDAS时,开发中启动消费者的web项目无法启动,控制台打印如下信息:

    INFO: spas-client-initializer start
    JM.Log:INFO Init JM logger with Log4jLoggerFactory
    JM.Log:INFO Log root path: C:\Users\Vchar\logs\
    JM.Log:INFO Set pandora log path: C:\Users\Vchar\logs\pandora
    2018-07-06 18:21:33,391 com.taobao.tomcat.container.context.pandora.PandoraManager startInternal
    INFO: Pandora container started.
    log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    2018-07-06 18:21:41,283 org.apache.catalina.core.StandardContext startInternal
    SEVERE: Error listenerStart
    2018-07-06 18:21:41,287 org.apache.catalina.core.StandardContext startInternal
    SEVERE: Context [] startup failed due to previous errors
    2018-07-06 18:21:41,436 com.taobao.tomcat.container.context.pandora.PandoraManager getPandoraLocation
    INFO: found pandora location from system property: D:\devtools\taobao-tomcat-7.0.59\deploy\taobao-hsf.sar
    2018-07-06 18:21:41,437 com.taobao.tomcat.container.context.pandora.PandoraManager stopInternal
    INFO: Stopping pandora container: D:\devtools\taobao-tomcat-7.0.59\deploy\taobao-hsf.sar
    [EagleEye][INFO] SelfLog async thread is exited
    [EagleEye][INFO] closed AsyncAppender: AsyncAppender [appender=EagleEyeRollingFileAppender [filePath=C:\Users\Vchar\logs\eagleeye\eagleeye-self.log]]
    INFO: spas-client-initializer stop
    2018-07-06 18:21:41,853 com.taobao.tomcat.container.context.pandora.PandoraManager stopInternal
    INFO: Pandora container stopped.
    [2018-07-06 06:21:41,879] Artifact Skyecho-Web-New:war exploded: Error during artifact deployment. See server log for details.
    

    根据提示去查看logs\eagleeye\eagleeye-self.log日志文件发现里面有如下错误:

    [ERROR] failed to add tracing to RxJava.
    java.lang.NoClassDefFoundError: io/reactivex/functions/Consumer
    at com.taobao.eagleeye.EagleEye.addRxJavaTracing(EagleEye.java:506)
    at com.taobao.eagleeye.EagleEye.init(EagleEye.java:585)
    at com.taobao.eagleeye.EagleEye.init(EagleEye.java:616)
    at com.taobao.eagleeye.EagleEye.<clinit>(EagleEye.java:529)
    at com.taobao.eagleeye.EagleEyePandoraService.init(EagleEyePandoraService.java:37)
    ......
    ......
    ......
    Caused by: com.taobao.pandora.common.exception.PandoraLoaderException: [Module-Loader] eagleeye-core: can not load class {io.reactivex.functions.Consumer} after all phase.
    ......
    ......
    

    但是看了错误提示后一脸懵逼,不晓得如何解决,网上查了很久还是无果。最后又返回阿里官方文档去一个个的查阅,官方文档说tomcat启动失败时,请去查看tomcat的catalina.loglocalhost.log日志文件,在查阅了日志文档后发现是有同事的service的bean重复注入,导致启动失败,最后解决后项目正常启动。

    因此在发现不晓得的错误后,最好去这两个日志文件头去查看一下。因为阿里的这个潘多拉容器会将我们的日志配置文件覆盖掉,同时它们自己也有一个日志配置。因此控制台打印的信息可能不全面。


    网上其他的相似问题的解决方案:

    1. 解决方式一: 如果你使用的是Eclipse; 右键项目>properties>targeted runtimes>去掉 apache tomcat的勾
    2. 解决方式二: 由于本地启动了多个项目,导致容器在进行临时文件同步时发生错误,解决办法:在tomcat的启动参数上加上 -Dcom.taobao.pandora.tmp_path=D:\logs\pandoralog\coustomer-log 后面那个是你自己定义的一个路径。

    HSF-0016,服务启动失败,控制打印的错误码HSF-0016;解决方案:

    检查12200端口是否有冲突,一般 Server Bind 失败会造成启动失败。
    多网卡且存在外网 IP 机器,通过-Dhsf.server.ip 来指定本地 IP。


    相关文章

      网友评论

        本文标题:使用EDAS时,在启动消费者Ali-tomcat时启动失败,Pa

        本文链接:https://www.haomeiwen.com/subject/npdouftx.html