【发布时间】:2018-05-27 12:53:24
【问题描述】:
我有一个使用 Maven 构建的 war 文件,它包含它需要的所有依赖项(它是一个 REST 服务)。 我在两台机器上都使用 Java JRE 1.8.0_152 和 Tomcat 8.5.24。一台是 Windows 10 64 位机器,另一台是 Windows Server 2012 R2 64 位机器。我已经构建(在 Eclipse/Maven 中)并在 Windows 10 机器上成功部署了 war 文件,但是当我在 Windows 服务器机器上部署相同的 war 文件时,在 Tomcat 启动(或 war 文件部署)时出现以下错误:
13-Dec-2017 14:41:36.603 SEVERE [bla.bla-startStop-1] org.apache.catalina.core.ApplicationContext.log StandardWrapper.Throwable org.glassfish.jersey.server.internal.scanning.ResourceFinderException: The URI scheme war of the URI war:file:/C:/apache-tomcat-8.5.24/webapps/bla.war*/WEB-INF/classes/bla/bla/ is not supported. Package scanning deployment is not supported for such URIs.
Try using a different deployment mechanism such as explicitly declaring root resource and provider classes using an extension of javax.ws.rs.core.Application
然后,我认为相关的进一步消息:
13-Dec-2017 14:41:36.615 SEVERE [bla.bla-startStop-1] org.apache.catalina.core.StandardContext.loadOnStartup Servlet [Jersey REST Service] in web application [/bla] threw load() exception
我将 Jersey 用于 REST 的东西,但是两台机器都安装了相同版本的 JRE 和 Tomcat,而且它是相同的 war 文件!(我什至擦除了 Tomcat 安装并从从头开始 - 同样的事情)。
我什至不知道从哪里开始寻找,因为所有依赖项都包含在 war 文件中(包括球衣罐子),并且它在 Windows 10 机器上运行;我发现唯一值得注意的是war文件名(“bla.war *”)之后错误消息中的星号。我不确定它来自哪里,或者它是否确实与错误的根本原因有关。
任何提示/想法?提前致谢!
【问题讨论】:
-
不知道,但它看起来像不同的 tomcat 配置。服务器上的Tomcat配置是否设置为解包战争?例如。您需要确保设置了 unpackWARs==true。
-
@Karl Nicholas:谢谢,我会检查的。我不认为有区别,因为两者都是 Tomcat 的“下载、解包、运行”类型的安装 - 但它是一些东西!
-
@KarlNicholas:天哪——这是 unpackWAR 设置!我忘记了我为测试目的创建了两个
条目......我们如何将您的评论变成答案?你值得称赞:)
标签: java jersey war tomcat8 url-scheme