我继承了一个巨大的自产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>