问题标签 [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 投票
0 回答
539 浏览

java - 带有 PDFbox 的 PHP Java 桥接器

我想将PDFboxPHP/Java 桥一起使用,因为经过大量研究后唯一的其他选择涉及 XPDF,而且我的主机不允许 shell_exec()。我已经设法设置了 PHP/Java 桥,并且我已经下载了 PDFbox 库,但我不知道如何处理该库才能在 PHP 中使用它的 API - 我如何包含它?

我在桥上的当前文件夹结构是:

我不知道 Java 的详细工作原理,我只想使用 API 来解析 PDF 文档(类似于这个示例,但解析而不是合并)。那么我是否需要构建,我是否需要将文件复制到其中一个文件夹中......?

第二个问题:按照 PHP/Java 桥上的说明,我设置了 tomcat。但到目前为止它只适用于本地主机,当我在我的 PHP 服务器上复制 JavaBridge 文件夹时,我收到以下错误:

致命错误:未捕获无法连接到 JEE 服务器 127.0.0.1:8080。请启动它。或者定义('JAVA_HOSTS',9267); 定义('JAVA_SERVLET',假);在包含“Java.inc”之前再试一次。

那我如何获得 JEE 服务器呢?如果我使用 java 主机,我可以连接到它吗?

提前致谢!

0 投票
2 回答
1758 浏览

java - PHP Java 桥 - JEE 服务器

我有一个 PHP 网站 www.mysite.com,我想使用PHP/Java 桥。我已经在我的计算机上安装了 tomcat,它可以在 localhost 上运行。但是当我尝试在我的 PHP 服务器上使用它时,这是我得到的错误:

现在,我并不太惊讶:我的计算机不应该充当实时应用程序的 JEE 服务器。但是由于对 Java 非常不熟悉,我不确定要采取哪些步骤来修复此错误:如何获得 JEE 服务器?它只是像我得到一个 PHP 主机一样得到一个 java 主机吗?桥的哪些部分需要在 PHP 服务器上,哪些在 JEE 服务器上?

这似乎是我需要定义 JEE 服务器所在的位置 - 但我不确定这些术语在 Java 世界中的真正含义。

谢谢!

0 投票
1 回答
1062 浏览

java - 在没有 Java-Bridge 的情况下远程编译 Jasper Report

有什么方法可以将 jrxml 文件放到 Jasper 服务器上,将其链接到数据源并让它在没有 iReports、Java-Bridge、本地 Jaspersoft UI 的情况下进行编译……我想尽可能少地使用 Java,但我没有'不了解 Apache ANT。

我可以通过 (PHP) REST/SOAP API 来实现吗?

或者我可以在 Jasperserver 上设置一个小的 shell 脚本,我可以像这样使用它:

0 投票
2 回答
578 浏览

java - php-java 桥中的 ClassNotFoundexception

我是 php/java 桥的新手

这是我用于调用桌面应用程序的测试类的 php 文件,但它显示了 ClassNotfoundException。

0 投票
1 回答
265 浏览

java - 这种情况是否需要 Java 到 PHP 桥接器?

我们正在处理一个向我们发送大量数据的 API。我仍处于应用程序的架构阶段,但我的策略是使用 PHP 作为前端部分,然后使用一组 java 类来处理 API Id,并通过从execphp中的函数。PHP 处理这个问题的数据太多,这就是我决定使用 Java 的原因,但我很好奇使用 java-to-php 桥接器是否更理想?它说使用这个桥接器的性能要好得多,但是需要一些时间来弄清楚如何安装它并让它工作。

老实说,我只是想调用 java 类,exec但如果启动一个新的 JVM 似乎相当密集,我需要重新考虑我的策略。

有什么想法吗?

0 投票
3 回答
152 浏览

java - 为每个服务器请求实例化一个新的 JVM 是否是一个很大的负载?

我正在为我的 Web 应用程序使用 Apache PHP。我想exec在 PHP 中使用该函数并调用一个 java 类(我不会使用 java 到 php 的桥接器),但是现在这不仅需要在 apache 中分发请求线程,还需要使用 java 启动一个新的 JVM执行。如果我们有大量用户,这会对服务器资源造成极大的负担吗?

我不做java到php桥的唯一原因是因为启动和运行似乎有点困难和耗时。

0 投票
0 回答
1004 浏览

java - Java.inc 文件包含 PHP 中的错误

嗨,我正在使用 Java Bridge 通过 JAVA 连接 PHP,我安装了 tomcat 服务器并添加了 java.inc 文件,我包含了该文件,但出现了这样的错误

Warning: include_once(http://localhost:9090/AT_ReFactaJavaBridge/java/Java.inc): failed to open stream: Permission denied in /var/www/html/ReFacta/AT/libs/connection.php on line 38 Warning: include_once(): Failed opening 'http://localhost:9090/AT_ReFactaJavaBridge/java/Java.inc' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/ReFacta/AT/libs/connection.php on line 38 Fatal error: Class 'java' not found in /var/www/html/ReFacta/AT/libs/connection.php on line 54

请帮我

它在Windows服务器上工作正常......

我在 CENTOS 上遇到问题

0 投票
0 回答
620 浏览

php - 在 Apache Tomcat 7 上使用 PGSQL 的 PHP

我需要在需要访问 postgresql 数据库的 apache tomcat 服务器上执行一个 php 文件。服务器是 Centos Linux。我安装了 apache tomcat 7 、 php 、 postgresql 和 php-potgresql 。

但是在浏览器上加载所需的页面时,我收到以下错误:

任何有关如何解决此问题的指示将不胜感激。

0 投票
0 回答
5102 浏览

java - java.lang.OutOfMemoryError:PermGen 空间错误,Tomcat 或 PHP-Java Bridge 可能存在内存泄漏?

  • 操作系统:Windows Server 2008 R2 SP1
  • 网络服务器:IIS 7.5
  • JSP/Servlet 引擎:Tomcat 5.5.28(32 位)
  • PHP: 5.4.14
  • Java:JRE SE 1.6.0_20(32 位)
  • Apache Isapi 连接器从 IIS 挂钩到 Tomcat
  • PHP-Java 桥 6.2.1
  • BMC AR 系统 7.5 补丁 6
  • Tomcat 初始和最大内存:1024 MB、1024 MB

我正在使用一个名为 AR System 的 Java Web 应用程序。安装 PHP-Java Bridge 后,我开始在 Tomcat 日志中看到java.lang.OutOfMemoryError: PermGen space 错误。(我在 Windows 任务管理器中看到有 6 个 PHP-CGI.exe 进程,在内存占用方面都相似,给或取 5 MB)。它会每隔一天左右发生一次,然后缩短为每天,有时一天两次。因此,应用程序挂起,我必须重新启动它。我添加了一个 Windows 任务以在非高峰时间重新启动 Tomcat,以给我一些缓冲。我怀疑内存泄漏并开始做一些研究。通常,Tomcat 的大小约为 300-350 MB。使用 PHP-Java Bridge,内存显着增加。事实上,错误发生在 450-600 MB 的任何地方。

我了解到默认 PermGen 是 64MB,PermGen 应该设置为 1/4,最多 Tomcat 内存的 1/3(抱歉,我不记得链接了)。此时 Tomcat 正在 Windows 服务下运行,我在其属性中添加了以下内容:

  • -XX:+UseConcMarkSweepGC
  • -XX:+CMSPermGenSweepingEnabled
  • -XX:+CMSClassUnloadingEnabled
  • -XX:PermSize=128M
  • -XX:MaxPermSize=256M

我在 PermGen 内存上强制执行 GC,并将大小从默认的 64 MB 大小增加到 128-256 MB。内存一直缓慢上升到 800-850 MB,但在高峰时段并没有挂起,尽管我仍然通过 Windows 任务在非高峰时段故意重启 Tomcat。如果我重新启动,它最终可能会挂起,但我还没有尝试过。

我仍然怀疑内存泄漏。我安装了 AppDynamics 的试用版来监控应用程序、它的内存并运行泄漏检测。此外,为了使用 VisualVM 和 Memory Analyzer (MAT) 等工具,我禁用了 Tomcat Windows 服务,并通过 catalina.bat 从 Windows 命令行运行 Tomcat。我在文件中附加了 Java 选项;我确保 Tomcat 内存为 1024 MB,Perm Gen 为 128/256 MB,并确保 PHP-Java Bridge 和 AppDynamics 正在运行。截至目前,PermGen 的使用量保持在 163 MB,并且 AppDynamic 的自动泄漏检测没有检测到任何 Java 集合的任何泄漏。

我启动了 MAT,创建了一个堆转储并分析了泄漏。当我昨天运行它时,它发现了三个可能的嫌疑人:

  • net.sf.ehcache.Cache
  • net.sf.ehcache.store.DiskStore
  • org.apache.catalina.loader.WebappClassLoader

当我今天运行它时,它发现了 2 个可能的嫌疑人:

  • java.util.HashMap
  • org.apache.jasper.servlet.JasperLoader

因此,对于 MAT 和 AppDynamics,似乎没有检测到与 PHP-Java Bridge JAR 文件直接相关的类的内存泄漏。我没有尝试使用 Plumbr,但我找不到免费的 beta 版本。免费版本检测泄漏,但您必须付费才能看到它。

同样,我此时没有源链接,但我记得读过 Tomcat 5.x可能存在性能和内存泄漏问题。当然,这并不意味着每个人都会遇到这些问题,只是一个选定的数字。我知道 Tomcat 6 和 Tomcat 7 重新设计了它们的内存管理或它们如何构造内存。我也确实与来自 BMC(AR System 的制造商)的人进行了交谈,他们说我正在使用的当前版本的 AR System 可能会遇到性能和内存问题。但是,在 PHP-Java Bridge 出现之前,这一切都不是问题。只有在我安装它之后,这个 PermGen 内存问题才开始。

由于上述工具没有报告任何泄漏,这是否意味着没有泄漏并且 PHP-Java Bridge 只需要 64 MB 以上的 PermGen 内存?或者,我的 Tomcat 版本是否存在继承问题并且安装 PHP-Java 桥只是打破了众所周知的骆驼背?

升级到更新版本的 AR System 和 Tomcat 不是一种选择。如果有泄漏,我可以卸载 PHP-Java Bridge 或继续尝试查找泄漏并修复它。

任何帮助,将不胜感激。

谢谢你。

更新 1

使用 MAT,我查看了线程概述和堆栈,您可以在下面看到 PHP-Java 桥贡献了 Tomcat 总堆内存的大约 2/3。那是很多记忆!我认为有泄漏,我有。我找不到有关具有继承内存泄漏问题的 PHP-Java 桥的任何信息。但是,对我来说,问题似乎不在于 Tomcat 正在泄漏。想法?

Tomcat堆的MAT线程栈

即使我手动添加了 MAT 中怀疑的类,AppDynamics 也找不到任何泄漏。我想知道的是 PermGen 错误可能是程序没有泄漏并且需要分配更多 PermGen 内存的情况的症状。了解 PHP-Java 桥是否被设计为消耗大量内存,这么多内存会很有帮助;也许它针对 64 位进行了优化,因为当前设置是 32 位 Java Web 应用程序。如果我知道这座桥需要大量内存,我会说好的,好的,然后从那里开始。但它肯定看起来好像在链中的某个地方存在内存泄漏。

更新 2

我现在已经运行 Plumbr 2 小时将近 10 分钟。我看到 Tomcat 内存正在飙升至 960 MB,并且可能会继续攀升。对于熟悉程序的人,Java Web 应用程序已经分析了 3 次。到目前为止,尚未报告任何泄漏。如果它保持这种状态,那么我得出的两个结论是 a) 没有泄漏或 b) 有泄漏,不知何故,AppDynamics 和 Plumbr 都错过了它。如果这组应用程序一起工作确实没有泄漏,那么一定是 Bridge 使用了大量内存并且需要比 Tomcat 的默认值 64 MB 更多的 PermGen 内存——至少对于 32 位 Java web应用程序。

0 投票
1 回答
1161 浏览

apache-poi - 带有 JavaBridge 的 PHP:POI 设置自定义背景颜色

谁能发现代码有什么问题?

此代码不会更改背景颜色

反正

也不行