2016-08-19 5 views
1

Ich implementiere eine Java-Anwendung (kein dynamisches Webprojekt) für einen Server. Dies sollte ein UDP-Listener sein, der im Hintergrund läuft und PHP für jedes UDP-Datagramm aufruft, um die UDP-Daten auszuwerten.JavaBridge errno = 10054 Geschlossen von Remotehost

Ich habe einen Blick in JavaBridge und es scheint perfekt für meine Absicht. Das Ausführen einer Java-Klasse, die eine PHP-Datei aufruft, das Senden von Parametern und das Abrufen von Parametern funktioniert einwandfrei, wenn ich sie als JSP auf dem Server ausführe. Aber es läuft als eine einfache Java-Anwendung mit einer Hauptmethode Ich bekomme ein Fehler jedes zweite Mal, ich bin es ausgeführt. Der Java-Code sieht wie folgt aus:

ScriptEngineManager manager = new ScriptEngineManager(); 
    ScriptEngine instance = manager.getEngineByName("php-invocable"); 
    try { 
     URI remotePhpApp = new URI("http", null, "127.0.0.1", 8081, "/JavaBridge/java/JavaProxy.php", null, null); 
      ByteArrayOutputStream sharedResource = new ByteArrayOutputStream(); 
      Integer nr = 42; 
      instance.put("nr", nr); 
      instance.put("sharedResource", sharedResource); 
      Object result = instance.eval(new URLReader(remotePhpApp.toURL())); 
      String res = result.toString(); 
      System.out.println ("Found " + sharedResource.toString() + " entries in database"); 
      sharedResource.close(); 
    } catch (Exception ex) { 
     System.out.println("Could not evaluate script: "+ex); 
    } 

Die Konsolenausgabe einen IOExcption zeigt. Der Tomcat-Server zeigt an: PHP Hinweis: fwrite(): Senden von 6 Bytes fehlgeschlagen mit errno = 10054 ... zeigt auf der Java.inc Zeile 815

... aber nur jedes zweite Mal. Hat jemand eine Idee?

Antwort

0

So endlich habe ich etwas gefunden. Nun, nicht die Antwort auf das Problem, sondern eine Lösung. Anstelle des URLReaders habe ich einen FileReader mit dem lokalen Pfad zur PHP-Datei verwendet. Jetzt gibt es nichts über eine verlorene Verbindung und ich kann JavaBridge in meiner Java-Anwendung ohne Fehler verwenden.

Verwandte Themen