我正在为服务器实现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行
......但只是每隔一次。有人有想法吗?
答案 0 :(得分:0)
最后,我找到了一些东西。那不是问题的答案,而是一个解决方案。 而不是URLReader我使用FileReader与PHP文件的本地路径。 现在没有关于连接丢失的事情,我可以在我的Java应用程序中使用JavaBridge而不会出错。