问题:使用 Openshift 为 PHP/Java 桥部署 .war 时收到“无法连接”错误
下面我描述了我为解决此错误而采取的每个步骤,在此先感谢。
完全错误:(IP隐藏)
“致命错误:未捕获无法连接到JEE服务器WXYZ:8080。请启动它。或定义('JAVA_HOSTS',9267);定义('JAVA_SERVLET',false);在包括'Java .inc' 并重试。错误消息:在第 989 行的 /home/stevenw1/public_html/softwareProject/real/inc/Java.inc 中抛出连接被拒绝 (111)
玩家: “Java_Bridge.war”=我的 java .war 文件,php 将使用它来调用来自
“WXYZ”的方法=已部署的 .war 文件的不变 IP 地址
“GUIProfile”=带有“tomcattest.php”的 Java 类@WebServlet("/GUIProfile")
=public class GUIProfile extends HttpServlet
测试文件调用 GUIProfile 的静态方法“验证”
部署的 Java_Bridge.war 和 tomcattest.php 在我的本地 tomcat 上运行良好,只是在 Openshift 上还没有。
Senario:
0. 遵循Openshift 2012 java tomcat 应用程序
的命令行步骤
1. 使用 Openshift 的 rhc 我使用“ rhc app create -a tomcat6 -t jbossews-1.0
”创建了我的第一个应用程序
2. cd ~/tomcat6/; git rm -rf ./src/ pom.xml
3. cp ~/Java_Bridge.war ./webapps/; git add ./webapps/Java_Bridge.war; git commit -m "first try"; git push
//值得注意的输出包括:
远程:停止 jbossews 墨盒
远程:向 jboss 发送 SIGTERM: 386662 ...
远程:由于缺少 pom.xml
远程而跳过 Maven 构建:为部署远程准备构建
:部署 id 为 bd83d6eb
远程:激活部署
远程:+'['Java_Bridge.war']'
远程:启动 jbossews 墨盒
远程:找到WXYZ:8080监听端口//(不是实际IP)
远程:Git Post-Receive 结果:成功
远程:激活状态:成功
远程:部署完成状态:成功
到ssh://thisisnottheactualuser@tomcat6-notthenamehereeither.rhcloud .com
4. 考虑部署 .war 我运行了一个 tomcattest.php,它调用 java 方法“验证”,来自扩展 httpservlet 的 java 类 GUIProfile,使用 php/java 桥 Java.inc
//当然使用相同的 IP从上面...
cat tomcattest.php;
<?php
define("JAVA_HOSTS", "W.X.Y.Z:8080");
define("JAVA_SERVLET", "/Java_Bridge/GUIProfile");
require_once("Java.inc");
$valiationOutput = java_context()->getServlet()->validate("hello");
echo $valiationOutput;
?>
编辑:后来也在所有情况下都尝试过:完全相同的结果
cat alternatetest.php
<?php
define("JAVA_HOSTS", "W.X.Y.Z:8080");
require_once("Java.inc");
echo java("java.lang.System")->getProperties();
?>
调用 tomcattest.php 的输出是您在顶部看到的“致命错误”。
仔细检查:
5. ssh thisisnottheactualuser@tomcat6-notthenamehereeither.rhcloud.com
6. env | grep "IP"
OPENSHIFT_JBOSSEWS_IP=WXYZ
7. env | grep "PORT"
OPENSHIFT_JBOSSEWS_HTTP_PORT=8080
OPENSHIFT_JBOSSEWS_JPDA_PORT=8787
8. 将tomcattest.php中的端口更改为8787,当然没有改变。
9. 从顶部重新启动,这次保持 ./src/ 和 pom.xml,同样的“部署完成,状态为:成功”,使用带有新监听 IP 的 tomcattest.php 时出现同样的错误...
10. 尝试了来自openshift youtube的解决方案vid 2012 ' 看起来已经过时了。循序渐进:
曾经ssh'ed,没有“tomcat”目录,我用wget tomcatcd $OPENSHIFT_DATA_DIR
访问数据目录
,将端口更改为> 15000,sh startup.sh && tail -f ../logs/*
结果中的显着错误包括:
严重:无法初始化连接器 [Connector[AJP/1.3-15009]] org.apache.catalina.LifecycleException:无法初始化组件 [Connector[AJP/1.3-15009]] 严重:无法初始化连接器 [Connector[AJP/1.3] -15009]] org.apache.catalina.LifecycleException:无法初始化组件 [Connector[AJP/1.3-15009]] 严重:无法初始化与 ProtocolHandler ["ajp-bio-15009"] java.net.BindException 关联的端点:权限被拒绝:15009 严重:无法初始化与 ProtocolHandler [“ajp-bio-15009”] java.net.BindException 关联的端点:权限被拒绝:15009
11. 重新开始第 6 步,这次保留 IP,只将 localhost 更改为 tomcat-stevenwernercs.rhcloud.com,结果相同,但使用原始 IP
12. 在线选项不足,然后我提出了这个问题...
13.然后我编辑了很多...
14. 耐心等待 :)
这就是我所做的一切,我不确定为什么 php 找不到 Java。
我看了以前的问题没有发现任何帮助。
对任何事情都开放,谢谢