eclipse使用run on server 方法发布到tomcat时候的坑
tips:用maven创建工程的时候会有A工程依赖B工程。之前用spring boot运行内置tomcat和外部tomcat都没有发现问题。
问题描述
今天使用mvn + spring mvc + mybais,项目工程是sys_stats,基础工是sys_common,里边有公用类和mybatis的mappers。发现当使用run on server时发现并不能找到sys_common的资源和相关的类。
分析过程
仔细分析其异常过程,想确认是否eclipse将war包或者资源文件部署到tomcat的apps地址上。
找到eclipse在工程空间的临时tomcat部署地址,找到对应的common.jar
用j-jui查看common.jar 并无异样。
现在手动maven 打出的war包放到自己的tomcat上是可以正常运行的。
仔细看了看工程的maven dependency lib的形态
抱着试试看的态度关闭common工程
lib形态变为
关闭依赖的项目工程后后再试试,run on server。发现能正常启动
启动后 如果再打开依赖的工程的时候所依赖的包又变为不可见
七月 04, 2017 11:23:34 上午 org.apache.catalina.core.StandardContext backgroundProcess
警告: Exception processing loader [WebappLoader[/demo_ccty]] background process
java.lang.IllegalStateException: java.io.FileNotFoundException: /Users/bao/data/workspace_sjz/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/sym_analysis/WEB-INF/lib/sym_common-0.0.1-SNAPSHOT.jar (No such file or directory)
at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntry(AbstractSingleArchiveResourceSet.java:97)
at org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource(AbstractArchiveResourceSet.java:260)
at org.apache.catalina.webresources.StandardRoot.getResourceInternal(StandardRoot.java:281)
at org.apache.catalina.webresources.Cache.getResource(Cache.java:62)
at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:216)
at org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:225)
at org.apache.catalina.loader.WebappClassLoaderBase.modified(WebappClassLoaderBase.java:686)
at org.apache.catalina.loader.WebappLoader.modified(WebappLoader.java:343)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:287)
at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5563)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1388)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1392)
at org.apache.catalina.cor