java.lang.NoSuchMethodError: javax.servlet.http.Cookie.setHttpOnly(Z)V
java.lang.NoSuchMethodError: javax.servlet.http.Cookie.setHttpOnly(Z)V
我正在使用 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'
此错误背后的原因是什么?
Cookie.setHttpOnly()
从 Servlet 3.0 开始可用。您正在部署到仅提供 Servlet 2.5 的 WebLogic 10。
请注意,您的项目是针对 API 依赖项而不是实际的运行时实现进行编译的。这是正确的项目设置,不要更改它。但是,您必须确保通过部署到正确的服务器在运行时提供您选择编译的 API。
正如其他人所说,您针对您的 weblogic 版本针对错误的 servlet jar 进行编译。如果您想继续使用 weblogic 10,那么您应该更改为
providedCompile 'javax.servlet:javax.servlet-api:2.5'
一旦你这样做了,我猜你会得到 Cookie.setHttpOnly()
.
的编译错误
出于兴趣,你为什么要使用 weblogic?有许多免费/开源的 servlet 容器比 weblogic 好得多。 Weblogic 不符合与其余 servlet 容器相同的标准。
我正在使用 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'
此错误背后的原因是什么?
Cookie.setHttpOnly()
从 Servlet 3.0 开始可用。您正在部署到仅提供 Servlet 2.5 的 WebLogic 10。
请注意,您的项目是针对 API 依赖项而不是实际的运行时实现进行编译的。这是正确的项目设置,不要更改它。但是,您必须确保通过部署到正确的服务器在运行时提供您选择编译的 API。
正如其他人所说,您针对您的 weblogic 版本针对错误的 servlet jar 进行编译。如果您想继续使用 weblogic 10,那么您应该更改为
providedCompile 'javax.servlet:javax.servlet-api:2.5'
一旦你这样做了,我猜你会得到 Cookie.setHttpOnly()
.
出于兴趣,你为什么要使用 weblogic?有许多免费/开源的 servlet 容器比 weblogic 好得多。 Weblogic 不符合与其余 servlet 容器相同的标准。