eclipse使用run on server 方法发布到tomcat时候的坑

来源:互联网 发布:人生 不 快乐 知乎 编辑:程序博客网 时间:2024/06/08 15:17

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

原创粉丝点击