2016-09-19 43 views
1

我需要在調用servlet時在客戶端打開Java Swing應用程序。該Swing應用程序的主要方法也需要收到一些參數,該應用程序通過客戶端瀏覽器通過JNLP打開。在我的情況下,擺動應用程序正在打開,但無論如何都沒有收到任何參數。如何將參數傳遞給JNLP啓動的Swing應用程序?

我的JNLP文件不是動態構建的。它是一個靜態文件。它是:

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="1.0+" 
     codebase="http://localhost:8085/TestWebApp" 
     href="ContactEditor.jnlp"> 

    <information> 
     <title>JNLP Example</title> 
     <vendor>Catalyst Software</vendor> 
     <homepage href="http://localhost:8085/TestWebApp" /> 
     <description>JNLP Testing</description> 
    </information> 

    <security> 
     <all-permissions/> 
    </security> 

    <resources> 
     <j2se version="1.6+" /> 
     <jar href="ContactEditor.jar" /> 
    </resources> 

    <application-desc main-class="my.contacteditor.ContactEditorUI"> 
     <argument>00001</argument> 
     <argument>Harish Prasad</argument> 
     <argument>220153429088</argument> 
    </application-desc>  

    <security> 
     <all-permissions/> 
    </security> 

</jnlp> 

請建議如何從servlet動態地將參數傳遞給swing應用程序。

我的問題是:

  1. 我有什麼代碼在我的揮杆程序寫?
  2. 我必須在JNLP文件中提到什麼?
  3. 我應該如何傳遞servlet的值?
+1

一定要檢查使用JaNeLA,可用的JNLP我的[共享驅動器(https://drive.google.com/drive/#folders/0B5B9wDXIGw9lUnJaUjA2cmlVRE0)。請注意,上面的JNLP有兩個''元素。 –

回答

2
  1. JNLP File Syntax指定「每個參數包含(按順序)的附加自變量被傳遞給main」。

    public static void main(String[] args) { 
        for (String value : args) { 
         … 
        } 
    } 
    
  2. <argument>語法似乎是正確的,按規定; <security>元素出現兩次,如here所示;請驗證@AndrewThompson指出的here的語法。

  3. 您需要動態構建JNLP文件,如討論here

+1

*「語法顯示正確」*「'元素出現兩次。 –

+0

@AndrewThompson:謝謝你的評論;我太專注於''語法。也感謝鏈接到'JaNeLA'。有引用它的規範問答嗎?如果您覺得合適,我很樂意編輯損壞的鏈接。 – trashgod

+0

*「是否有一個引用它的規範問答?」*我的大部分規範問答已經(嚴重高估)但是已關閉。害怕會引起「垃圾郵件」的指責。 :( –

相關問題