1

Windows と Tomcat 7.0 で PHP と PHP/Java ブリッジをセットアップしました。そこではすべてOKです。

ただし、Windows 7 マシンにインストールされている Weblogic サーバーに接続するための Java 呼び出しを含む php ファイルを作成して、ユーザー/グループの追加/削除などを試しています。

これは私が従ったものです:http://docs.oracle.com/cd/E13222_01/wls/docs90/jmx/accessWLS.html私はこれも見ましたhttp://weblogic-wonders.com/weblogic/2009/10 /11/creating-users-in-weblogic-server-embedded-ldap-programatically/ (ただし、2 番目のものについては、java:comp/env/jmx/runtime 行でエラーが発生します)

ただし、「t3」プロトコルを認識して weblogic に接続するように設定できません。奇妙なことに、別のスタンドアロン スクリプトで jython を使用して t3 プロトコル経由でコンソールに接続できます。

上記の最初のリンクには、クラスパスに wljmxclient.jar が追加されていることを確認するためのセクションがあります。それを追加するクラスパスを設定しました。クラスパスを設定するために Weblogic サーバーへの接続が行われる直前に、PHP を使用して Weblogic の setWLSenv.cmd を実行することさえあります。. . 問題のjarファイルが追加されていることを示しています。それでもうまくいきません。次に、jar ファイルを JavaBirde/WEB-INF/lib フォルダーにコピーしました。それでもうまくいきません。

IIOP プロトコルを試してみましたが、「このコンテキストではバインドされていません」と示されているエラーの新しいパスを開始しました。上記のOracle docリンクに記載されている3つのMサーバーを切り替えてみました。そこにも運はありません。

他の人がこの「t3 プロトコルはサポートされていません」というメッセージに出くわしたようですが、解決策はありません。

これが私のコードです:

<?php 

require_once("java/Java.inc");

$output=exec("C:\Oracle\Middleware\wlserver_12.1\server\bin\setWLSenv.cmd");

$protocol = "t3";
$hostname = "localhost";
$port="7001";
$jndiroot="/jndi/";
$mserver="weblogic.management.mbeanservers.domainruntime";
$united = $jndiroot.$mserver;
$serviceURL = new java("javax.management.remote.JMXServiceURL",$protocol, $hostname, $port,$united);

$h = new java("java.util.Hashtable");
$h->put("javax.naming.Context.SECURITY_PRINCIPAL", "myUID");
$h->put("javax.naming.Context.SECURITY_CREDENTIALS", "myPWD");
$h->put("javax.management.remote.JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES",
         "weblogic.management.remote");

$connector = new java("javax.management.remote.JMXConnectorFactory");

$connector->connect($serviceURL,$h);

?>
4

1 に答える 1

1

これは、最終的に Weblogic に接続する方法です。

1) インストーラーの代わりに Tomcat 7.0 zip ファイルをインストールし、手動でセットアップしました。私の中で

setenv.bat file it looks like:
set CATALINA_HOME=C:\Program Files (x86)\Apache Software Foundation\apache-tomcat-7.0.34
set CATALINA_BASE=C:\Program Files (x86)\Apache Software Foundation\apache-tomcat-7.0.34
set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_09
set JRE_HOME=C:\Program Files (x86)\Java\jdk1.7.0_09\jre
set JAVA_OPTS=-Djava.ext.dirs=C:\Oracle\Middleware\wlserver_12.1\server\lib
set CLASSPATH=.;C:\Oracle\Middleware\wlserver_12.1\server\lib\wljmxclient.jar

exit /b 0

2) weblogic コンソールを介して weblogic で IIOP プロトコルを有効にし、ユーザー ID/パスワードの num 3 で使用したユーザー ID/パスワードを追加しました。

3) PHP/Java Bridge を使用した Tomcat 7 上の私の php スクリプト (JMXServerURL ではありません . . . プロトコルとして「rmi」を使用する必要があることはどこにもありませんでした)

$serviceURL = new java("javax.management.remote.JMXServiceURL","rmi","localhost","7001","/jndi/iiop://localhost:7001/weblogic.management.mbeanservers.edit");

//"service:jmx:iiop://localhost:7001/jndi/weblogic.management.mbeanservers.edit");

$env = new java("java.util.Hashtable");
$env->put("javax.management.remote.JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES","weblogic.management.remote");
$env->put("javax.naming.Context.SECURITY_PRINCIPAL", "myuserID");
$env->put("javax.naming.Context.SECURITY_CREDENTIALS", "mypassword");

$jmxCon = java("javax.management.remote.JMXConnectorFactory")->newJMXConnector($serviceURL, $env);
$jmxCon->connect();
$connection = $jmxCon->getMBeanServerConnection();

$mbeans = $connection->queryNames(null,null);

foreach($mbeans as $key=>$value) {
echo $key. "=". $value;
}

管理サーバーと、テスト用に作成した 2 つの管理対象サーバーのすべての MBean を接続して出力しました。

于 2012-12-19T16:47:51.660 に答える