Как подключиться к удаленному соединителю с помощью Wildfly 10?

Есть ли у кого-нибудь идеи, как приблизиться к решению моей проблемы?

Я борюсь с удаленным подключением к jmx моего сервера Wildfly.

Окружающая обстановка

WildFly 10.0.0 Финал

JDK 1.8.0_66

Режим домена

выделенный удаленный сокет

выделенный разъем удаленного управления

Я ввел выделенный коннектор удаленного взаимодействия, так как хочу дать доступ к jmx только по этому порту, а управление оставить на другом порту. Я определил область безопасности, а также некоторых пользователей.

Способ работы

Я попробовал несколько строк подключения в синтаксисе "service:jmx:://:. Но ни один протокол не работает:

  • дистанционный пульт
  • HTTP-удаление-JMX
  • удаленное взаимодействие-JMX
  • удаленный+http
  • удаленный удаленный
  • удаленное взаимодействие-JMX

Ошибки

Это появляется в server.log моего сервера WF

DEBUG [org.jboss.remoting.remote.connection] (I/O-5 по умолчанию) JBREM000200: ошибка удаленного подключения: java.io.IOException: XNIO000804: получена недопустимая длина сообщения 1195725856

Фрагмент конфигурации профиля

<subsystem xmlns="urn:jboss:domain:remoting:3.0">
    <endpoint/>
    <connector name="remoting" socket-binding="remoting" security-realm="ApplicationRealm"/>
    <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>
</subsystem>

Я хотел бы использовать VisualVM на моем клиенте Windows для подключения, поэтому я использовал jconsole.bat Wildfly и настроил исполняемые файлы для использования VisualVM.

Скрипт окружения для VisualVM

@echo off
rem -------------------------------------------------------------------------
rem jconsole script for Windows
rem -------------------------------------------------------------------------
rem
rem A script for running jconsole with the remoting-jmx libraries on the classpath. 

rem $Id$
set JBOSS_HOME="C:\local\wildfly_10.0"
set JAVA_HOME="C:\Programme\Java\jdk1.8.0_66"


@if not "%ECHO%" == ""  echo %ECHO%
@if "%OS%" == "Windows_NT" setlocal

if "x%JAVA_HOME%" =="x" (
    echo JAVA_HOME environment variable has not been set - please set and re-run!
    goto :EOF
)

if "%OS%" == "Windows_NT" (
set "DIRNAME=%~dp0%"
) else (
set DIRNAME=.\
)

pushd %DIRNAME%..
set "RESOLVED_JBOSS_HOME=%CD%"
popd

if "x%JBOSS_HOME%" == "x" (
set "JBOSS_HOME=%RESOLVED_JBOSS_HOME%" 
)

pushd "%JBOSS_HOME%"
set "SANITIZED_JBOSS_HOME=%CD%"
popd

if "%RESOLVED_JBOSS_HOME%" NEQ "%SANITIZED_JBOSS_HOME%" (
    echo WARNING JBOSS_HOME may be pointing to a different installation - unpredictable results may occur.
)

set DIRNAME=

if "%OS%" == "Windows_NT" (
set "PROGNAME=%~nx0%"
) else (
set "PROGNAME=jdr.bat"
)

rem Setup JBoss specific properties
if "%JAVA_HOME%" == "x" (  
echo JAVA_HOME is not set. Unable to locate the jars needed to run jconsole.
goto END
)

rem Find jboss-modules.jar, or we can't continue
if exist "%JBOSS_HOME%\jboss-modules.jar" (
    set "RUNJAR=%JBOSS_HOME%\jboss-modules.jar"
) else (
echo Could not locate "%JBOSS_HOME%\jboss-modules.jar".
echo Please check that you are in the bin directory when running this script.
goto END
)

rem Set default module root paths
if "x%JBOSS_MODULEPATH%" == "x" (
set  "JBOSS_MODULEPATH=%JBOSS_HOME%\modules"
)

rem Setup The Classpath
set CLASSPATH=


call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\remoting\main
call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\remoting-jmx\main
call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\remoting3\remoting-jmx\main
call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\remoting3\main
call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\logging\main
call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\xnio\main
call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\xnio\nio\main
call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\sasl\main
call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\marshalling\main
call :SearchForJars %JBOSS_MODULEPATH%\system\layers\base\org\jboss\marshalling\river\main


"%JAVA_HOME%\bin\jvisualvm.exe" "-cp:a" "%CLASSPATH%" 

:END
goto :EOF

:SearchForJars
pushd %1
for %%j in (*.jar) do call :ClasspathAdd %1\%%j
popd
goto :EOF

:ClasspathAdd
SET CLASSPATH=%CLASSPATH%;%1


:EOF

person vetwhat    schedule 24.05.2016    source источник
comment
Я не эксперт в этой области, но одно небольшое замечание: для пути к классу вы можете использовать jboss-client.jar uber JAR, который находится в $JBOSS_HOME/bin/client. Я думаю, что это сообщение означает, что вы пытаетесь подключиться с помощью чего-то вроде HTTP, но вместо этого используете удаленное взаимодействие <connector/>.   -  person James R. Perkins    schedule 24.05.2016


Ответы (1)


Для Wildfly 10.1:

Запустите jconsole.sh из каталога wildfly/bin.

Подключиться к сервису:jmx:remote+http://server:port

и добавленный вами управляющий пользователь.

Вы можете увидеть порт в выводе журнала

10:20:36,785 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://server:10090/management
person weberjn    schedule 05.09.2016