Weblogic 尝试将wlst脚本嵌入java类时获取加密错误

Weblogic 尝试将wlst脚本嵌入java类时获取加密错误,weblogic,wlst,Weblogic,Wlst,我正在尝试组装一个小实用程序,它可以让我们从域中的托管服务器中提取托管服务器侦听地址和端口 WLST似乎是合适的工具 我有一个这样的脚本 admin_url = sys.argv[1] cluster = sys.argv[2] connect(url=admin_url) servers = get_servers(cluster) for server in servers.values(): address = server.getListenAddress() port = st

我正在尝试组装一个小实用程序,它可以让我们从域中的托管服务器中提取托管服务器侦听地址和端口

WLST似乎是合适的工具

我有一个这样的脚本

admin_url = sys.argv[1]
cluster = sys.argv[2]
connect(url=admin_url)
servers = get_servers(cluster)
for server in servers.values():
  address = server.getListenAddress()
  port = str(server.getListenPort())
  server_url = address + ":" + port
  addresses.append(server_url)
print ','.join(addresses)
我们使用weblogic密钥存储用户名和密码,因此无需传递连接用户名和密码。它工作得很好,但是…我们需要在ant脚本中使用它,看起来从WLST获取信息并返回ant的唯一方法是捕获输出

我遇到的第一个问题是,当您调用WLST时,它会打印一些无法抑制的垃圾(头)。“正在初始化WebLogic脚本工具(WLST)…”等

因此,稍微搜索一下就可以发现,如果您直接调用WLST,就无法抑制这种情况,但是您可以将脚本嵌入java类中,并且嵌入式解释器不会输出头

我将我的脚本包装在一个类中,对它进行编译,当我使用java运行它时,它运行没有问题

>java wlst.GetClusterAddress t3://myhost:7001 mycluster

mymanagedserver1:9999,mymananagedserver2:9999
到目前为止还不错

现在我试着用我的ant脚本包装这个类

<java classname="wlst.GetClusterAddress" outputproperty="${addresses}" >
  <arg line="${admin.url} ${cluster.name}"/>
  <classpath refid="class.path"/>
</java>
我已经检查了我的类路径,java和ant之间似乎都是一样的。我不知道下一步该去哪里看。为什么在使用ant时这不起作用?

java
任务中设置fork=“true”时尝试一下:

<java classname="wlst.GetClusterAddress" outputproperty="${addresses}" fork="true">
...

...

Woot!就这样。现在很有魅力。谢谢
<java classname="wlst.GetClusterAddress" outputproperty="${addresses}" fork="true">
...