2016-09-19 5 views
1

Мне нужно открыть приложение Java Swing на стороне клиента при вызове сервлета. Также необходимо принять несколько аргументов в основном методе этого приложения Swing, которое открывается через JNLP в клиентском браузере. В моем случае приложение swing открывается, но никаких аргументов в любом случае не принимается.Как передать аргументы 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> 

Просьба предложить динамически передавать аргументы из сервлета в приложение swing.

Мои вопросы:

  1. Какой код я должен написать на моей свинг программе?
  2. Что я должен упомянуть в файле JNLP?
  3. Как передать значения из сервлета?
+1

Обязательно проверьте 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; проверьте синтаксис, как указано here by @AndrewThompson.

  3. Вам нужно будет сконструировать файл JNLP динамически, как обсуждалось here.

+1

* Синтаксис отображается корректно * Элемент '' появляется дважды. –

+0

@AndrewThompson: Спасибо за критический обзор; Я был слишком сфокусирован на синтаксисе ''. Спасибо также за ссылку на «JaNeLA». Существует ли каноническое Q & A, которое цитирует его? Я был бы рад отредактировать неработающие ссылки, если вы считаете нужным. – trashgod

+0

* «Есть ли каноническое Q & A, которое его цитирует?» * Большинство моих канонических вопросов и ответов были (сильно сохранены, но) закрыты. Боясь, что можно привлечь обвинения в «спаме». :( –