問題: 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を見つけられないのかわかりません。
以前の質問を見ましたが、役に立ちませんでした。
何にでもオープンです、ありがとう