martes, 23 de agosto de 2016

Cuando falla un JSP en WSO2


A veces nos topamos con errores como el mencionado en esta pregunta de stackoverflow, donde la razón no es evidente.

Es una instalación fresca del WSO2 API Manager 1.10 y al tratar de ver los roles de un usuario salta el siguiente error:

2016-08-23 09:26:05,638 [-] [http-nio-443-exec-2] ERROR JspTilesRequestContext JSPException while including path '/user/edit-user-roles.jsp'. 
javax.servlet.jsp.JspException: ServletException while including page.

Caused by: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.user.edit_002duser_002droles_jsp

Caused by: java.lang.ClassNotFoundException: org.apache.jsp.user.edit_002duser_002droles_jsp
    at java.net.URLClassLoader.findClass(Unknown Source)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:121)
    at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)

La solución es realmente fácil y es la siguiente:

Editar el fichero wrapper.conf que se encuentra en [WSO2_HOME]\bin\yajsw\ y agregar estas 2 líneas:

wrapper.java.additional.18 = -Dcomponents.repo=${carbon_home}\\repository\\components
wrapper.java.additional.26 = -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false

La explicación la pueden encontrar en la misma respuesta dada en stackoverflow.