我在 Windows 和 Tomcat 7.0 上设置了 PHP 和 PHP/Java 桥。那里一切都好。
但是,我正在尝试编写一个带有 java 调用的 php 文件,以连接到安装在我的 Windows 7 机器上的 Weblogic 服务器,以添加/删除用户/组等。
这就是我所遵循的: 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/(但对于第二个我在 java:comp/env/jmx/runtime 行上出现错误)
但是,我无法让我的设置识别“t3”协议以连接到我的 weblogic。奇怪的是,我可以在单独的独立脚本中使用 jython 通过 t3 协议连接,并以这种方式连接到控制台。
上面第一个链接中有一个部分可确保将 wljmxclient.jar 添加到类路径中。我设置了一个类路径来添加它。我什至在连接到我的 Weblogic 服务器之前使用 PHP 来执行 Weblogic 的 setWLSenv.cmd 以设置我的 classpath 。. . 它显示了正在添加的 jar 文件。还是不行。然后我将 jar 文件复制到 JavaBirde/WEB-INF/lib 文件夹。还是不行。
我确实尝试了 IIOP 协议,但随后我开始了一条新的错误路径,其中指示了“未在此上下文中绑定”。我尝试在上面 Oracle 文档链接中提到的 3 个 Mserver 之间切换。那里也没有运气。
我看到其他人遇到了这个“不支持 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);
?>