0

Toute personne connaissant les différences dans le démarrage de Webstart (javaws.exe) par rapport au démarrage de l'application. en utilisant java.exe ou javaw.exe concernant les flux?EOFException dans ObjectInputStream Se produit uniquement avec Webstart non par java (w) .exe?

C'est l'exception que je ne reçois que lors de l'utilisation Webstart:

java.io.EOFException 
    at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source) 
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source) 
    at java.io.ObjectInputStream.readStreamHeader(Unknown Source) 
    at java.io.ObjectInputStream.<init>(Unknown Source) 
    at fasttools.jtools.dss.api.core.remoting.thinclient.RemoteSocketChannel.<init>(RemoteSocketChannel.java:77) 

Voilà comment je configurer les connexions des deux côtés

//==Server side== 
//Thread{ 
Socket mClientSocket = cServSock.accept(); 
new DssServant(mClientSocket).start(); 
//} 

DssServant(Socket socket) throws DssException { 
    try { 
    OutputStream mOutputStream = new BufferedOutputStream(socket.getOutputStream()); 
    cObjectOutputStream = new ObjectOutputStream(mOutputStream); 
    cObjectOutputStream.flush(); //publish streamHeader 
    InputStream mInputStream = new BufferedInputStream(socket.getInputStream()); 
    cObjectInputStream = new ObjectInputStream(mInputStream); 
    .. 
    } catch (IOException e) { 
    .. 
    } 
    .. 
} 

//==Client side== 
public RemoteSocketChannel(String host, int port, IEventDispatcher eventSubscriptionHandler) throws DssException { 
    cHost = host; 
    port = (port == 0 ? DssServer.PORT : port); 
    try { 
    cSocket = new Socket(cHost, port); 

    OutputStream mOutputStream = new BufferedOutputStream(cSocket.getOutputStream()); 
    cObjectOut = new ObjectOutputStream(mOutputStream); 
    cObjectOut.flush(); //publish streamHeader 
    InputStream mInputStream = new BufferedInputStream(cSocket.getInputStream()); 
    cObjectIn = new ObjectInputStream(mInputStream); 

    } catch (IOException e) { 
    .. 
    } 
    .. 
} 

[EDIT] console Webstart dit: Java Web Start 1.6.0_19 Utilisation de JRE version 1.6.0_19-b04 Java HotSpot (TM) Client VM

Server est en cours d'exécution même 1.6u19

[EDIT] JNLP contient:

<?xml version="1.0" encoding="utf-8"?> 

<jnlp spec="1.0+" codebase="http://127.0.0.1:8080/"> 
    <information> 
    <title>..</title> 
    <vendor>..</vendor> 
    <homepage href="http://127.0.0.1:8080/index.html"/> 
    <description>..</description> 
    <icon href="/jws/.."/> 
    <icon kind="splash" href="/jws/...jpg"/> 
    <offline-allowed/> 
    </information> 

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

    <resources> 
    <j2se version="1.6+" initial-heap-size="128M" max-heap-size="512M"/> 
    <jar href="http://127.0.0.1:8080/lib/xx.jar"/> 
    <jar href="http://127.0.0.1:8080/lib/yy.jar"/> 
    </resources> 

    <application-desc main-class=".."> 
    <argument>-host</argument>  <argument>127.0.0.1</argument> 
    <argument>-port</argument>  <argument>4359</argument> 
    <argument>-httpport</argument> <argument>8080</argument> 
    </application-desc> 
</jnlp> 

Merci

Répondre

0

oH mY !!

J'ai découvert le problème. Le fichier JNLP qui a été généré par une servlet qui a été copiée à partir d'un programme existant, fourni aramètres de port-nr. Mais les numéros de port n'ont pas été corrigés .. Le port fourni était un (existant) Secure Socket .. mon application a utilisé une prise non-sécurisée !!

Quelle erreur awfull