glassfish - 在Glassfish内部脚本中,如何更改管理端口

  显示原文与译文双语对照的内容
0 0

这里有一个奇怪的Glassfish问题。 下面是如何复制它的方法:

( 1 ) 安装 Glassfish v3
( 2 ) 启动你的默认域:


$GLASSFISH_HOME/bin/asadmin start-domain domain1

( 3 ) 更改管理端口( 你需要输入 admin uid &密码,在我们的脚本中,我们使用 -u & -W参数):


$GLASSFISH_HOME/bin/asadmin set configs.config.server-config.network-config.network-listeners.network-listener.admin-listener.port=34848

( 4 ) 关闭域:


$GLASSFISH_HOME/bin/asadmin stop-domain domain1

你会看到这不起作用。 你得到:


CLI306 Warning - server is not running.
Command stop-domain executed successfully.

但是你的Glassfish进程仍在运行。 更糟糕的是,当你尝试启动进程时,你会收到一条警告,指出你的一些端口已经在使用。 当然,旧的过程还是有的 ! 你唯一的出路就是 killall -9 java

虽然一些配置的变化是动态的,似乎这是不但是域停止假设动态,并使用新的端口来执行命令。

可能的解决方案有:

( 1 ) 在 domain.xml 上使用 sed - 将更倾向于不使用XML代码对&风险进行复杂的grepping 。 我看到了Glassfish改变了这个文件中属性的顺序,所以我们不能仅仅为 port="4848"
( 2 )使用脚本安装程序而不是zip文件和饲料安装程序的参数作为一个答案文件——这是有问题的对我们的安装脚本需要idem有力。
( 3 ) 使用 domain.xml 安装归档文件的自定义zip文件已经更改- port在将来设置的端口可能会改变。

这几乎是一个角案例的定义,但我们需要解决。 现在我们要 sed domain.xml,但是知道是否有可能通过CLI的方式来知道是否有可能。

时间: 原作者:

0 0

你可能需要执行以下操作。

  1. 通过解压缩安装 v3
  2. 删除 domain1
  3. 使用你喜欢的端口创建新的domain1. 创建域子命令的手册页将包含所有详细信息
  4. 启动这个新域。

不需要额外启动或者停止必要的( 如果你愿意的话,你可以跳过第 2步'asadmin启动域 mydomain'而不是'asadmin域"'

原作者:
0 0

Sed不像我想象的那样糟糕,下面是我所做的:


cd $GLASSFISH_HOME
sed -i.bak '/<network-listener[^>]*name="admin-listener"/s/port="4848"/port="34848"/g' glassfish/domains/domain1/config/domain.xml

它仍然是一个 Bug,它认为端口改变是动态的,但我可以与这个黑客在这一点。

原作者:
...