You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Heidt, Larry" <La...@dematic.com.INVALID> on 2022/07/26 19:34:12 UTC
ActionServlet for Java 11
We have been given responsibility for several Java 6 webservices using Tomcat 6, in production at a customer site, which the customer has contracted us to upgrade to Java 11
This software currently includes a custom XxxxxxWebActionServlet class, which extends from an old version of org.apache.struts.action.ActionServlet
This old version of struts ActionServlet currently used in production, and our current production XxxxxxWebActionServlet, both import javax.servlet.* classes
For Java 11, we have upgraded our XxxxxxWebActionServlet to import jakarta.servlet.* classes
Our upgrade results in the run-time ClassCastException shown below (from Tomcat 10's localhost.yyyy-mm-dd.log)
Our guess is that this ClassCastException occurs because our upgraded XxxxxxWebActionServlet, which now imports jakarta.servlet.*, continues to extend from the same older version of struts ActionServlet which imports javax.servlet.* classes
After much web searching, we can't seem to find a version of org.apache.struts.action.ActionServlet which imports jakarta.servlet.*
The last version of org.apache.struts.action.ActionServlet that we can find (in https://archive.apache.org/dist/struts/1.3.10) imports javax.servlet.*
ActionFormValidationInterceptor.java in struts-2.3.20.1 imports (but does not seem to use) org.apache.struts.action.ActionServlet, but interestingly ActionServlet.java itself does not seem to be present within struts-2.3.20.1/src
#1) At a low level, would a version of org.apache.struts.action.ActionServlet which imports jakarta.servlet.* exist somewhere else ?
#2) At a higher level, is anyone aware of someone successfully upgrading from Struts 1 to Jakarta EE ?
#3) If the answers to both #1 and #2 are "no", we'd be very appreciative of any suggestions for how to circumvent this ClassCastException
Thanks in advance very much for any assistance
22-Jun-2022 11:29:26.084 SEVERE [main] org.apache.catalina.core.StandardContext.loadOnStartup Servlet [action] in web application [/hkware] threw load() exception
java.lang.ClassCastException: class com.irista.ui.web.jspframework.IristaWebActionServlet cannot be cast to class jakarta.servlet.Servlet (com.irista.ui.web.jspframework.IristaWebActionServlet is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @3ce3b176; jakarta.servlet.Servlet is in unnamed module of loader java.net.URLClassLoader @6ddf90b0)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1071)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1011)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4906)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5213)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:747)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1027)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:2001)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:828)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:478)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1708)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:320)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:886)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Re: ActionServlet for Java 11
Posted by Dave Newton <da...@gmail.com>.
On Tue, Jul 26, 2022 at 15:34 Heidt, Larry <La...@dematic.com.invalid>
wrote:
> #1) At a low level, would a version of
> org.apache.struts.action.ActionServlet which imports jakarta.servlet.*
> exist somewhere else ?
Unlikely; the last S1 release was ~a decade before Java 11 was GA, and S1
was EOLed ~5 yrs before Java 11.
d.
--
em: davelnewton@gmail.com
mo: 908-380-8699
gh: davelnewton <https://github.com/davelnewton>
so: Dave Newton <http://stackoverflow.com/users/438992/dave-newton>
bl: Maker's End Blog <https://blog.makersend.com>