Estoy creando dinámicamente clases en Java e intentando invocar métodos en ellas, sin embargo, a veces obtengo un java.lang.reflect.InvocationTargetException
.Java: InvocationTargetException
PageGenerator1.java (creado de forma dinámica)
import java.io.PrintStream;
import java.util.Map;
public class PageGenerator1 implements DynamicPageGenerator {
public PageGenerator1() {
}
@Override
public void generate(PrintStream out, Map<String,String> params, Session session) {
out.print("<html>\r\n<body>\r\n");
if (session.get("counter") == null) {
session.set("counter", 2);
out.println("<h1>Hi "+params.get("name")+" this is your first visit</h1>");
} else {
out.println("<h1>This is your "+session.get("counter")+" visit</h1>");
session.set("counter", 1+((Integer)session.get("counter")));
}
out.print("\r\n</body>\r\n</html>");
}
}
Estoy tratando de invocar este modo:
logger.info(
"Attempting to invoke the method " + generateMethod + " with an instance of " + generatedClassName + "with the following parameters:\n" +
"\tparams: " + params + "\n" +
"\tcookieSession: " + cookiesSession
);
generateMethod.invoke(Class.forName(generatedClassName).newInstance(), ps, params, cookiesSession);
y esta es la entrada del registro de recibo:
INFORMACIÓN: Intentando invocar el método
public void cs236369.webserver.requesthandlers.tsp.PageGenerator1.generate(java.io.PrintStream,java.util.Map,cs236369.webserver.requesthandlers.tsp.Session)
con una instancia de
cs236369.webserver.requesthandlers.tsp.PageGenerator1
con los siguientes parámetros:
params:{name=Amir}
cookieSession:{counter=5}
La excepción que estoy recibiendo no tiene un mensaje, y estoy no tiene experiencia con la reflexión, etc. por lo que no estoy seguro de lo que significa el error. ¿Puedes ayudarme a explicar qué estoy haciendo mal?
¿En qué línea está la excepción? – Bozho
el 'generateMethod.invoke' uno. Lo siento, pensé que estaba claro. –
InvocationTargetException significa que el método invocado arrojó una excepción, necesita saber cuál era la causa para tener muchas esperanzas de comprender el problema. –