Tengo una aplicación web donde necesito encontrar todas las clases que acceden al objeto de solicitud http (porque una de ellas está causando un error difícil de encontrar). Por lo tanto, me gustaría poner punto de corte en algunos de los métodos de implementación de ServletRequest. Sin embargo, Weblogic proporciona esta implementación para la cual no tengo fuentes. ¿Cómo puedo poner un punto de interrupción en una clase en cualquier lugar en un método particular sin tener su fuente. El Eclipse IDE es preferido.¿Cómo poner punto de corte en clase sin tener su origen?
Respuesta
Puede establecer un punto de corte de método utilizando la vista de esquema de la clase en cuestión. Luego, el depurador se rompe en la primera línea del método.
Me temo que necesitarás el código fuente si quieres que esto funcione.
Para la depuración, necesita códigos legibles + números de línea que coincidan con este código. Ninguno de estos elementos está incluido en los archivos de clase
Afortunadamente, esto no es verdad. ¡Vea la respuesta de Thorbjørn Ravn Andersen! – vol
Dependiendo de su suerte, puede hacerlo con a decompiler. Tendrá que colocar el punto de interrupción en la línea adecuada (que, por desgracia, podría no contener el código "breakpointable")
La mejor manera de hacerlo es crear un contenedor ServletResponse
. Por cierto, ayer creé tal cosa (con un propósito ligeramente diferente), así que aquí está:
public class DebugFilter implements Filter {
public void init(FilterConfig filterConfig) {}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
chain.doFilter(request,
new ResponseWrapper((HttpServletResponse) response));
}
public void destroy() {}
}
class ResponseWrapper extends HttpServletResponseWrapper {
public ResponseWrapper(HttpServletResponse response) {
super(response);
}
@Override
public PrintWriter getWriter() throws IOException {
return super.getWriter(); // breakpoint here
}
// Override whichever methods you like
}
El problema con el enfoque de envoltura es que ya tengo envoltorio en mi aplicación pero algún marco funciona de alguna manera directamente en la solicitud original: ese es el error :-). –
- 1. jdb punto de corte condicional
- 2. AspectJ: parámetro en un corte de punto
- 3. ¿Cómo usar el punto de corte condicional en Eclipse?
- 4. ¿Cuál es la diferencia entre "punto de corte de alternar línea" y "punto de corte alternar" en Eclipse?
- 5. Eclipse/punto de corte condicional resultados en BreakpointException
- 6. Cómo especificar un único punto de corte para varios paquetes
- 7. Qué poner en su ViewModel
- 8. Tiene un punto de corte implícito MyEclipse en el modo de depuración en la clase URLClassPath
- 9. punto de corte condicional GDB en tipos arbitrarios
- 10. ¿Debería cada clase tener su propio espacio de nombres?
- 11. ¿Cómo eliminar el punto de corte del eclipse?
- 12. puedo tener RSpec sin una clase para los métodos
- 13. Definir punto de corte para la función de miembro de la clase no tiene éxito
- 14. Convierta un punto de origen UIView en su sistema de coordenadas de ventana
- 15. Poner punto de interrupción en función nombrada
- 16. ¿Cómo girar un icono de Android en su punto central?
- 17. GDB: Ejecutar hasta el punto de corte específico
- 18. @AspectJ punto de corte para todos los métodos de una clase con anotación específica
- 19. ¿Cómo hago para que Slim Framework funcione sin tener que poner /index.php en la URL?
- 20. ¿es mejor poner más lógica en su cláusula ON o solo debe tener el mínimo necesario?
- 21. primavera AOP punto de corte para la discusión anotada
- 22. Puntos de corte de GDB
- 23. GDB - fuente lista de función actual sin tener que teclear su nombre
- 24. Punto de corte AOP Spring que coincide con la anotación en la interfaz
- 25. Android, ¿puedo poner AsyncTask en una clase separada y tener una devolución de llamada?
- 26. Haciendo una clase de punto en C++
- 27. ¿Cómo evitar tener el mismo nombre para una clase y su espacio de nombres, como Technology.Technology?
- 28. ¿Cómo configuro un punto de corte simbólico en _WebThreadLockFromAnyThread en Xcode?
- 29. En phpStorm, cómo poner javascript breakpoint en un archivo php
- 30. aspectoJ corte de punto a método de llamada en métodos específicos
genial, no sabía que :) +1 – Bozho
Por alguna razón, el menú contextual del método no contiene "Alternar punto de interrupción del método" en un espacio de trabajo nuevo, pero aparece después de que se estableció otro punto de interrupción. –