问题标签 [php-java-bridge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1186 浏览

java - C++ 和 PHP 之间的通用桥梁

我们有一个 Web 应用程序(相当重量级的应用程序),它包含一整套东西、Web 用户界面、数学处理和建模,以及与数据库相关的东西。

PHP 中发生的许多过程非常缓慢,主要是因为 PHP 不适合数学处理。

将来,我们想打破这些缓慢的过程,并用更快的东西重写它们,可能是 C++,或者可能是 Java。

有谁知道将数据输入和输出 PHP 并输入另一种语言环境的通用方法?我已经考虑将事物序列化为 JSON 并将它们铲入 /dev/shm 或套接字,然后让其他语言在套接字上侦听,或查看共享内存位置等。

这种东西对于原生类型来说工作得很好,但是当你考虑到很多被传递的东西实际上是类实例和类似的对象时,它确实很糟糕。

我不确定一个明智的解决方案,但我一直在考虑纯 Java 的Quercus PHP实现以及PHP/Java 桥。
但是,我一直找不到任何可以执行类似功能的 C++。编写 PHP 模块是一种可能性,但我正在努力了解它如何足够通用,而不仅仅是将每个新(和一些旧)脚本重写为模块,然后在 PHP 中调用这些函数的情况。

0 投票
2 回答
1173 浏览

java - 仅使用 php-java 网桥连接到数据库

我想知道如何使用 php-java 桥接但只能连接到数据库..然后我想使用 PHP 从数据库中查看数据,从数据库中更新数据并通过 PHP 文件从数据库中删除数据(界面)

0 投票
1 回答
1150 浏览

php - Apache / PHP 无法与 Tomcat JavaBridge 通信

我的项目使用 PHP JavaBridge,我已经安装了 WAMP、JRE 6.0 和 Tomcat 6.0.32 我现在可以成功访问http://localhost:8080/但是当我运行我的 PHP 站点时,它给了我以下错误

warning: fsockopen() [function.fsockopen]: unable to connect to localhost:8080 (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. )

谁能帮我解决这个问题?

编辑

忘了说我使用的是 Windows 7

0 投票
1 回答
657 浏览

java - 使用 Javabridge 从 PHP 调用 Java

我正在尝试学习如何使用“Java Bridge”从 PHP 调用 Java 方法。以下只是测试代码

每当我运行此代码时,浏览器都会长时间等待服务器,然后产生错误 Fatal error: Request Entity Too Large。我认为它无法执行任何 java 调用。谁能告诉我可能有什么问题以及如何调试?

0 投票
1 回答
2555 浏览

java - 在同一台服务器上运行 php 和 java

我有使用 java 编写的 web 服务,它与 android 应用程序交互,现在我们需要使用 php 框架 codeigniter 实现一个前端 web 门户。我们有公共数据库 mysql 5.1,它与 web 服务和 web 门户交互,是否可以在已经运行 tomcat6 servlet 容器但没有 apache web 服务器的服务器中配置 LAMP 堆栈。我如何进一步处理,当我搜索相同的问题时,我发现一个叫做 php java bridge 的东西是我必须使用的吗?让我更准确地说,我已经运行了 ec2 ubuntu 实例,域停在 godaddy 中,我用我的 ec2 实例的 ip 配置了 A 记录,

请帮忙

0 投票
2 回答
267 浏览

java - 在 php 中创建 Java 日期时出错

我试图创建一个将字符串日期转换为 java 日期以传递给 java 的 php 函数。我的应用程序需要使用 java.sql.Date 而不是 java.util.Date。但是这个简单的函数给出了一个奇怪的结果:

java 返回的日期有错误的年份:php (For 2011-07-01), java(Jul 1, 3911)。

关于什么问题的任何指示?

仅供参考,php正在正确解析它:

0 投票
3 回答
16424 浏览

php - Tomcat下无法运行PHP脚本

我正在使用 Tomcat 6。我已经安装了 PHP,并尝试使用 PHP/JavaBridge 在 Tomcat 中运行 PHP。我已经在 Tomcat 的 webapps 目录中部署了 JavaBridge.war。运行任何 PHP 脚本时,我会在下面收到此错误。请帮助,我感谢您的帮助。

这就是我配置 PHP 的方式:

./configure --with-mime-magic --with-config-file-path=/usr/local/Zend/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml- dir=/usr --with-mhash=/usr/local --with-bz2=/usr --with-curl=/usr --with-gettext=/usr --with-mysql=/usr/local/mysql --with-mcrypt=/usr/local --enable-magic-quotes --enable-bcmath --enable-calendar --enable-ftp --enable-sockets --enable-wddx --enable-mbstring --enable -zip --enable-exif --with-gd=/usr --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd -native-ttf --enable-fastcgi --enable-force-cgi-redirect

来自Tomcat的错误消息如下:

HTTP 状态 500 -

类型异常报告

信息

描述 服务器遇到一个内部错误 () 阻止它完成这个请求。

例外

javax.servlet.ServletException: php.java.bridge.http.FCGIConnectException: 无法连接到服务器 php.java.servlet.fastcgi.FastCGIServlet.init(FastCGIServlet.java:133) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) org.apache.coyote.http11 .Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) java.lang.Thread.run(Thread.java:662) 根原因

