2016-08-19 7 views
1

私は、サーバー用のJavaアプリケーション(動的Webプロジェクトではない)を実装しています。 UDPデータを評価するために、UDPデータグラムごとにPHPをバックグラウンドで実行しているUDPリスナである必要があります。JavaBridge errno = 10054 Remotehostによって閉じられる

私はJavaBridgeを調べました。それは私の意図にとって完璧なようです。 Javaクラスを実行してPHPファイルを呼び出し、パラメータを送信してパラメータを取得すると、サーバー上でjspとして実行すると完全に機能します。 しかし、それをメインメソッドで単純なJavaアプリケーションとして実行すると、毎回エラーが発生します。実行しています。 Javaコードは次のようになります。

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); 
    } 

コンソール出力はIOExcptionを示します。 Tomcatサーバーは以下を表示します。 PHPの注意:fwrite():6バイトの送信がerrno = 10054で失敗しました... Java.inc行を指しています815

...ただし2回目です。誰かにアイデアはありますか?

答えて

0

最後に、私はsometingを見つけました。まあ、問題の答えではなく、解決策です。 URLReaderではなく、PHPファイルへのローカルパスを持つFileReaderを使用しました。 接続が切断されたことは何もないので、JavaアプリケーションでJavaBridgeをエラーなしで使用できます。

関連する問題