java - 通过 Tomcat main() 的 PHP/JAVA 桥 : Failed opening required 'http://localhost:8080/JavaBridge/java/Java.inc'

标签 java php laravel laravel-5 php-java-bridge

我正在尝试从我的 Laravel 5 应用程序实现 PHP/JAVA 桥。

但是我不断收到此消息:

main(): 需要打开失败'http://localhost:8080/JavaBridge/java/Java.inc ' (include_path='/home/vagrant/sites/new_metinet/vendor/phpunit/php-text-template:/home/vagrant/sites/new_metinet/vendor/phpunit/php-timer:/home/vagrant/sites/new_metinet/vendor/phpunit/php-file-iterator:.:/usr/share/php:/usr/share/pear')

main(): 需要打开失败'http://127.0.0.1:8080/JavaBridge/java/Java.inc ' (include_path='/home/vagrant/sites/new_metinet/vendor/phpunit/php-text-template:/home/vagrant/sites/new_metinet/vendor/phpunit/php-timer:/home/vagrant/sites/new_metinet/vendor/phpunit/php-file-iterator:.:/usr/share/php:/usr/share/pear')

这是调用Java Bridge的php代码

<?php namespace App\Services\JavaBridge;

require_once("http://localhost:8080/JavaBridge/java/Java.inc");

class JavaRepository {

    public function test() {

        try {

            /* invoke java.lang.System.getProperties() */
            $props = java("java.lang.System")->getProperties();

            /* convert the result object into a PHP array */
            $array = java_values($props);
            foreach($array as $k=>$v) {
                echo "$k=>$v"; echo "<br>\n";
            }
            echo "<br>\n";

            /* create a Java object from the PHP object */
            $javaObject = java_closure(new JavaClass());
            echo "PHP says that Java says: "; echo $javaObject;  echo "<br>\n";
            echo "<br>\n";


            echo java("php.java.bridge.Util")->VERSION; echo "<br>\n";

        } catch (JavaException $ex) {

            echo "An exception occured: "; echo $ex; echo "<br>\n";

        }
    }

}

/* create a PHP class which implements the Java toString() method */
class JavaClass {
    function toString() { return "hello PHP from Java!"; }
}

我已经完成了:

  • chmod 所有目录
  • 使用了 localhost 和 127.0.0.1
  • allowed_url_include = 开启

有人可以帮忙吗?

最佳答案

因此,我在博格丹的帮助下得到了答案。

我通过 homestead 运行我的 Laravel5 应用程序,因此我通过浏览器访问的本地主机实际上无法从 vagrant 访问。

所以我必须在我的 vagrant box 上安装 tomcat,这是我通过这篇文章 https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-7-on-ubuntu-14-04-via-apt-get 完成的。 (来源:博格丹)。

但是,我在将 JAVA Bridge 上传到该 tomcat 设置时确实遇到了问题,因此我必须以与托管网站文件相同的方式在 homestead 环境中的计算机上重新创建 tomcat 设置。诚然不是很好,但我不喜欢闲逛!

这篇文章很棒,因为它帮助安装了 Tomcat 所需的所有必需的关联包......例如 Java。

基本上有更好的方法,但这可行。谢谢博格丹!

关于java - 通过 Tomcat main() 的 PHP/JAVA 桥 : Failed opening required 'http://localhost:8080/JavaBridge/java/Java.inc' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29259025/

相关文章:

java - 为什么我的程序在从 BufferedReader 读取行时会阻塞?

java - 通过套接字发送大型 xml 数据

java - 如何通过node.js中的套接字连接发送true

java - 为什么使用 AspectJ 的 google 缓存很慢,而 SpringCaching 却更快

php - 使用 PHP 和 MySQL 查看用户是否存在时出现问题

php - MySql 嵌套选择变量在 PHP 中不起作用

php - laravel mongodb jenssegersallowDiskUse true

php - PHP 中检查数组值是否存在的简短方法

php - 一般错误 : 1005 when creating a key constraint - Laravel

php - 等于零的地方太慢了