2016-06-09 25 views
0

Ich arbeite daran, ein Applet durch eine Anwendung zu ersetzen, die mit Java Web Start gestartet wurde. Bisher in meiner Demo-Version in Netbeans entwickelt, ich bin in der Lage, die launch.jnlp mit den Argumenten auf die gewünschten Werte eingestellt zu generieren:Übergabe von JNLP-Argumenten an eine JSP

<application-desc main-class="myPkg.MyClass"> 
    <argument>action=someAction</argument> 
    <argument>objId=1234abc</argument> 
    <argument>userName=user1</argument>  
</application-desc> 

Aber was diese JWS-Anwendung gestartet hat im wirklichen Leben zu tun ist, zu setzen Die Argumente im JNLP basieren auf den Werten, die von dem Benutzer der Webanwendung, die ihn starten würde, ausgewählt und mit ihm verknüpft sind.

Ich weiß, dass diese Frage schon einmal gestellt wurde, aber in den meisten Fällen sind mehrere Jahre vergangen, seit diese Fragen beantwortet wurden und ich unsicher bin, ob die Antworten noch anwendbar sind, da Java vom Browser gesperrt wurde Anbieter. Ist der Weg dies heutzutage zu erreichen, um die Argumentwerte über HTTP-Anforderungsparameter zu senden, d. H.

[codebase]/launch.jnlp?action=someAction&objId=1234abc&userName=user1?

Antwort

0

Sie können Parameter an ein Applet übergeben, das über JWS gestartet wurde, genau wie beim Starten eines Applets im Browser, z. in der JNLP. Sie müssen jedoch den JNLP erstellen, der diese serverseitigen AFAIK enthält. sie als URL-Args direkt an javaws zu übergeben, ist nicht möglich (die URL lädt den Browser nur den jnlp herunter und wirft ihn javaws zu Füßen, und das würde ihn wieder vom Server wieder holen, also sicher sein, den

zu bauen

<jnlp codebase="http://@[email protected]"href = "/launch.jnlp?action=someAction&objId=1234abc&userName=user1"

, so dass sie die Parameter übereinstimmt, mit dem Sie die jnlp "cgi" aufrufen

so benötigen Sie einen cgi namens launch.jnlp die Parameter in ein Putting jnlp Vorlage

1) an der href als URL-Parameter

2) im 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> 

Zumindest ist dies die Möglichkeit, ich bin mir dessen bewusst, und dass für mich funktioniert.

bearbeiten

Gleiche gilt, wenn Sie eine application-desc stattdessen verwenden, dann anstelle der <param s Sie die <argument s entsprechend zu füllen haben, neben dem href ...

+0

Ich versuche es Vermeiden Sie die Verwendung des 'applet' Tags, da ich i höre t wird in Java 1.9, das im September erscheinen soll, nicht unterstützt. Gibt es eine Möglichkeit, 'launch.jnlp' dynamisch zu erstellen, so dass die Argumentwerte zur Laufzeit angegeben werden können? –

+0

Wer spricht über Applet-Tag? Hast du meine Antwort gelesen oder nur versucht, so wenig Worte wie möglich zu verstehen? –

+0

Ich bezog mich auf Ihre Verwendung des 'applet-desc'-Tags, da ich' application-desc' verwendet habe. Vielleicht macht es keinen Unterschied, aber gibt es einen Grund, warum Sie in Ihrer Antwort so sarkastisch sein sollten? Klar, ich bin neu in der Verwendung von JNLP, da ich Fragen dazu stelle, also sehe ich nicht, warum du das Bedürfnis hast, diesen Weg zu gehen ... –

0

Während meine Implementierung Ich möchte noch sagen, dass es für mich bisher funktioniert, den JNLP dynamisch in einem Servlet zu erstellen und ihn in einen Stream zu schreiben, der mit einem HTTPResponse-Objekt verbunden ist ...