使用Servlet 3.0与Weblogic 10.3

4

我正在开发基于表单的身份验证,并使用以下语句。在实现过程中,我意识到HttpServletRequest->login方法是通过Servlet 3.0实现的。(在stackoverflow用户的帮助下)

HttpServletRequest request = getHttpServletRequest();
request.login() 

我正在使用Weblogic作为应用服务器,我准备了一个war文件,没有编译错误,并且在Glassfish 3.1应用服务器上运行正常。但是由于Weblogic 10.3隐式支持2.5,它会覆盖Servlet 3.0.1.jar,因此会出现以下错误。

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.login(Ljava/lang/String;Ljava/lang/String;)V

我该如何在Weblogic 10.3上使用Servlet 3.0 API运行我的WAR文件?换句话说,我该如何防止Weblogic覆盖Servlet 3.0 API?


1
简单的回答是 - 你不能。Servlet API只是API,而不是实现。你必须迁移到一个更新的WebLogic版本...也许可以集成另一个容器,但我宁愿不尝试。 - home
1个回答

18

Weblogic 10.3.x是一个Servlet 2.5容器。您必须使用Weblogic 12c及以上版本。它提供对Servlet 3.0支持


谢谢。我暂时不想将Weblogic 10.3迁移到新版本。因此,我必须找出如何通过Servlet 2.5执行基于表单的身份验证。 - Ahmet Karakaya
@AhmetKarakaya,你找到解决问题的方法了吗? - Stunner
是的,我已经放弃了Weblogic,转而使用Springboot :) - Ahmet Karakaya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接