我正在使用Java Web Start启动的应用程序替换applet。到目前为止,在我在Netbeans中开发的演示版本中,我能够生成launch.jnlp
并将参数设置为所需的值:
<application-desc main-class="myPkg.MyClass">
<argument>action=someAction</argument>
<argument>objId=1234abc</argument>
<argument>userName=user1</argument>
</application-desc>
但是这个JWS启动的应用程序在现实生活中必须做的是根据由启动它的Web应用程序的用户选择和相关的值来设置JNLP中的参数。
我之前已经意识到这个问题,但在大多数情况下已经过了几年,因为这些问题得到了回答,我不确定答案是否仍然适用,因为浏览器供应商已经通过Java安全锁定。这些天是通过HTTP请求参数发送参数值的方法,即
[codebase]/launch.jnlp?action=someAction&objId=1234abc&userName=user1
?
答案 0 :(得分:0)
您可以将参数传递给通过JWS启动的applet,就像在浏览器中启动applet一样,例如在JNLP。但是,您必须构建包含这些服务器端AFAIK的JNLP;将URL-Args直接传递给javaws是不可能的(URL只会让浏览器下载jnlp并将其扔到javaws的脚下,然后再次从服务器获取它可能再次,所以一定要建立
<jnlp codebase="http://@JAVA_WEB_START_IP@"
href =&#34; /launch.jnlp?action=someAction&objId=1234abc&userName=user1
&#34;
以便它与您调用jnlp&#34; cgi&#34;
的参数相匹配所以你需要一个名为launch.jnlp的cgi,将参数放入jnlp模板
1)在href为url参数
2)在applet-desc
中 <applet-desc main-class="com.xyz.class"
width="850" height="650" name="Applet Name">
<param name="action" value="someAction"/>
<param name="objId" value="1234abc"/>
<param name="userName" value="user1"/>
</applet-desc>
至少这是我意识到的可能性,对我有用。
修改强>
如果你使用的是application-desc
,那么同样适用,而不是<param
你必须相应地填充<argument
s,除了href ......
答案 1 :(得分:0)
虽然我的实现仍在进行中,但我确实想说到目前为止为我工作的是在servlet中动态创建JNLP,将其写入与HTTPResponse对象关联的流中...