找不到<servlet-name>映射的元素



我继承了一个巨大的自产MVC Java web应用程序在Glassfish下运行,我试图添加一个新的servlet,但得到错误

"无法找到映射为:/VSDHosts/app/LegacyBulkLookup<servlet-name>元素"

server.log文件中的

。我不明白为什么它找不到它,因为似乎我正在做它完全像现有的servlet和我的web.xml

<servlet-name>LegacyBulkLookup</servlet-name>
<jsp-file>/WEB-INF/legacy/legacyBulkLookup.jsp</jsp-file>

<servlet-mapping>
    <servlet-name>AppController</servlet-name>
    <url-pattern>/app/*</url-pattern>
</servlet-mapping>

在AppController.class中有一个叫做processRequest的方法。它基本上是一个巨大的if/else if子句。其中一个像这样处理legacyBulkLookup:

} else if (resource.equals("LegacyBulkLookup") ) {
                forwardToo = resource;

最后还有另一个if语句,假定它将收集到的所有会话数据发送到我创建的视图(legacyBulkLookup.jsp):

dispatcher = context.getNamedDispatcher(forwardToo);
dispatcher.forward(request, response);

但是视图不会显示。只是显示了一个网页,上面写着

"Internal server error.
The server encountered an internal error and cannot proceed." 

任何想法?

对于遗留servlet,您应该在web.xml文件中包含如下内容:

<servlet>
<servlet-name>LegacyBulkLookup</servlet-name>
<jsp-file>/WEB-INF/legacy/legacyBulkLookup.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>LegacyBulkLookup</servlet-name>
<url-pattern>/LegacyBulkLookup/*<url-pattern>
</servlet-mapping>

最新更新