Tomcat 7到8.5 - 运行外部Web应用程序

时间:2018-03-08 02:31:57

标签: java tomcat

我有一个使用eclipse / gradle开发的Web应用程序,其中包含许多组件。每个eclipse子项目中的类都在/ bin下,并且依赖jar被复制到〜/ local_tomcat_dependencies(为了方便我的gradle构建)。在我的例子中,我已经删除了大部分项目和罐子。我将Tomcat 7配置为使用以下ROOT.xml运行它,并且它完美地工作(并且用于开发目的已经多年了,而在生产中它运行在Tomcat 8.5上):

<Context path="/" docBase="/Users/jeffp/myproject/system/web/src/main/webapp/">
<Loader className="org.apache.catalina.loader.VirtualWebappLoader"
    virtualClasspath="/Users/jeffp/myproject/system/database/bin;/Users/jeffp/myproject/system/util/bin;/Users/jeffp/myproject/system/main/bin;/Users/jeffp/local_tomcat_dependencies/*.jar"/>
<JarScanner scanAllDirectories="true"/>

在Tomcat 8中执行此操作的方法已更改,并且我无法再使用Tomcat 7,因为Spring 5与Tomcat 7不兼容。因此,我尝试使用PostResources的新配置来加载应用程序。我已经挣扎了几个小时但仍然不能让应用程序运行。我可以看到Tomcat 8.5启动时发生的事情,但它从未完全加载。我认为我缺少的是让它找到WEB-INF / web.xml并启动网络应用程序。我认为应该在下面的示例中使用第一个PostResources来处理。

<Context>
<Resources className="org.apache.catalina.webresources.StandardRoot" cachingAllowed="true" cacheMaxSize="1000000">
    <!-- dependency jars... -->
    <PostResources className="org.apache.catalina.webresources.DirResourceSet" base="/Users/jeffp/myproject/system/web/src/main/webapp/" webAppMount="/" />
    <!-- eclipse bin dirs -->
    <PostResources className="org.apache.catalina.webresources.DirResourceSet" base="/Users/jeffp/myproject/system/database/bin" internalPath="/" webAppMount="/WEB-INF/classes" />
    <PostResources className="org.apache.catalina.webresources.DirResourceSet" base="/Users/jeffp/myproject/system/util/bin" internalPath="/" webAppMount="/WEB-INF/classes" />
    <PostResources className="org.apache.catalina.webresources.DirResourceSet" base="/Users/jeffp/myproject/system/main/bin" internalPath="/" webAppMount="/WEB-INF/classes" />
    <!-- dependency jars (examples... there are a lot) -->
    <PostResources className="org.apache.catalina.webresources.JarResourceSet" base="/Users/jeffp/ww_local_tomcat_dependencies/antlr-2.7.7.jar" internalPath="/" webAppMount="/WEB-INF/classes" />
    <PostResources className="org.apache.catalina.webresources.JarResourceSet" base="/Users/jeffp/ww_local_tomcat_dependencies/asm-5.0.4.jar" internalPath="/" webAppMount="/WEB-INF/classes" />
    <PostResources className="org.apache.catalina.webresources.JarResourceSet" base="/Users/jeffp/ww_local_tomcat_dependencies/spring-beans-5.0.4.RELEASE.jar" internalPath="/" webAppMount="/WEB-INF/classes" />
    <PostResources className="org.apache.catalina.webresources.JarResourceSet" base="/Users/jeffp/ww_local_tomcat_dependencies/spring-boot-2.0.0.RELEASE.jar" internalPath="/" webAppMount="/WEB-INF/classes" />
    <PostResources className="org.apache.catalina.webresources.JarResourceSet" base="/Users/jeffp/ww_local_tomcat_dependencies/spring-boot-autoconfigure-2.0.0.RELEASE.jar" internalPath="/" webAppMount="/WEB-INF/classes" />
    <PostResources className="org.apache.catalina.webresources.JarResourceSet" base="/Users/jeffp/ww_local_tomcat_dependencies/spring-boot-starter-2.0.0.RELEASE.jar" internalPath="/" webAppMount="/WEB-INF/classes" />
</Resources>

日志中没有错误消息。最后一行是:

07-Mar-2018 19:24:47.933 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDescriptor Deploying configuration descriptor [/Users/mbp/apache-tomcat-8.5.15/conf/Catalina/myproject/ROOT.xml]

我知道由于缓存大小错误而正在扫描jar(现在没有显示,因为我添加了cacheMaxSize参数)。

我没有正确配置什么?

0 个答案:

没有答案