Как отлаживать приложение Java EE с помощью WebLogic 10.3 - PullRequest
5 голосов
/ 18 февраля 2011

Я использую WebLogic 10.3 с приложением Java EE. Может кто-нибудь сказать, пожалуйста, как отладить это приложение?

Ответы [ 6 ]

10 голосов
/ 08 февраля 2014

Я думаю, что другие ответы несколько неверны.Для окон, если вы устанавливаете переменную среды с именем debugFlag в значение true или в solaris / unix делаете то же самое

debugFlag=true
export debugFlag
DEBUG_PORT=8453
export DEBUG_PORT

, тогда setDomainEnv.sh или setDomainEnv.cmd будут вызываться для запуска WLSдругими сценариями.Они ищут debugFlag и DEBUG_PORT, поскольку флаг «production» не установлен, он выберет правильные параметры из сценария для отладки (-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE).

ВЫ НЕ ДОЛЖНЫБУДЬТЕ взламывать эти сценарии.Это усложнит развертывание и обслуживание, цель скрипта setDomainEnv заключается в том, чтобы правильные значения по умолчанию использовались и поддерживались в кластере и во всей среде.Я признаю, что они плохо документированы.

Обратите внимание, что если вы используете плагин Oracle weblogic maven, то цель wls:deploy или wls:start-server при запуске подберет эти параметры среды, потому что они вызывают команды из-подкапот, и те, в свою очередь, сначала вызывают setDomainEnv.

. На данный момент, если вы используете eclipse и настроили Oracle WebLogicServer, плагин maven не будет подключаться к нему в режиме отладки при запускеmvn:deploy, вы можете либо перезапустить его в режиме отладки (глупо), либо создать «Run ==> Debug ==> DebugConfigurations ==> RemoteJavaApplication» с типом подключения «standard (socket attach)», хост«localhost» (или удаленный сервер) и порт (по умолчанию для меня «8453»).Затем вы можете сделать Run ==> Debug Configurations ==> Local Server Attach.

6 голосов
/ 15 июня 2012

Для меня это сработало:

В папке WEBLOGIC_HOME \ user_projects \ domains \ my_domain \ bin

Есть файл setDomainEnv.cmd

В нем я нашелкод:

if "%debugFlag%"=="true" (
    set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE
    set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -ea -da:com.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea:com.bea.broker... -ea:com.bea.sbconsole...
) else (
    set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -da
)

Я просто поместил строки для отладки вне условия if:

set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE
set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -ea -da:com.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea:com.bea.broker... -ea:com.bea.sbconsole...

    if "%debugFlag%"=="true" (
        set JAVA_DEBUG=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=%DEBUG_PORT%,server=y,suspend=n -Djava.compiler=NONE
        set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -ea -da:com.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea:com.bea.broker... -ea:com.bea.sbconsole...
    ) else (
        set JAVA_OPTIONS=%JAVA_OPTIONS% %enableHotswapFlag% -da
    )

После этих настроек вы можете отладить порт 8453

Порттакже настроенный в этом файле, вы также можете изменить его:

if "%DEBUG_PORT%"=="" (
    set DEBUG_PORT=8453
)

Остановите сервер, запустите скрипт, запустите сервер.

Теперь ваш сервер weblogic настроен для отладки.

3 голосов
/ 14 августа 2013

Лучший способ включить отладку на сервере weblogic заключается в следующем:

  • создать файл сценария
  • вставьте эти строки в ваш скрипт (для windows):

set debugFlag = true

set DEBUG_PORT = 9001

  • вызвать сценарий запуска (например,): C: \ Oracle \ Middleware \ user_projects \ domains \ domain1 \ bin \ startWebLogic.cmd)

Итак, в сценарии будет 3 строки, это все, что вам нужно ...

Есть и другие переменные, которые вы можете использовать ....

WLS_REDIRECT_LOG = log_path <- перенаправить вывод в файл вместо окна консоли ... </p>

JAVA_OPTIONS <- дополнительные параметры для JVM </p>

EXTRA_JAVA_PROPERTIES <- укажите дополнительные свойства, которые могут вам понадобиться </p>

3 голосов
/ 05 июня 2012

То, что я сделал, чтобы Eclipse Debugger работал с Weblogic 10, - это поиск файла startWeblogic.cmd в папке weblogic.10.3.3.0\user_projects\domains\base_domain\bin\ и изменение следующей строки (около строки 95):

set JAVA_OPTIONS=%SAVE_JAVA_OPTIONS%

для

set JAVA_OPTIONS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n %SAVE_JAVA_OPTIONS%

Затем я остановил любой сервер weblogic, который работал в Eclipse, и запустил Weblogic, используя файл startWebLogic.cmd.

Затем я создал новую конфигурацию отладки в Eclipse.Перейдите к настройкам отладки, выберите «Remote Java Application», оно должно распознать ваш проект, используйте Standard (Socket attach) для типа соединения и укажите порт 8453. В свойствах соединения.

Теперь примените и запустите.Установите некоторые точки останова в куске кода, который будет регулярно запускаться, и посмотрите, работает ли он.

2 голосов
/ 18 февраля 2011

Попробуйте удаленную отладку приложения. Вы можете попробовать эти ссылки, которые могут быть полезны:

http://download.oracle.com/docs/cd/E15051_01/wlw/docs103/guide/ideuserguide/servers/conWebLogicServer.html#DebugRemote

http://eclipse.sys -con.com / узел / 169364

http://www.jacoozi.com/index.php?option=com_content&task=view&id=119&Itemid=134

0 голосов
/ 29 ноября 2013

Jonnathan Q answer помог мне запустить Weblogic также в режиме отладки.Для unix вы можете использовать такой синтаксис в сценариях оболочки:

debugFlag=true
export debugFlag
DEBUG_PORT=9001
export DEBUG_PORT

, а затем запустить startWeblogic.sh и startManagedWeblogic.sh, если необходимо.IDEA) для остановки на точках останова мы развернули наше веб-приложение на AdminServer, потому что в случае развертывания на узле в кластерной среде наши среды IDE вообще не останавливались на точках останова.

...