Java WS应用程序偶尔忽略参数

Java WS应用程序偶尔忽略参数,java,arguments,java-web-start,Java,Arguments,Java Web Start,我最近组装了一个JWS应用程序,它从动态创建的JNLP文件中获取参数(可以找到详细信息)。这一切都很好,只是应用程序忽略了我的系统(linux x86_64)上的参数(启动时没有加载指定的数字)。然而,JWS应用程序似乎与我同事的win_64机器上的预期完全一致。这很有趣,因为我无法在另一场类似的胜利中复制他的成功 为了让事情更令人兴奋,当我下载JNLP文件并在终端上通过javaws运行它时,相同的JWS应用程序工作得很好(换句话说,不忽略参数) 我比较了java.policy和javaws.p

我最近组装了一个JWS应用程序,它从动态创建的JNLP文件中获取参数(可以找到详细信息)。这一切都很好,只是应用程序忽略了我的系统(linux x86_64)上的参数(启动时没有加载指定的数字)。然而,JWS应用程序似乎与我同事的win_64机器上的预期完全一致。这很有趣,因为我无法在另一场类似的胜利中复制他的成功

为了让事情更令人兴奋,当我下载JNLP文件并在终端上通过javaws运行它时,相同的JWS应用程序工作得很好(换句话说,不忽略参数)

我比较了java.policy和javaws.policy文件,两者没有区别。JNLP文件清楚地给出了所有权限,jar文件的签名都很好(这不可能是问题的根源,否则应用程序将无法启动,对吗?)

问题1:那么这个问题的原因是什么

EDIT:我刚刚设法从一台新的(在这个特殊意义上)win32机器上获得了正确的响应,没有任何明显的java更新问题2:是否有javaws的日志文件,我可以在其中检查发生了什么,或者,我可以将启动详细记录到控制台,以便创建自己的自定义日志

编辑2:顺便说一句,我忘了提到我也在网站上发布了这个问题,我本来应该提到的,因为有人在网站上礼貌地指出了这个问题。无论如何,线程上有更多关于JNLP文件的信息,以防相关

edit3:我开始认为问题可能源于生成JNLP文件时
标记的属性。最初,
jnlp
标记如下所示:

<jnlp spec="1.0+" codebase="http://mydomain/myapp/" 
    href="my.jnlp">
不幸的是,这并不能解决我的问题


问题3:此修改是否也适用于我的情况?那怎么办?如果没有任何关于可能导致问题的原因的见解,我将非常感激,因为我现在的工作真的陷入僵局了

请确保JNLP文件没有被缓存。也就是说,每次尝试新的内容时,是否重命名/重新定位了JNLP文件


关于您的更新,
我唯一想到的是,您需要确保您的脚本以正确的mime类型响应:application/x-java-jnlp-file

也就是说,从cgi脚本中,必须提供HTTP头字段

Content-Type: application/x-java-jnlp-file

确保未缓存JNLP文件。也就是说,每次尝试新的内容时,是否重命名/重新定位了JNLP文件


关于您的更新,
我唯一想到的是,您需要确保您的脚本以正确的mime类型响应:application/x-java-jnlp-file

也就是说,从cgi脚本中,必须提供HTTP头字段

Content-Type: application/x-java-jnlp-file

经过两周对JNLP文件语法和CGI脚本的研究,我想我终于找到了问题的症结所在。我在这里注意到这一点(冒着看起来自命不凡的风险来回答我自己的问题),以防其他人遇到同样的问题


在我的例子中,
标记的
href
属性显然是不必要的,当删除时,应用程序开始在linux和win系统上按预期工作。我不能100%确定这是否是确切的原因,但我的理解是,由于jnlp语法是从脚本生成的,并直接返回给用户,而不是文件系统中的某个jnlp文件,
href
属性指向了错误的位置,可能导致了某种冲突,在不同的操作系统中处理方式不同

在与JNLP文件语法和CGI脚本搏斗了两周之后,我想我终于找到了问题的症结所在。我在这里注意到这一点(冒着看起来自命不凡的风险来回答我自己的问题),以防其他人遇到同样的问题


在我的例子中,
标记的
href
属性显然是不必要的,当删除时,应用程序开始在linux和win系统上按预期工作。我不能100%确定这是否是确切的原因,但我的理解是,由于jnlp语法是从脚本生成的,并直接返回给用户,而不是文件系统中的某个jnlp文件,
href
属性指向了错误的位置,可能导致了某种冲突,在不同的操作系统中处理方式不同

重命名有点问题,因为JNLP文件是由脚本生成的,但我尝试在新计算机上运行该应用程序(读:从未暴露于该应用程序),甚至多次重新启动浏览器/计算机。这应该会有效地清空缓存,对吗?嗯。。是 啊那真的很奇怪。你应该做一个失败的最小测试用例,并发布你的特定OS/Java版本和示例是的,问题是什么构成了最小用例场景?这只可能让你缩小范围。我创建了一个测试JNLP文件,它有一个静态参数,似乎可以正常工作,我认为脚本如何创建JNLP存在一个基本问题。我现在怀疑jnlp头,我在上面的edit3中提到过。重命名有点问题,因为jnlp文件是由脚本生成的,但我尝试在新计算机上运行该应用程序(读取:从未暴露于该应用程序),甚至多次重新启动浏览器/计算机。这应该会有效地清空缓存,对吗?嗯。。是 啊那真的很奇怪。你应该做一个失败的最小测试用例,并发布你的特定OS/Java版本和示例是的,问题是什么构成了最小用例场景?这只可能让你缩小d
Content-Type: application/x-java-jnlp-file