java - 使用 Php-Java 桥

标签 java php php-java-bridge

我在正确设置 Php-Java Bridge 时遇到问题。

我会解释我做了什么。

  • 我的网站是纯 php
  • 对于我们的支付交易流程,我们需要设置一个 php-java 桥
  • 我点击此链接设置网桥 PHP-JAVA BRIDGE INSTALATION.
  • 在这里我了解到我需要一个私有(private)jvm来安装桥。
  • 所以 1st 我使用我的 c-panel 在私有(private) JVM 中安装了 apache-tomcat-6.0.14。安装后,它要求我将域映射到私有(private) JVM。所以我将我的域 example.com(这是唯一可用的选项)映射到它。
  • 然后它要求启用从 Apache Web 服务器到我的 Java 应用程序服务器的流量重定向(有一个复选框,我点击了它)
  • 最后它要求我部署 WAR 文件(JavaBridge.WAR 是我的文件),一切似乎都很好
  • 现在当我去http://example.com/JavaBridge/我可以看到 javabridge 示例,它工作正常。

到目前为止一切顺利

现在,当我尝试从 php 访问 java 类文件时,我的问题就从这里开始了。示例 test.php 是我创建的并将以下代码放入其中。

  <?php
        require_once("http://example.com:portnumber/JavaBridge/java/Java.inc");
        $System = java("java.lang.System");
        echo $System->getProperties(); //This Part echo's correctly and shows the data so it means i can access Java.inc Correctly

        $path_e24class = getcwd(). '/e24PaymentPipe.class'; //This part fails both test.php and java class file e24PaymentPipe.class are in the same directory in publich_html folder
        java_require($path_e24class);
        $pipe = new Java("e24PaymentPipe");
        $pipe->setAction("1");
?>

我的站点内容位于 public_html 文件夹中,WAR 文件部署在私有(private) jvm 中。

这些是我收到的错误消息。

  1) Warning: java_require() not supported anymore. Please use tomcat or jee hot deployment instead 
  Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new e24PaymentPipe. Cause: java.lang.ClassNotFoundException: e24PaymentPipe VM:  1.6.0_22@http://java.sun.com/" at: #-10 
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) #-9 
 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) #-8 
 java.lang.Class.forName0(Native Method) #-7 
 java.lang.Class.forName(Class.java:247) #-6 
 php.java.bridge.Util.classForName(Util.java:1518) #-5 
 php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445) #-4 
 php.java.bridge.Request.handleRequest(Request.java:458) #-3 
 php.java.bridge.Request.handleRequests(Request.java:500) #-2 
 php.java.bridge.http.ContextRunner.run(ContextRunner.java:145) #-1 
 php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60) #0 
 http://example.com:portnumber/JavaBridge/java/Java.inc(232): java_ThrowExceptionProxyFactory->getProxy(3, 'java.util.Prope...', 'T', false) #1

最后对java不太了解。所以我被困在这里不知道该怎么办。

最佳答案

这是一个很棒的步骤 tutorial你可以关注,它显示了所需的一切!它有点旧(2007 年),但不久前帮助了我。

还有另一种选择。您可以安装 Apache Tomcat 并在那里部署您的 war 。只要您遵守端口设置,您甚至可以在同一台机器上同时运行多个 tomcat 实例和 httpd。您甚至可以使用 Apache httpd 在它们前面。

关于java - 使用 Php-Java 桥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5389689/

相关文章:

php - 两个顺序 SELECT 表的最佳方法

java - 是否有一个 bean 验证注释用于检查字符串字段中的数据是否为数字?

php - PDO:多次使用相同的绑定(bind)变量

php - 在 Codeigniter 中显示图像

PHP-Java 桥中的 java.lang.ClassNotFoundException

java - 从 Java 调用 PHP 函数

java - 如何在二维 ArrayList 上添加元素/数据?

JAVA 输入比较 & 忽略负结果

java - Eclipselink 更新现有表

linux - PHP JAVA 桥