gpt4 book ai didi

java.lang.NoSuchMethodError : FacesContext. getAttributes()Ljava/util/Map

转载 作者:行者123 更新时间:2023-11-30 06:50:52 25 4
gpt4 key购买 nike

我在我的项目中添加了这个简单的SessionFilter,但是每当执行chain.doFilter时,它都会抛出错误 -

java.lang.NoSuchMethodError:javax.faces.context.FacesContext.getAttributes()Ljava/util/Map;

SessionFilter.java

public class SessionFilter implements Filter {

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {

if (!(req instanceof HttpServletRequest)) {
chain.doFilter(req, res);
return;
}

HttpServletResponse response = (HttpServletResponse) res;

HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(response) {
@Override
public String encodeRedirectUrl(String url) {
return url;
}

@Override
public String encodeRedirectURL(String url) {
return url;
}

@Override
public String encodeUrl(String url) {
return url;
}

@Override
public String encodeURL(String url) {
return url;
}
};
try {
chain.doFilter(req, wrappedResponse); //Exception here
} catch (Exception ex) {
System.out.println(ex);
}

}

public void destroy() {
}

public void init(FilterConfig arg0) throws ServletException {
}
}

我的项目中有以下配置。

  • 动态网络模块 - 3.0
  • Java - 1.7
  • JavaServer Faces - 2.2
  • PrimeFaces - 5.0
  • 服务器 - JBoss - 7.0

我尝试寻找任何解决方案,但找不到任何帮助。由于这是我的第一个 Java Faces 项目,所以我真的没有任何想法来解决这个问题。谁能指出我正确的方向吗?

最佳答案

尽管您已在类路径中添加了 jsf-api-2.2.jar,但当您使用 JBoss - 7.0 作为容器时,它本身附带了 jsf-api-1.2_13.jar。因此存在冲突,1.2 版本正在从容器中获取首选项,并且将首先加载。由于 javax.faces.context.FacesContext.getAttributes() 是从 jsf 2.0 引入的,这就是抛出该异常的原因。用新 jar 替换旧 jar 可能对您有用。

关于java.lang.NoSuchMethodError : FacesContext. getAttributes()Ljava/util/Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42805918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com