我有一个编译为 WAR 文件的项目,当我使用“干净安装”来构建我的项目时,它给出“构建成功”,但是当我反编译某些文件时,它在反编译文件中给出以下行:
package service.auth;
import FilterChain;
import FilterConfig;
import ServletException;
import ServletRequest;
import ServletResponse;
import java.io.IOException;
public class XSSFilter {
public void init(FilterConfig paramFilterConfig) throws ServletException {
throw new Error("Unresolved compilation problems: \n\tFilterConfig cannot be resolved to a type\n\tServletException cannot be resolved to a type\n");
}
public void destroy() {
throw new Error("Unresolved compilation problem: \n\tThe method destroy() of type XSSFilter must override or implement a supertype method\n");
}
public void doFilter(ServletRequest paramServletRequest, ServletResponse paramServletResponse, FilterChain paramFilterChain) throws IOException, ServletException {
throw new Error("Unresolved compilation problems: \n\tServletRequest cannot be resolved to a type\n\tServletResponse cannot be resolved to a type\n\tFilterChain cannot be resolved to a type\n\tServletException cannot be resolved to a type\n\tThe constructor XSSRequestWrapper(HttpServletRequest) refers to the missing type HttpServletRequest\n\tHttpServletRequest cannot be resolved to a type\n");
}
}
尽管源 Java 文件包含正确的导入,但不知何故,导入在反编译文件中没有正确反映。以下是 Java 源代码的导入:
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
所需的 jar 文件“javax.servlet-api”已正确包含在 pom.xml 中,并且也没有编译错误,不知何故,在 maven 构建包含 war 文件夹的目标文件夹后,存在以下几个问题,主要与 servlet 有关-api 类仅供参考。我知道这一定是我的一些愚蠢的错误,但我找不到什么。
PS:由于某种原因,我还必须在我的 pom.xml 中包含“jakarta.servlet-api”jar,而且当我通过清理和重新启动服务器直接将战争部署到我的 jboss 服务器时,它运行良好,并且应用程序也在工作。
有人以前遇到过这种错误吗?我只是想要一个思考的方向来解决这个问题。谢谢!!
您正在使用 Eclipse 编译器,它可以为无法编译的代码发出如下所示的代码。
解决方法是修复所有编译错误,以便从命令行构建项目:
mvn clean package