【问题标题】:WAR file deployment to Tomcat fails: URI scheme errorWAR 文件部署到 Tomcat 失败:URI 方案错误
【发布时间】: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


【解决方案1】:

日志文件告诉您 Tomcat/JVM 正在尝试直接从 .war 文件中读取文件。不支持URI war:file:/C:/apache-tomcat-8.5.24/webapps/bla.war*/WEB-INF/classes/bla/bla/。此类 URI 不支持包扫描部署。 Try using a different deployment mechanism如显式声明根资源并提供

所以,它看起来像不同的 tomcat 配置。服务器上的Tomcat配置是否设置为解包战争?例如。您需要确保设置了unpackWARs==true。参考:how to make tomcat explode the war files

【讨论】:

  • 卡尔,就是这样。因为“服务器”在互联网上,所以我尝试了一些设置,其中有两个主机部分 - 其中一个有 unpackWARs=false。小细节,大影响。 :-)
猜你喜欢
  • 1970-01-01
  • 2011-03-23
  • 2017-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
  • 2016-10-24
  • 1970-01-01
相关资源
最近更新 更多