首页 文章

动态JNLP从服务器获取文件

提问于
浏览
1

我想为一个用户提供自定义启动 <argument> 标签的动态JNLP .

经过多次麻烦后,它几乎正常运转 .

用户登录站点,下载为用户定制的JNLP . Java Web Start使用下载的自定义JNLP文件启动 .

但是,第一个用户启动应用程序时,Java Web Start通过使用.jnlp文件中嵌入的 href 属性从服务器获取"master" JNLP文件 . 这没有't contain the user'的自定义 <argument> 标签,事情就破了 .

有没有办法告诉JNLP使用本地JNLP文件而不是从服务器获取它?

这是我的 APPLICATION_TEMPLATE.jnlp

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Discriptor 1.5//EN" "http://java.sun.com/dtd/JNLP-1.5.dtd">
<jnlp
        spec="6.0+"
        codebase="http://localhost/jnlp"
        version="1234"
        href="http://localhost/jnlp/app.jnlp">
    <information>
        <title>JNLPHelper</title>
        <vendor>Yoyodyne, Inc.</vendor>
        <offline-allowed/>
        <shortcut online="true" install="false">
            <desktop/>
            <menu submenu="Yoyodyne, Inc."/>
        </shortcut>
        <association extensions="jnlphelper" mime-type="application-x/jnlphelper"/>
    </information>
    <security>
        <all-permissions/>
    </security>
    <update check="timeout" policy="always"/>
    <resources>
        <java initial-heap-size="32M" max-heap-size="256M" version="1.6+"/>
        <!--<j2se version="1.6+" java-vm-args="-esa -Xnoclassgc"/>-->
        <jar href="JNLPHelper.jar"/>
    </resources>

    <application-desc main-class="com.prosc.msi.jnlp.JNLPHelper">
        <argument>*</argument>
    </application-desc>
</jnlp>

此示例文件托管在我的Web服务器上,在测试期间为 localhost . 用户下载自定义的JNLP,其中 <argument>foo</argument> 替换 <argument>*</argument> .

我尝试完全从 <jnlp> 标记中删除 href 属性 . 这几乎可以工作,但应用程序每次都会提示重新安装,我的桌面图标将被删除并重新添加 .

1 回答

  • 0

    你是如何确定用户的?您可能会发现它是一个会话问题或类似的问题,其中JNLP href指向的是未经证实的.jnlp响应 . 您可能想要更改您使用下载的方式或允许您的app.jnlp URL获取确认当前用户是谁的参数?

相关问题