JSP extends WebTopServlet no Glassfish [RESOLVIDO]

Ola senhores,

Estou criando uma aplicação web no Glassfish e ocorreu um caso que seria interesante que meu JSP extendese um determinado Servlet. Implementei-os e testei no Tomcat, funcionou perfeitamente, mas essa semana que comecei a migrar a aplicação para o Glassfish este parou de funcionar e apresentou o seguinte erro.

HTTP Status 405 - HTTP method GET is not supported by this URL

O meu Servlet tem basicamente

[code]@SuppressWarnings(“serial”)
public abstract class WebTopServlet extends HttpServlet {

/*
 * (non-Javadoc)
 * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
 */
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
	super.doGet(req, res);
}

/*
 * (non-Javadoc)
 * @see javax.servlet.GenericServlet#destroy()
 */
@Override
public void destroy() {
	super.destroy();
}

/*
 * (non-Javadoc)
 * @see javax.servlet.GenericServlet#init(javax.servlet.ServletConfig)
 */
@Override
public void init(ServletConfig config) throws ServletException {
	super.init(config);
}

protected void createMenuTree(AbstractMenu menu, JspWriter out) throws Exception {
	if (menu instanceof MenuTree) {
		out.println("<div id=\""+menu.getCode()+"\" class=\"menu\">");
		for(AbstractMenu m : ((MenuTree)menu).getMenus()) {
			createMenuNode(m, out);
		}
		out.println("</div/>");
		
		for(AbstractMenu m : ((MenuTree)menu).getMenus()) {
			createMenuTree(m, out);
		}
	}
}

protected void createMenuNode(AbstractMenu menu, JspWriter out) throws Exception {
	if (menu instanceof MenuTree) {
		out.println("<a id=\""+menu.getCode()+"\" class=\"{menu:'"+menu.getCode()+"', img: 'icon_14.png'}\"  >"+menu.getName()+"</a>");
	} else if (menu instanceof MenuNode) {
		out.println("<a href=\"#\" class=\"{img: 'ico_view.gif'}\" >"+menu.getName()+"</a>");
	} else if (menu instanceof MenuCustom) {
		MenuCustom mc = (MenuCustom) menu;
		if (mc.getStyleType() == MenuCustom.StyleType.SEPARATOR) {
			out.println("<a rel=\"separator\" > </a>");
		} else {
			out.println("<a rel=\"text\" >"+mc.getHtml()+"</a>");
		}
	}
}

}
[/code]

e o JSP

[code]<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>
<%@ page extends=“com.engecorps.gaia.portal.WebTopServlet” %>
<%–@ taglib prefix=“f” uri=“http://java.sun.com/jsf/core”–%>
<%–@ taglib prefix=“h” uri=“http://java.sun.com/jsf/html”–%>

<%@page import=“java.util.List”%>

<% List menusBar = ControllerEngine.load(MenuBar.class); for(MenuBar menuBar : menusBar) { out.println(""); }
	%>
	</tr></table>
</div>

<%
for(MenuBar menuBar : menusBar) {
createMenuTree(menuBar, out);
}
%>

[/code]

Alguém tem uma idéia se no Glassfish eu preciso implementar ou estender outra classe?

"+menuBar.getName()+"

você não implementou o método doGet, então quando você faz uma requisição usando o método HTTP GET, o container vê que o método doGet não está implementado e te devolve isso.

Está implementado e com acesso public

Minha superclasse tinha que implementar javax.servlet.jsp.HttpJspPage ai em vez de estender javax.servlet.http.HttpServlet troquei por org.apache.jasper.runtime.HttpJspBase, pois o Glassfish possui essa biblioteca.
A superclasse ficou assim:

[code]import org.apache.jasper.runtime.HttpJspBase;

@SuppressWarnings(“serial”)
public abstract class WebTopServlet extends HttpJspBase {

/*
 * (non-Javadoc)
 * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
 */
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
	super.doGet(req, res);
}

protected void createMenuTree(AbstractMenu menu, JspWriter out) throws Exception {
	if (menu instanceof MenuTree) {
		out.println("<div id=\""+menu.getCode()+"\" class=\"menu\">");
		for(AbstractMenu m : ((MenuTree)menu).getMenus()) {
			createMenuNode(m, out);
		}
		out.println("</div/>");
		
		for(AbstractMenu m : ((MenuTree)menu).getMenus()) {
			createMenuTree(m, out);
		}
	}
}

protected void createMenuNode(AbstractMenu menu, JspWriter out) throws Exception {
	if (menu instanceof MenuTree) {
		out.println("<a id=\""+menu.getCode()+"\" class=\"{menu:'"+menu.getCode()+"', img: 'icon_14.png'}\"  >"+menu.getName()+"</a>");
	} else if (menu instanceof MenuNode) {
		out.println("<a href=\"#\" class=\"{img: 'ico_view.gif'}\" >"+menu.getName()+"</a>");
	} else if (menu instanceof MenuCustom) {
		MenuCustom mc = (MenuCustom) menu;
		if (mc.getStyleType() == MenuCustom.StyleType.SEPARATOR) {
			out.println("<a rel=\"separator\" > </a>");
		} else {
			out.println("<a rel=\"text\" >"+mc.getHtml()+"</a>");
		}
	}
}

}[/code]

Dependência do maven para quem quizer

<dependency> <groupId>tomcat</groupId> <artifactId>jasper-runtime</artifactId> <version>5.5.23</version> <scope>provided</scope> </dependency>