2

IP をハードコーディングせずに、外部の localhost から Java RMI にアクセスできるようにするにはどうすればよいですか?

4

1 に答える 1

0

RMI を 0.0.0.0 にバインドすることは不可能であるため、解決策は IP を検出して使用することです。

Linux と OS X の両方で以下のソリューションを使用しました。

IP=$(ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p')
# if we have several IPs found, we pick the first one
for IP in $IP:
do
  break
done

CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=8081 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=${IP} "

明らかに、これは安全でない構成方法ですが、ニーズに合わせて自由に調整できます。

于 2013-08-28T11:38:34.987 に答える