JavaBridge errno = 10054由Remotehost关闭

时间:2016-08-19 15:09:26

标签: java php php-java-bridge

我正在为服务器实现Java应用程序(不是动态Web项目)。 这应该是在后台运行的UDP侦听器,为每个UDP数据报调用PHP以评估UDP数据。

我看了一下JavaBridge,看起来非常适合我的意图。运行java类调用PHP文件,发送参数和获取参数在我作为服务器上的jsp运行时非常有效。 但是使用main方法将其作为一个简单的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行

......但只是每隔一次。有人有想法吗?

1 个答案:

答案 0 :(得分:0)

最后,我找到了一些东西。那不是问题的答案,而是一个解决方案。 而不是URLReader我使用FileReader与PHP文件的本地路径。 现在没有关于连接丢失的事情,我可以在我的Java应用程序中使用JavaBridge而不会出错。