php.java.bridge.http.FCGIConnectException: 无法连接到服务器 php.java.bridge.http.SocketChannelFactory.test(SocketChannelFactory.java:58) php.java.servlet.fastcgi.FastCGIServlet.init(FastCGIServlet.java:131 ) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor .java:861) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) java.lang .Thread.run(Thread.java:662) 根本原因

java.io.IOException: java.net.ConnectException: 连接被拒绝 php.java.bridge.http.FCGIConnectException.(FCGIConnectException.java:37) php.java.bridge.http.SocketChannelFactory.test(SocketChannelFactory.java:58) php .java.servlet.fastcgi.FastCGIServlet.init(FastCGIServlet.java:131) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java :298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net .AprEndpoint$Worker.run(AprEndpoint.java:1584) java.lang.Thread.run(Thread.java:662) 根本原因

java.io.IOException:未找到 PHP。请安装 php-cgi。PHP 测试命令为: [php-cgi, -v] php.java.bridge.Util$Process.start(Util.java:1145) php.java.servlet.fastcgi.FCGIProcess.start(FCGIProcess.java:68) php .java.bridge.http.SocketChannelFactory.doBind(SocketChannelFactory.java:125) php.java.bridge.http.FCGIConnectionFactory.runFcgi(FCGIConnectionFactory.java:88) php.java.bridge.http.FCGIConnectionFactory$1.run(FCGIConnectionFactory. java:109) 注意 Apache Tomcat/6.0.29 日志中提供了根本原因的完整堆栈跟踪。

Apache Tomcat/6.0.29

0 投票
3 回答
359 浏览

java - 为 php 使用 java bridge 有什么好处?

为 php 使用 java bridge 有什么好处?它是否适合生产环境/稳定,是否有“最佳方法”来安装/管理它?

0 投票
1 回答
3017 浏览

java - javabridge设置/安装问题

我正在使用 wamp server 2 和 tomcat 7。我将 javabridge.war 放在 webapp directorya 中并启动了 tomcat。这在 webapp 中创建了 javabridge 目录。

我什至将这个 javabridge 目录复制到了根目录。但是,当我尝试使用以下示例时,出现错误:

有人能告诉我我在这个设置中犯了什么错误吗?

0 投票
4 回答
6614 浏览

php - PHP JavaBridge permission error

I have an existing large(ish) PHP web app (using Apache and MySQL) which now needs to be able to call a Java based reporting engine. So, what I'm trying to achieve is the ability to access java classes from within the existing PHP app.

So far, on a new dev server, I have successfully installed the open source PHP-Javabridge project (http://php-java-bridge.sourceforge.net/pjb/index.php) and have it running under Tomcat (7.0.22) on a Fedora 15 box using port 8080. I can't use the Zend Javabridge because of hosting restrictions for the live system and unfortunately changing provider is not an option at the moment.

I also have Apache and PHP running on the dev box using port 80.

I can access the JavaBridge webapp in Tomcat and all the PHP examples work fine. However, I am running into a problem when trying to access the JavaBridge from within my existing application.

I am assuming that it should be possible for me to call the php 'java' function from within a script located in the web root for Apache (/var/www/html).

I have used the script supplied in the JavaBridge application as follows:

This produces the following errors in /etc/httpd/logs/error_log

[Tue Nov 22 15:01:08 2011] [error] [client ::1] PHP Warning: require_once(http://localhost:8080/JavaBridge/java/Java.inc): failed to open stream: Permission denied in /var/www/html/javatest.php on line 2

[Tue Nov 22 15:01:08 2011] [error] [client ::1] PHP Fatal error: require_once(): Failed opening required 'http://localhost:8080/JavaBridge/java/Java.inc' (include_path='.:/php/includes:/usr/share/apache-tomcat-7.0.22/webapps/JavaBridge') in /var/www/html/javatest.php on line 2

The other suggested script is: (note: I have a copy of Java.inc in /var/www/html)

This produces the following errors:

[Tue Nov 22 12:57:51 2011] [error] [client ::1] PHP Warning: fsockopen(): unable to connect to 127.0.0.1:8080 (Permission denied) in /usr/share/apache-tomcat-7.0.22/webapps/JavaBridge/java/Java.inc on line 994

[Tue Nov 22 12:57:51 2011] [error] [client ::1] PHP Fatal error: Uncaught Could not connect to the JEE server 127.0.0.1:8080. Please start it. Error message: Permission denied (13)\n\n thrown in /usr/share/apache-tomcat-7.0.22/webapps/JavaBridge/java/Java.inc on line 989

The steps I've taken to rule out problems are:

  • Turned off firewall on the server
  • Chmod'd everything to 777
  • Checked that Tomcat is running before and after I run the PHP script (I assume, possibly wrongly, that Tomcat is the JEE server referred to in the second error message?) 4). PHP ini file has no open_basedir restrictions, safe mode is not on and the allow_furl_open and allow_url_include options

I'm really stuck on this. No amount of Googling finds any similar specific problem.

I must say that I'm very unfamiliar with Java and may have got the wrong end of the stick on the JavaBridge insofar as it may simply not be possible to run the java function from within the /var/www/html location and that any PHP scripts must be run from within the Tomcat JavaBridge app.

I'm assuming that all the servlets are working but my lack of knowledge means I don't know to check that.

As this is on Fedora could it be connected to a SELinux permissions issue?