2015-04-28 4 views
3

У меня есть удаленный сервер с Java, к которому у меня есть SSH-доступ. Я пишу приложение на локальной машине, строя его с maven. Возможно ли установить IDE Itellij IDEA для запуска моего проекта удаленно? Идея заключается в следующем: построить банку, скопировать ее на сервер и отладить процесс (или что-то в этом роде).Intellij IDEA удаленная отладка java console program

Было бы хорошо, если бы вы делились настройками, которые мне нужно настроить.

ответ

1

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

Что нужно сделать в IntelliJ, создайте конфигурацию Remote. Для этого откройте IntelliJ и рядом с кнопкой запуска (слева), у вас должны быть конфигурации, обозначенные стрелкой вниз. Нажмите стрелку и нажмите Изменить конфигурации. Должно открыться новое окно. Щелкните знак + в левом верхнем углу и выберите Удаленный. Должно появиться новое окно. Теперь нам нужно установить хост и порт, который использует сервер для отладки (если вы используете tomcat, обычно 8000; в tomcat вы можете найти его, открыв файл catalina.bat с помощью текстового редактора и посмотрев для свойства JPDA_ADDRESS, которое позволяет вам изменять порт). Дайте вашей конфигурации имя и нажмите Применить.

После этого вам необходимо выполнить вашу конфигурацию в режиме отладки. Вам нужно выбрать его из списка конфигурации и нажать кнопку Debug, расположенную справа от Запустить кнопку.

Подробнее здесь:

http://blog.trifork.com/2014/07/14/how-to-remotely-debug-application-running-on-tomcat-from-within-intellij-idea/comment-page-1/

http://eclipse.org/jetty/documentation/current/debugging-with-intellij.html

http://www.javaranch.com/journal/200408/DebuggingServer-sideCode.html

Я надеюсь, что это помогает.

+0

я, вероятно, что-то неправильно, но почему я нужен Tomcat, чтобы запустить простой стороне сервера «привет мир» консольное программа. Я также не нашел упоминания о подключении ssh к удаленному серверу. –

+0

Я использовал tomcat в качестве примера сервера. Мой Tomcat - это сервер, к которому вы подключены через SSH. Однако то, что я сказал вам, относится к приложениям, которые развернуты на этом сервере, например. веб-архивы (.war-файлы). Я не уверен, что то, что вы запрашиваете, может быть выполнено для файлов .jar (или, по крайней мере, я никогда не сталкивался с таким сценарием). В любом случае, именно так вы подключаетесь к удаленному серверу, чтобы отлаживать ваше приложение от IntelliJ. – SSJVegito

8

Это то, что я обычно делаю для отладки моего удаленного приложения.

  1. Запустите сервер на режиме отладки

    Это может быть добавление этой конкретной строки при запуске сервера

    -Xdebug -Xrunjdwp:transport=dt_socket,server=n,suspend=n,address=9999 
    

    приложения для JDK выше 1.4, вы можете использовать этот

    -agentlib:jdwp=transport=dt_socket,server=n,suspend=n,address=9999 
    

    После этого запустите сервер приложений

  2. SSH туннелирование

    Я не 100% уверен, что вы можете получить доступ к порту вашего приложения напрямую, если вы используете ssh-соединение (ну, может быть, есть способ;)). Итак, сначала нам нужно открыть порт для отладки, который мы установили на первом шаге, выполнив эту команду.

    ssh -f [email protected] -L 9999:personal-server.com:9999 -N 
    
  3. Настройка IDE

    Вы можете следить за шагом, который @SSJVegito сказало, что в основном, это указать отладчик к порту 9999. Открыть конфигурацию отладки в ваших идеях, затем измените кружком значение 9999. затем счастливым отладки: D debug configuration

+0

Мне удалось заставить его работать, но такие вещи, как получение дампа потока, очень медленны и замораживают приложение, пока я жду их завершения. Замораживание приложения более чем на секунду не приемлемо для меня. Любая идея, что я могу сделать, чтобы исправить это? – Barteks2x

Смежные вопросы