使用Openshift为PHP / Java桥部署.war时出现“Uncaught无法连接”错误

时间:2014-03-08 07:31:35

标签: java php ip openshift bridge

问题:使用Openshift部署.war for PHP / Java bridge时收到“无法连接”错误
下面我描述我为了解决这个错误所采取的每一步,提前谢谢。

完整错误:(IP隐藏)
“致命错误:Uncaught无法连接到JEE服务器WXYZ:8080。请启动它。或者定义('JAVA_HOSTS',9267); define('JAVA_SERVLET',false);在包含'Java.inc'之前再试一次。错误消息:第989行/home/stevenw1/public_html/softwareProject/real/inc/Java.inc中的连接被拒绝(111)“

玩家:“Java_Bridge.war”=我将用于调用方法的java .war文件 “W.X.Y.Z”=已部署.war文件的IP地址不变 “GUIProfile”= @WebServlet("/GUIProfile")public class GUIProfile extends HttpServlet的Java类 “tomcattest.php”=调用GUIProfile的静态方法'validate'的测试文件

部署的Java_Bridge.war和tomcattest.php在我的本地tomcat上运行正常,还没有在Openshift上运行。

塞纳里奥:
0.遵循Openshift 2012 java tomcat application的命令行步骤 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墨盒
remote:将SIGTERM发送给jboss:386662 ...
remote:由于缺少pom.xml而跳过Maven构建 remote:准备构建以进行部署 remote:部署ID为bd83d6eb
remote:激活部署
remote:+'['Java_Bridge.war']'
遥控器:启动jbossews盒
remote:找到W.X.Y.Z:8080监听端口//(非实际IP)
remote:Git Post-Receive结果:成功
remote:激活状态:成功
远程:部署已完成,状态为:成功
ssh://thisisnottheactualuser@tomcat6-notthenamehereeither.rhcloud.com

4.考虑.war已部署我运行了一个tomcattest.php,它使用php / java桥接器Java.inc来从扩展httpservlet的java类GUIProfile调用java方法'validate'。 //当然使用上面相同的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 = W.X.Y.Z
7. env | grep "PORT"
OPENSHIFT_JBOSSEWS_HTTP_PORT = 8080
OPENSHIFT_JBOSSEWS_JPDA_PORT = 8787

8.将tomcattest.php中的端口更改为8787,当然没有改变。
9.从顶部重新启动,这次保持./src/& amp; pom.xml,相同的'部署已完成状态:成功',同样的错误使用tomcattest.php和新的监听IP ...
10.试图解决'openshift youtube vid 2012'看起来过时的问题。一步一步跟随:
onced ssh'ed,没有“tomcat”dir,我使用cd $OPENSHIFT_DATA_DIR代替访问数据目录
wget tomcat,将端口更改为&gt; 15000,sh startup.sh && tail -f ../logs/*
结果中值得注意的错误包括:

  

严重:无法初始化连接器[连接器[AJP / 1.3-15009]]   org.apache.catalina.LifecycleException:无法初始化组件   [连接器[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:Permission   否认:15009


11.重新启动第6步,这次将IP保留原样,只将localhost更改为tomcat-stevenwernercs.rhcloud.com,结果与原始IP相同 12.网上用完了选项,然后我提出了这个问题...... 13.然后我编辑了很多...
14.耐心等待:)

这就是我所做的一切,我不确定为什么php没有找到Java。
我看了以前的问题并没有找到任何帮助。
对任何事情开放,谢谢

2 个答案:

答案 0 :(得分:0)

不允许非scable应用程序中的Gears在任何非http / ws端口上进行通信。因此,如果你的php java桥试图在15009(从我上面看到的)上与tomcat实例进行通信,那将无法正常工作。您只能在80/443/8000/8443上发出请求。你能验证一下java桥的端口是什么吗?

答案 1 :(得分:0)

替代解决方案:https://bitnami.com/cloud

我使用Bitnami与亚马逊AWS合作,提供1年的免费服务,易于遵循的文档,以及丰富和最新的文档,花了不到一个小时。

免责声明:在端口8080上使用ssh隧道我在tomhost上配置了tomcat,并将托管的.php移动到了 同样的微服务器也托管了tomcat。 (我放弃了尝试分别托管php和tomcat。) 我之前在我大学的tomcat服务器上分别托管了tomcat。但那是我完全可以访问的节点。

我仍然想尝试Openshifts免费解决方案,虽然我看到的当前资源和方法似乎不再有效。不幸的是,这些解决方法不够直观,而且目前还在我的脑海中。谢谢。