Pessoal, importei um projeto que baixei na internet para o eclipse. Eu coloquei um breakpoint na classe, porém quando eu aperto F6 para ir para a próxima linha o eclipse pula algumas linhas. É como se estivesse debugando uma classe diferente sei lá. Testei em várias versões do eclipse, e nos projetos que eu desenvolvo funciona normalmente o debug. Alguém já passou por essa situação? É alguma configuração do projeto será?
Provavelmente as linhas que estão sendo “puladas” são após um if ou for certo!? Isso é por que a condição que foi estabelecida no if retorna um valor falso, dae o compilador não passa dentro do bloco de código do if!
Não não, são linhas simples de código. Inclusive a linha de debug entra em blocos de comentário.
Ola pessoal estou começando a mecher com java e ja estou tentando fazer um menu de cadastro de produto simples, alguem poderia me achudar passando algum codigo, dica, etc…OBRIGADO.
ctj, aconselho primeiro você dar uma lida nas regras do fórum e abrir um tópico específico para as suas dúvidas.
isso acontece quando vc alterou o código e ainda não recompilou.
Dê um clean no projeto [Project -> Clean …]
Veja se [Build automatically] está marcado.
Posta o código então para gent dar uma olhada e marca onde vc ta debugando!
Oi,
Acho que você alterou o código enquanto debugava…
Obs: a tecla F6 faz o que? Step into ou Step over?
Tchauzin!
Esse é o método que deveria estar sendo debugado. Eu coloquei um System.out ali só para testar e coloquei um breakpoint nessa linha.
Ele parava na primeira linha e quando dava um F6 pulava algumas linhas, ía para a linha que tem “String agree = request.getParameter(“agree”);” se eu não me engano e não aparecia a mensagem do sysout no console.
Agora eu fiz alguma coisa que nem está mais parando no breakpoint hehehe
Está muito estranho isso
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
IOException {
System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
AE ae;
ServletContext servletContext = getServletContext();
ServerConfiguration serverConfiguration;
EchoService echoService;
String agree = request.getParameter("agree");
if (agree != null && agree.equals("agree")) {
Cookie agreeCookie = new Cookie("agree", "agree");
agreeCookie.setMaxAge(60 * 60 * 24 * 365);
response.addCookie(agreeCookie);
}
try {
String contextPath = request.getContextPath().replaceAll("/", "");
ServerXmlConfiguration.fname = contextPath + "-config.xml";
ae = new AE();
// assigns the serverConfiguration instance.
serverConfiguration = ae.getServerConfiguration();
/*
* writes the serverConfiguration instance in the servletContext
* (application scope). So all the SERVLET classes and JSP pages can
* access the serverConfig attribute. User can use either
* <jsp:useBean> tag or ${applicationScope.serverConfig} EL to
* access the serverConfig attribute. From SERVLET classes the User
* can use the getServletContext().getAttribute("serverConfig") to
* access the serverConfiguration attribute.
*/
servletContext.setAttribute("serverConfig", serverConfiguration);
echoService = new EchoService();
echoService.checkEcho();
/*
* If the status of EchoService is failed then the request will be
* forwarded to EchoFailed.jsp. Otherwise, request is forwarded to
* oviyam7.jsp
*/
if (echoService.getStatus().equals("Echo failed")) {
/*
* writes the echoURL(dcmProtocol://aeTitle@hostName:port)
* attribute in request instance. and forwards the request and
* response object to EchoFailed.jsp . echoFailed attribute can
* be accessed through either ${request.echoURL} or <%
* request.getAttribute("echoURL")%>
*/
request.setAttribute("echoURL", ae.toString());
request.getRequestDispatcher("EchoFailed.jsp").forward(request, response);
} else {
// forwards the request and response to oviyam7.jsp
String studyUID = request.getParameter("studyUID");
String seriesUID = request.getParameter("seriesUID");
String patientID = request.getParameter("patientID");
if (studyUID != null && studyUID.length() <= 0) {
request.setAttribute("param", "studyUID");
request.getRequestDispatcher("InvalidParam.jsp").forward(request, response);
log.error("Invalid studyUID parameter for Oviyam.");
} else if (seriesUID != null && seriesUID.length() <= 0) {
request.setAttribute("param", "seriesUID");
request.getRequestDispatcher("InvalidParam.jsp").forward(request, response);
log.error("Invalid seriesUID parameter for Oviyam.");
} else if (patientID != null && patientID.length() <= 0) {
request.setAttribute("param", "patientID");
request.getRequestDispatcher("InvalidParam.jsp").forward(request, response);
log.error("Invalid patientID parameter for Oviyam.");
} else {
request.getRequestDispatcher("oviyam7.jsp").forward(request, response);
}
}
} catch (Exception e) {
log.error(e.getMessage());
}
}
[quote=Z]isso acontece quando vc alterou o código e ainda não recompilou.
Dê um clean no projeto [Project -> Clean …]
Veja se [Build automatically] está marcado.[/quote]
[2]
Sim, isso foi a primeira coisa que eu fiz =]
Colocando breakpoint na primeira linha não funciona, mas coloquei vários breakpoints nas linhas abaixos e em alguns deles parou. Parece que o eclipse está debugando um outro código fonte e abrindo para a visualização o que eu realmente quero…
E deve ser isso mesmo que ele está fazendo. Verifique se no seu projeto não tem um .jar com os mesmos arquivos dentro.
Então… nesse projeto que eu baixei veio junto os .class (WEB-INF/classes) será que é por isso? Se eu tiro os .class do projeto não funciona mais.
é por isso mesmo…
vc tem q recompilar as classes para o seu debug funcionar adequadamente.
Pois é, nos projetos que eu trabalho aqui eu não tenho que fazer isso. Apenas salvo o .java e roda normalmente o debug. Nesse eu tive que gerar o .war e copiar a pasta classes para o projeto e aí sim funcionar a minha alteração. Com certeza devo estar fazendo alguma coisa errada mas enfim… já enxi o saco desse projeto em servlet puro, vou passar ele para o VRaptor hehehehe
Sei que o post já ta antigo mas para quem vir a ler futuramente procurando uma solução aí vai uma dica,
isso já aconteceu comigo 2 vezes, e as duas foram pelo mesmo motivo,
a primeira vez que tentei usar JDBC e ainda não sabia muito bem como usar bibliotecas no projeto, e outra ontem quando estava usando o Window Builder pra criar umas telas e resolvi experimentar um layout manager que nunca tinha visto, o JGoodiesLayout, foi importado uma biblioteca automaticamente e na hora de referenciar deve ter havido algum erro, bug sei lá, e a referencia da biblioteca ficou como “missing” o que ocasionou esse erro bizarro durante um debug ou execução…
verifique se o projeto não contém nenhuma biblioteca referenciada que não pode ser localizada, isso impede o compilador de compilar o fonte, porém o programa executa como se tivesse tudo perfeito…
caso exista, delete a biblioteca e pronto, dê Run ou Debug novamente que vai funcionar perfeito
Estou com este mesmo problema. Eu fiz o que o yuripodho fez: gerar o .war e copiar a pasta classes para o projeto, más também não funcionou. E as minhas libs estão todas corretas. Será que alguém tem outra solução?