java - Tomcat 正在提供内容类型为 "text/html"而不是 JNLP 内容类型的 JNLP 文件

标签 java tomcat java-web-start jnlp

我已经为 Java Web 启动应用程序设置了 Tomcat。现在我在静态 html 页面上提供 .JNLP 文件下载(服务器仅供内部使用)。但是当我点击一个文件而不是下载它时,它会打开并在浏览器中显示 xml 代码。

使用 fiddler 我发现该文件将是内容类型为 text/html 而不是 application/x-java-jnlp-file 的服务器。

我已经在我的 tomcat web.xml 中配置了以下内容:

<servlet>
  <servlet-name>default</servlet-name>
  <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
  <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
  </init-param>
  <init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<mime-mapping>
  <extension>jnlp</extension>
  <mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>

为什么 Tomcat 提供内容类型错误的文件?

最佳答案

我已经为我的案例找到了解决方案。

我将 mime-mapping 标签粘贴到我的 tomcat 的全局 web.xml 中。重新启动服务器并清除浏览器缓存后,它按预期工作。

我学到了什么:不需要额外的 servlet 来下载 JNLP 文件。

关于java - Tomcat 正在提供内容类型为 "text/html"而不是 JNLP 内容类型的 JNLP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58603768/

相关文章:

java - 如何在不支持 Java 7 的情况下将 Java Web Start 限制为 Java 6

java - 如何将图像上传到tomcat或glassfish中的网络资源文件夹

JRE 8u171 无法使用 Java Web Start 离线模式

java - 这个程序的运行时复杂度是多少?(尤其是 retainAll() 方法)

Java : SimpleDateFormat - Unable to parse a string to a date of desired format

java - Railo 和 Tomcat 卡住,PID 未删除

tomcat - 无法在 Java9 项目中处理文件 module-info.class 导致 ClassFormatException

OS X 优胜美地上的 Java 8u40

java - 如何防止 jarsign 脚本覆盖已签名 jar 中的现有 list 值?

java - java中使用的技术使字符串不可变?