Não consigo depurar o aplicativo Tomcat por meio do Eclipse. Eu coloquei
CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
e então eu correr bin/catalina.sh
, onde eu ver a saída dizendo que é de escuta para dt_socket
on port 8000
. Mas sempre que tento conectar à porta 8000
no Eclipse (adicionando uma entrada no menu do aplicativo Java remoto), ele reclama sobre uma conexão recusada. Alguma ideia?
Respostas:
Você pode verificar se isso funciona?
fonte
set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
catalina.bat jpda start
suspend
especifica se o jvm deve esperar pelo depurador ou continuar. Veja este doc .catalina.sh jpda start
deve ser o suficiente. O catalina.sh possui algunsJPDA_*
parâmetros que podem ser usados para, por exemplo, alterar a porta, consulte o arquivo para obter a documentação.Passei algum tempo nisso para obter as informações certas.
Portanto, aqui estão as informações detalhadas, passo a passo.
Ambiente: Windows 7
Versão TomCat: 7.0
IDE: Eclipse
As configurações a serem adicionadas para permitir a depuração remota no tomcat são
Eu não recomendo a configuração acima para ambientes não Windows. Para adicionar a configuração acima, clique duas vezes no servidor tomcat que estará disponível na visualização do servidor. Encontre a captura de tela abaixo.
Agora adicione a configuração do ambiente de execução acima ao tomcat. Para isso verifique a imagem abaixo.
Agora vá para a guia Arugments em Editar propriedades de configuração de inicialização, conforme mostrado na captura de tela abaixo.
A seção de argumentos GoTo VM adiciona essas linhas.
Agora temos o botão de depuração disponível na barra de ferramentas do Eclipse.
Em Configurações de depuração, encontre "Aplicativo Java remoto" e clique duas vezes nele.
No campo Nome, digite qualquer nome que desejar.
No campo do projeto, usando o botão de navegação, selecione o projeto que deseja executar a depuração remota.
O nome do host nada mais é do que o endereço do host. Aqui, estou trabalhando localmente, então é "localhost".
Por último, a coluna Porta o valor deve ser 8000. Além dos campos de texto Nome e Projeto, outras duas colunas Host e porta serão preenchidas pelo próprio eclipse, caso não faça com que você tenha os mesmos valores mencionados. Verifique a captura de tela para obter informações.
Agora clique com o botão direito em TomcatServer no console do servidor e selecione Adicionar e Remover no menu de contexto. Nessa caixa de diálogo, você pode adicionar o projeto ao servidor.
Agora execute o servidor Tomcat.
Agora execute o TomCatDebugConfiguration da ferramenta de depuração.
Abra o navegador interno ou externo pela última vez e execute seu projeto. Se o controle de execução atingiu os pontos de interrupção, o eclipse solicitará a perspectiva de depuração.
fonte
No diretório bin do tomcat onde
catalina.bat
ou.sh
é encontrado (também conhecido como {CATALINA_BASE} / bin), edite (crie se não houver):Adicione a seguinte linha:
Isso é tudo que você precisa fazer, você não precisa editar o arquivo
catalina.bat
(ou.sh
).Veja os comentários em
catalina.bat
oucatalina.sh
.Você pode ter que ajustar a sintaxe para seu ambiente / situação particular. Por exemplo, se você já tem CATALINA_OPTS definido, você pode fazer algo assim (em um ambiente Windows):
Para depurar do Eclipse:
executar-> Configurações de depuração ...-> Aplicativo Java Remoto-> Novo
e especifique um nome, o projeto que você está depurando e o host do tomcat e a porta de depuração especificados acima.
fonte
setenv.bat
nobin
diretório coloque uma linha comoset JPDA_OPTS= -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n
, o usostartup.bat
de começar tomcatNo
catalina.bat
arquivo, modifique o abaixo.Passo 1:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
Passo 2:
JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
Etapa 3: execute o Tomcat no prompt de comando como abaixo:
catalina.sh jpda start
Etapa 4: Em seguida, no eclipse, crie uma configuração de depuração
project name
.Standard(Socket Attach)
localhost
8000
(ou qualquer número de porta, mas deve ser o mesmo em outros lugares também).fonte
Muitas das respostas acima estão corretas, mas lembre-se de que, por padrão, o depurador ouvirá apenas no host local. Se você estiver depurando um servidor remoto, você precisará especificar o endereço IP para ouvir, por exemplo
Observe que o endereço agora é 10.1.1.33 : 8000
Claro, você também pode verificar qual IP está realmente sendo usado, executando
no Windows e no Linux e filtre a porta com
find
(Windows) ougrep
(Linux).fonte
Basta executar
./catalina.sh jpda start
(bifurca) ou./catalina.sh jpda run
(não bifurca, não mencionado na ajuda). Todas as opções mencionadas aqui têm valores normais.fonte
Deixe-me compartilhar a maneira simples de ativar o modo de depuração remota em tomcat7 com eclipse (Windows).
Etapa 1: abra o arquivo bin / startup.bat
Etapa 2: adicione as linhas abaixo para depuração com a opção JDPA (deve ser a linha inicial do arquivo)
Passo 3: no mesmo arquivo .. vá ao final do arquivo modifique esta linha -
passo 4: em seguida, execute bin> startup.bat (agora seu servidor tomcat rodou em modo remoto com a porta 8000).
passo 5: depois disso, vamos conectar seu projeto de origem pelo Eclipse IDE com o cliente remoto.
etapa 6: No IDE Eclipse, vá para "configuração de depuração"
passo 7: clique em "aplicativo java remoto" e clique em "Novo"
passo 8. na guia "conectar" defina o valor do parâmetro
passo 9: clique em aplicar e depurar.
então, finalmente, seu cliente remoto Eclipse está conectado ao servidor tomcat em execução (modo de depuração).
Espero que esta abordagem possa ajudá-lo.
Saudações..
fonte
Modifique catalina.bat para adicionar
e
Opcional: adicione a linha abaixo para executar o modo de depuração por padrão ao executar startup.bat
Eclipse ou STS selecione a configuração de depuração, clique com o botão direito -> novo
fonte
Se todos os itens acima não funcionarem, você pode adicionar ao script
fonte
No tomcat 7, catalina.sh tem este código:
Ii implica que você pode configurar o JPDA com:
Ou com:
E finalmente use:
catalina.sh jpda start
Saudações
fonte
Eu estava tendo esse problema ao executar o Tomcat dentro de um contêiner do Docker. Para corrigir isso, certifique-se de adicionar o argumento '-p 8000: 8000' em seu comando docker run para expor esta porta em sua máquina local. Obviamente, você precisará do arquivo setenv.sh em seu $ {CATALINA_HOME} / bin / dentro de seu contêiner também.
fonte
Modificar o startup.bat com CATALINA_OPTS E JPDA_OPTS não funcionou para mim, mas adicioná-los ao catalina.bat funcionou
CATALINA_OPTS = "- Xdebug -Xrunjdwp: transporte = dt_socket, endereço = 8000, servidor = y, suspender = n"
JPDA_OPTS = "- agentlib: jdwp = transport = dt_socket, endereço = 8000, servidor = y, suspender = n"
mudar a chamada "% EXECUTABLE%" iniciar% CMD_LINE_ARGS% para
chamar "% EXECUTABLE%" jpda start% CMD_LINE_ARGS%
Em seguida, configure o aplicativo Java remoto em suas configurações de depuração no Eclipse.
fonte
Em primeiro lugar, se você abrir catalina.bat com o editor de texto, verá que: "Não defina as variáveis neste script ..." Portanto, nunca altere nesse script, em vez disso, você pode seguir os passos abaixo:
Em seguida, defina 2 variáveis nesse arquivo bat, como:
definir CATALINA_OPTS = "- Xdebug -Xrunjdwp: transporte = dt_socket, endereço = 8000, servidor = y, suspender = n"
definir JPDA_OPTS = "- agentlib: jdwp = transport = dt_socket, endereço = 8000, servidor = y, suspender = n"
Por último, execute-o no cmd que: "catalina.bat jpda start"
No IDE, crie a configuração de depuração remota e defina o host para o ip e porta do servidor relacionado como 8000.
fonte
Para a versão apache-tomcat-8.5.28 basta fazer isso,
Como as configurações padrão já configuradas para nós em catalina.bat como
Portanto, não há necessidade de qualquer outra configuração. E quando você executa o comando catalina.bat jpda start, pode ver que a porta de depuração 8000 está aberta.
fonte
Veja esta resposta para problemas que tive com Java 8 e Tomcat 9: Java remote debugging (JPDA) não funciona para mim no Tomcat 9
Isso é semelhante ao aviso de @ DAB e sua solução é provavelmente mais segura.
fonte
Para apache-tomcat-8.5.28
modifique
JDPA_OPTS
como a seguir e execute comocatalina.bat jpda start
fonte