0

問題: Openshift を使用して PHP/Java ブリッジ用の .war をデプロイすると、「接続できませんでした」というエラーが表示

される 以下に、このエラーに到達するまでに行ったすべての手順について説明します。

完全なエラー: (IP は隠蔽)
"致命的なエラー: Uncaught Could not connect to the JEE server WXYZ:8080.Please start it. Or define('JAVA_HOSTS',9267); define('JAVA_SERVLET',false); before include 'Javaエラー メッセージ: 989 行目の /home/stevenw1/public_html/softwareProject/real/inc/Java.inc で接続が拒否されました (111) がスローされました"

プレイヤー: "Java_Bridge.war" = PHP がメソッドを呼び出すために使用する Java .war ファイル
                 "WXYZ" = デプロイされた .war ファイルの変更されない IP アドレス"GUIProfile" =                  "tomcattest.php" = テスト ファイルとして
                 の Java クラスGUIProfile の静的メソッド「validate」を呼び出す@WebServlet("/GUIProfile")public class GUIProfile extends HttpServlet

デプロイされた Java_Bridge.war と tomcattest.php は、ローカルの tomcat では正常に動作しますが、Openshift ではまだ動作しません。

シナリオ: 0.           Openshift 2012 Java tomcat アプリケーション
の コマンド ライン手順に従い ました。 1. Openshift の rhc を使用して、" "を使用して最初のアプリを作成しました 。 2. 3. // 注目すべき出力には以下が含まれます           。 386662 ...           リモート: pom.xml が存在しないため、Maven ビルドをスキップしています リモート: 展開           用のビルドを準備してい           ます リモート: 展開 ID は bd83d6eb です           リモート: 展開をアクティブにしています           リモート: + '[' Java_Bridge.war ']'           リモート: jbossews カートリッジを開始しています
rhc app create -a tomcat6 -t jbossews-1.0
cd ~/tomcat6/; git rm -rf ./src/ pom.xml
cp ~/Java_Bridge.war ./webapps/; git add ./webapps/Java_Bridge.war; git commit -m "first try"; git push









          remote: Found WXYZ:8080 listen port //(実際の IP ではない)
          remote: Git Post-Receive 結果: 成功
          remote: Activation status: 成功
          remote: Deployment complete with status: success
          to ssh://thisisnottheactualuser@tomcat6-notthenamehereeither.rhcloud .com

4. .war がデプロイされたと考えて、httpservlet を拡張する Java クラス GUIProfile から Java メソッド 'validate' を呼び出す tomcattest.php を実行しました。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 を保持します。同じ「Deployment completed with status: success」、新しいリッスン IP で tomcattest.php を使用すると同じエラーが発生します
vid 2012 ' 一見時代遅れです。順を追って説明します。
          一度 ssh を実行し、「tomcat」ディレクトリはありません。cd $OPENSHIFT_DATA_DIR代わりに、データ ディレクトリ
          wget tomcat にアクセスし、ポートを >15000 に変更しました。sh startup.sh && tail -f ../logs/*
          結果の注目すべきエラーは次のとおりです。

SEVERE: コネクタの初期化に失敗しました [Connector[AJP/1.3-15009]] org.apache.catalina.LifecycleException: コンポーネントの初期化に失敗しました [Connector[AJP/1.3-15009]] SEVERE: Failed to initialize connector [Connector[AJP/1.3] -15009]] org.apache.catalina.LifecycleException: コンポーネントの初期化に失敗しました [Connector[AJP/1.3-15009]] SEVERE: ProtocolHandler に関連付けられたエンドポイントの初期化に失敗しました ["ajp-bio-15009"] java.net.BindException : 許可が拒否されました: 15009 SEVERE: ProtocolHandler ["ajp-bio-15009"] に関連付けられたエンドポイントの初期化に失敗しました java.net.BindException: 許可が拒否されました: 15009


11. 手順 6 を再開しました。今回は IP をそのままにして、localhost のみを tomcat-stevenwernercs.rhcloud.com に変更しました。結果は同じでしたが、元の IP は同じでした
12. オンラインで選択肢がなくなったので、この質問をしました...
13.それから私はそれをたくさん編集しました...
14.辛抱強く待ってください:)

それが私が行ったことのすべてです。なぜphpがJavaを見つけられないのかわかりません。
以前の質問を見ましたが、役に立ちませんでした。
何にでもオープンです、ありがとう

4

2 に答える 2

0

非スケーラブル アプリケーションの Gears は、非 http/ws ポートでの通信を許可されていません。したがって、php Java ブリッジが 15009 の tomcat インスタンスと通信しようとしている場合 (上記から)、それは機能しません。80/443/8000/8443 でのみリクエストを行うことができました。Java ブリッジが動作するポートを確認できますか?

于 2014-03-10T14:37:24.117 に答える