我正在使用jsf2.2.9,我的weblogic容器可以使用javax.servlet_1.0.0.0_2-5.jar 但有时我有这个错误:
java.lang.NoSuchMethodError: javax.servlet.http.Cookie.setHttpOnly(Z)V
at com.sun.faces.context.ExternalContextImpl.addResponseCookie(Unknown Source)
所以我在jsf2.2.9的源代码中看到了这个:
switch (2.$SwitchMap$com$sun$faces$context$ExternalContextImpl$ALLOWABLE_COOKIE_PROPERTIES[localALLOWABLE_COOKIE_PROPERTIES.ordinal()])
{
case 1:
localCookie.setDomain((String)localObject);
break;
case 2:
localCookie.setMaxAge(((Integer)localObject).intValue());
break;
case 3:
localCookie.setPath((String)localObject);
break;
case 4:
localCookie.setSecure(((Boolean)localObject).booleanValue());
break;
case 5:
localCookie.setHttpOnly(((Boolean)localObject).booleanValue());
break;
default:
throw new IllegalStateException();
}
javax.servlet_1.0.0.0_2-5.jar中不存在和 setHttpOnly :( 它存在于servlet-api3.0中我猜。
我无法升级我的weblogic,因为其他应用程序可以使用它。 如果没有传递给jsf2.1我可以做什么来解决这个问题(因为2.1不调用localCookie.setHttpOnly,它出现在2.1.3和2.2.0之间的版本中)现在所有开发都完成了,没有人有这个错误之前:(