java.lang.NoSuchMethodError:javax.servlet.http.Cookie.setHttpOnly(Z)V

问题描述 投票:3回答:2

我使用weblogic 10.3.6.0应用程序服务器来部署应用程序。部署其中一个使用JDK8的应用程序之后。在运行时我收到以下错误。

java.lang.NoSuchMethodError:javax.servlet.http.Cookie.setHttpOnly(Z)V

dependencies.gradle文件的内容如下

providedCompile'javax.servlet:javax.servlet-api:3.0.1'

这个错误背后的原因是什么?

java gradle weblogic-10.x
2个回答
3
投票

自Servlet 3.0以来,Cookie.setHttpOnly()可用。您正在部署到仅提供Servlet 2.5的WebLogic 10。

请注意,您的项目是针对API依赖性而不是实际的运行时实现进行编译的。这是正确的项目设置,不要更改它。但是,必须确保通过部署到正确的服务器,在运行时中提供了为编译选择的API。


1
投票

正如其他人所说,你正在为你的weblogic版本编译错误的servlet jar。如果您想继续使用weblogic 10,那么您应该更改为

providedCompile 'javax.servlet:javax.servlet-api:2.5'

一旦你这样做,我猜你会得到Cookie.setHttpOnly()的编译错误。

出于兴趣,你为什么要使用weblogic?有许多免费/开源servlet容器比weblogic好得多。 Weblogic不符合与其他servlet容器相同的标准。

© www.soinside.com 2019 - 2024. All rights reserved.