如何从.class或.java生成.jsp以解决Ubuntu 18.04下servlet 404问题
根本原因
你访问报错的/adminsite/servlet/com.jsbsoft.jtf.core.SG是Java Web应用定义的Servlet访问路由,不是物理文件系统路径,你不需要手动创建servlet目录,也不需要在该目录下生成jsp文件,你之前手动创建目录、移动class文件的操作是错误的。
修复步骤
- 先删除你手动创建的
/adminsite/servlet目录,将com.jsbsoft.jtf.core.SG.class放回原来的classes目录下,注意要严格匹配包名的目录结构:正确路径应为/adminsite/WEB-INF/classes/com/jsbsoft/jtf/core/SG.class,目录层级、大小写必须和包名完全一致。 - 找到
/adminsite/WEB-INF/web.xml配置文件,添加如下Servlet注册和映射规则:
<servlet> <servlet-name>SGCore</servlet-name> <servlet-class>com.jsbsoft.jtf.core.SG</servlet-class> </servlet> <servlet-mapping> <servlet-name>SGCore</servlet-name> <url-pattern>/servlet/com.jsbsoft.jtf.core.SG</url-pattern> </servlet-mapping>
如果应用使用Servlet 3.0+注解配置,不需要修改web.xml,直接在com.jsbsoft.jtf.core.SG类上添加@WebServlet("/servlet/com.jsbsoft.jtf.core.SG")注解,重新编译后将class文件放回正确的类路径即可。
- 重启你使用的Servlet容器(Tomcat、Jetty等),再次访问目标路径即可正常调用该Servlet逻辑。
补充说明
该路径对应的是后端Servlet服务,不是JSP页面,不需要额外生成任何JSP文件,JSP本质也是编译成Servlet运行,你已经有实现好的SG.classServlet类,正确配置映射规则即可正常访问。
内容的提问来源于stack exchange,提问作者Jean Fidele Nzihou
相关产品推荐
相关产品推荐

