Minhas Spring Boot
webapp está funcionando bem e gostaria de depurá-lo por meio do Eclipse.
Portanto, ao iniciar meu depurador de aplicativo Java remoto, qual porta devo escutar? E há uma configuração em meu webapp que devo definir para habilitar a depuração?
Respostas:
Por que você simplesmente não clica com o botão direito no
main()
método e escolhe"Debug As... Java Application"
?fonte
Há a seção 19.2 em Spring Boot Reference que informa sobre como iniciar seu aplicativo com o suporte para depuração remota habilitado.
Depois de iniciar o aplicativo, basta adicionar a configuração do aplicativo Java remoto nas configurações Executar / Depurar, selecionar a porta / endereço que você definiu ao iniciar o aplicativo e, em seguida, você estará livre para depurar.
fonte
java -agentlib:jdwp=help
estados "A interface -Xrunjdwp mais antiga ainda pode ser usada, mas será removida em uma versão futura". Em vez disso, use-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
Solução mais fácil:
Em vez de digitar
mvn spring-boot:run
, simplesmente digitemvnDebug spring-boot:run
Você ainda precisará conectar o depurador no Eclipse fazendo uma nova Configuração de Depuração para um "Aplicativo Java Remoto" na porta relevante.
fonte
Não precisei configurar a depuração remota para fazer isso funcionar, usei o Maven.
spring-boot::run
.NB. Se o seu IDE tiver problemas para encontrar o código-fonte do seu projeto ao fazer a depuração linha por linha, dê uma olhada nesta resposta do SO para descobrir como anexar manualmente o código-fonte ao aplicativo de depuração.
Espero que isso ajude alguém!
fonte
Como depurar um aplicativo Spring Boot de produção ou teste remoto
Lado do servidor
Vamos supor que você seguiu com sucesso o guia do Spring Boot sobre a configuração de seu aplicativo Spring Boot como um serviço . O artefato do seu aplicativo reside em
/srv/my-app/my-app.war
, acompanhado de um arquivo de configuração/srv/my-app/my-app.conf
:Ao reiniciar seu aplicativo Spring Boot com
sudo service my-app restart
, então em seu arquivo de log localizado em/var/log/my-app.log
deve haver uma linha dizendoListening for transport dt_socket at address: 8002
.Lado do cliente (máquina de desenvolvedor)
Abrir um túnel port-forwarding SSH para o servidor:
ssh -L 8002:localhost:8002 [email protected]
. Mantenha esta sessão SSH em execução.No Eclipse, na barra de ferramentas, selecione Executar -> Configurações de depuração -> selecione Aplicativo Java Remoto -> clique no botão Novo -> selecione como Tipo de Conexão Padrão (Conexão de Soquete) , como Host localhost e como Porta 8002 (ou o que você tiver configurada nas etapas anteriores). Clique em Aplicar e em Depurar .
O depurador Eclipse agora deve se conectar ao servidor remoto. Mudar para a perspectiva Debug deve mostrar a JVM conectada e seus encadeamentos. Os pontos de interrupção devem ser acionados assim que forem acionados remotamente.
fonte
Execute o comando abaixo onde
pom.xml
está colocado:E inicie seu aplicativo Java remoto com a opção de depuração na porta
5005
fonte
Spring Boot 2.0.3.RELEASE
.A melhor solução na minha opinião é adicionar um plugin no pom.xml, e você não precisa fazer mais nada o tempo todo:
fonte
mvn clean install
aciona o depurador e a compilação trava. Seria legal se apenas omvnDebug clean install
comando fizesse isso.fonte
Right click on the spring boot project -> debug as -> spring boot App
. Coloque um ponto de depuração e invoque o aplicativo de um cliente como o carteirofonte
Consulte http://java.dzone.com/articles/how-debug-remote-java-applicat para habilitar a depuração remota. Se você estiver usando o tomcat para executar seu aplicativo, inicie o tomcat com os parâmetros de depuração remota ou você pode iniciar o tomcat com suporte JPDA usando o seguinte comando.
janelas
* nix
isso permitirá a depuração remota na porta 8000
fonte
Com o eclipse ou qualquer outro IDE, basta clicar com o botão direito do mouse em seu aplicativo de inicialização principal e clicar em "depurar como aplicativo java"
fonte
Esta pergunta já foi respondida, mas eu também tive o mesmo problema para depurar Springboot + gradle + jHipster,
Principalmente o aplicativo de inicialização Spring pode depurar com o botão direito e depurar, mas quando você usa gradle, tendo alguma configuração de parâmetro de ambiente adicional, não é possível depurar diretamente.
Para resolver isso, o Eclipse forneceu um recurso adicional como aplicativo Java remoto
usando esses recursos, você pode depurar seu aplicativo.
Siga a etapa abaixo:
execute seu aplicativo Gradle com o
./gradlew bootRun --debug-jvm
comandoAgora vá para eclipse -> clique com o botão direito do mouse em projeto e configuração de depuração -> Aplicativo Java Remoto.
adicione seu host e porta como localhost e porta como 5005 (padrão para depuração gradle, você pode alterá-lo)
Consulte para obter mais detalhes e etapas.
fonte
Clique com o botão direito do mouse no arquivo de classe principal do Spring Boot Applications -> selecione as opções Debug As -> Selecione o aplicativo Java
Agora você pode usar pontos de interrupção para depurar o aplicativo.
fonte