我有一个使用Internet Explorer打开* .jnlp扩展的问题 . 该扩展程序在Chrome和Firefox中正常打开,让我相信它是IE的问题,可能还有Web服务器/ JNLP配置 . 具体来说,Internet Explorer将* .jnlp文件作为* .xml脚本打开,而不是下载文件或使用java web start打开它 .
Example:
<?xml version="1.0" encoding="utf-8" ?>
- <!--
JNLP File for Downtime Registration Application
-->
- <jnlp spec="1.7+" codebase="http://foo:8080/bar" href="bar.jnlp">
- <information>
<title>FOO</title>
<vendor>FOO Inc.</vendor>
<description>FOO BAR System</description>
- <shortcut online="false">
<desktop />
<menu submenu="FOO" />
</shortcut>
</information>
- <security>
<all-permissions />
</security>
- <resources>
<j2se version="1.7+" java-vm-args="-client" />
...
</resources>
<application-desc main-class="FooBarMainApp" />
</jnlp>
我尝试了以下“修复”/解决方法无济于事:
-
以管理员身份运行IE
-
将URL添加到兼容性视图
-
将JAVA设置更改为"Always allow JNLP/MIME"
-
重置Internet Explorer高级设置
-
更改Web服务器的web.xml文件中的MIME扩展设置
-
将IE设置更改为始终允许文件下载
Update: 我能够通过下面发布的解决方法解决此问题 . 但是,如果有人有建议,我正在寻找更永久的解决方案 . 具体来说,我正在寻找一种方法来解决这个问题在业务/服务器端,如果可能的话 . 如果用户不需要改变他们的任何设置(其他然后从IE切换到不同的浏览器)将是很好的 .
MIME-Mapping in web.xml:
<mime-mapping>
<extension>jnlp</extension>
<mime-type>application/x-java-jnlp-file</mime-type>
</mime-mapping>
3 回答
我最终通过更改Internet Explorer中的特定设置来解决此问题 .
工具 - > Internet选项 - >安全 - >自定义级别... - >其他 - >启用MIME嗅探 - > Disable
我花了一段时间才找到这个修复,所以我把它包括在这里以防其他人也有这个问题 .
PS:这是一个解决方法,然后永久修复 . 任何其他见解都会有所帮助 .
Update :结束将<%@ page contentType = "application/x-java-jnlp-file"%>添加到JNLP文件的开头,然后构建战争 . 本质上,JNLP会自动启动,但会出现解析错误 . 一旦这条线从JNLP中取出并重新构建了WAR,JNLP将启动javawebstart并且解析错误消失了(解决了AKA问题) . 不知道为什么,但这似乎有效 .
我将JWS应用程序与所有已签名的库一起存储在EAR / WAR之外 .
如果JWS应用程序托管在Apache Web服务器的httpd.conf中,则可以按如下方式添加类型:
参考这里:http://httpd.apache.org/docs/current/mod/mod_mime.html
可以通过以下步骤修复JNLP问题:
打开Mozilla Firefox,然后下载JNLP扩展 . Mozilla问我如何打开它,我选择使用javaws打开(在
C:\Program Files\Java\jre1.8.0_161\lib
上) .从现在开始选择应用此选项 .
我试图在Internet Explorer上打开它,它自动运行 .
或者从Dowloaded文件中单击右边的JNLP扩展文件,使用javaws打开(在
C:\Program Files\Java\jre1.8.0_161\lib
上) . 我没试过这个,但我认为它应该有效 .