当前位置: 首页 > 面试题库 >

通过JNLP传递动态参数

楚冷勋
2023-03-14
问题内容

我使用JavaScript来执行JNLP,最终将执行我的客户端。

我试图通过JavaScript执行将参数传递给JNLP,并在客户端中通过JNLP传递这些参数。

JavaScript正在执行以下URL,例如:

http://localhost:8080/MyJnlp.jnlp?login=14hhh765p&pass=ggyyktff

现在,我的JNLP将尝试以<application-desc name tag这种方式获取参数:

<application-desc name="..." main-class="com.main.execute" >
        <argument>-nosplash</argument>
        <argument>-q</argument>
    <argument><%=request.getParameter("login")%></argument>
    <argument><%=request.getParameter("pass")%></argument>
</application-desc>

但这没有用。

我无法以这种方式在客户端代码中检索这些参数:

login=getParamsFromJnlp("login")
..

public String getParamsFromJnlp(String key) {
    return System.getProperty(key);
}

JNLP位于APACHE2.2中

知道有什么问题吗?


问题答案:

为了能够将http参数插入到应用程序的参数中,.jnlp文件需要根据请求进行动态“构造”,因为直到那时您才知道将使用哪个http参数。

java-web-start的工作方式是,它将多次下载.jnlp,但是除了第一次,它将从代码库中指定的url和jnlp元素的href属性下载文件。

因此仅在元素中动态添加参数元素是不够的,还需要将其添加到codebase / href属性中

<jnlp spec="1.0+" 
      codebase=<%=request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ request.getContextPath() + "/" %> 
      href="jnlpfile.jnlp&#063;username=<%=request.getParameter("username")%>&clienttoken=<%=request.getParameter("clienttoken")%>">

    ...
    <application-desc main-class="test.MainClass">
       <argument><%=request.getParameter("username")%></argument>
    </application-desc>
</jnlp>


 类似资料:
  • 问题内容: 我正在使用PhantomJS page.evaluate()进行抓取。我的问题是我传递到Webkit页面的代码是沙盒化的,因此无法访问我的主要幻象脚本的变量。这使得很难使抓取代码通用。 如何将参数推入页面? 问题答案: 我遇到了确切的问题。可以使用一些技巧,因为它也可以接受字符串。 有几种方法可以执行此操作,但是我使用了一个称为的包装器,该包装器接受其他参数以传递给必须在Webkit端

  • 问题内容: 没有参数 带参数 我想得到。我怎么才能得到它? 问题答案: 试试这个: 并在您的职能:

  • 问题内容: 这是我的Java代码: 我这样称呼它: 问题是呼叫保持发布零零零,似乎我没有正确传递x和y。 更新资料 回答之后,我将请求更改为: 服务是: 但我仍然有同样的问题。这是服务器的响应: 您可以在末尾看到零:( 问题答案: (请注意,不是)是表单数据()向其发送了请求的正文,其中您的资源方法应更像 并且以下请求将起作用 注意: 在Windows中,必须使用双引号() 您甚至可以分离键值对

  • 我正在学习一门改造课程,在这门课程中,我创建了一个带有api的小型后端,其中我有一个POST方法来执行教师登录。在课程中,他所做的是创建一名教师,并使用set方法向他传递电子邮件和密码,这是该方法在API中接收的内容。 我希望这样做,在电话改造中,您可以直接通过此电子邮件和密码,我已通过以下方式完成: 这就是我的模范老师: 最后,我呼吁进行以下改造: 然而,当我运行应用程序并通过表单传递电子邮件和

  • 我正在学习如何使用SpringCloud构建API网关。我已经浏览了有关如何传递参数的文档,所有示例似乎都显示了它们是硬编码的。但如果我有一个动态值呢? 例如,我有这种类型的请求:http://localhost:8080/people/lookup?searchKey=jdoe, 如何通过“jdoe”部分? 我尝试了下面的代码,只有当我硬编码代码中的值时,它才能工作。 我不确定如何使用提供的生成

  • 下面是给我带来麻烦的文件: 我试图通过路由将新的和传递到我的“feed”组件中。但我收到一条错误消息: 我知道为什么会发生这种情况,但不知道如何将状态传递给我的“feed”组件。在过去的5个小时里,我一直在试图解决这个问题,我变得非常绝望! 请救命!谢谢 下面的答案很有帮助,我感谢athors,但他们不是做到这一点的最简单的方法。在我的例子中,最好的方法是这样的:当您更改路线时,只需向其附加一条消