Re: Issue in Struts 7.0.0 with <s:form> tag
Wolfgang Knauf <[email protected]> Thu, 17 Apr 2025 23:25:53 +0200
| Newsgroups | gmane.comp.jakarta.struts.user |
|---|---|
| Message-ID | <[email protected]> |
Hi, the error "java.lang.NullPointerException: Cannot invoke "org.apache.struts2.ActionInvocation.getProxy()" because "invocation" is null" sounds like a problem that I ran into: https://issues.apache.org/jira/browse/WW-5475 Do you by any chance call JSP pages directly, instead of invoking an ".action" url? Best regards Wolfgang Am 17.04.25 um 20:46 schrieb shankar sawate: > I have also tried using Tomcat 11, but I’m still facing the same issue. > Could you please provide a sample code migrated to Jakarta? > > On Thu, 17 Apr, 2025, 6:25 pm M Huzaifah, <[email protected]> wrote: > >> Hii Shakar, >> >> Could you please try to use tomcat 11. >> >> I faced issue about file upload using tomcat 11. >> >> Regards >> >> On Thu, Apr 17, 2025, 2:06 PM shankar sawate <[email protected]> >> wrote: >> >>> Hi Team, >>> >>> If you have any sample code related to Jakarta migration, please share >> it >>> with me — it would be really helpful. >>> >>> On Thu, Apr 17, 2025 at 12:30 PM shankar sawate < >>> [email protected]> >>> wrote: >>> >>>> And I face this issue after deploying. >>>> >>>> 17-Apr-2025 12:28:09.568 SEVERE [http-nio-8083-exec-1] >>>> org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() >>> for >>>> servlet [jsp] in context with path [/jakartaDemo_war_exploded] threw >>>> exception [java.lang.NullPointerException: Cannot invoke >>>> "org.apache.struts2.ActionInvocation.getProxy()" because "invocation" >> is >>>> null] with root cause >>>> java.lang.NullPointerException: Cannot invoke >>>> "org.apache.struts2.ActionInvocation.getProxy()" because "invocation" >> is >>>> null >>>> at >>> org.apache.struts2.components.Component.getNamespace(Component.java:448) >>>> at >>>> >>> >> org.apache.struts2.components.Component.determineNamespace(Component.java:433) >>>> at >>>> >>> >> org.apache.struts2.components.ServletUrlRenderer.renderFormUrl(ServletUrlRenderer.java:141) >>>> at >>>> >> org.apache.struts2.components.Form.populateComponentHtmlId(Form.java:232) >>>> at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:797) >>>> at org.apache.struts2.components.UIBean.end(UIBean.java:551) >>>> at >>>> >>> >> org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:36) >>>> at >>> org.apache.jsp.index_jsp._jspx_meth_s_005fform_005f0(index_jsp.java:192) >>>> at org.apache.jsp.index_jsp._jspService(index_jsp.java:141) >>>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) >>>> at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) >>>> at >>>> >>> >> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) >>>> at >>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) >>>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) >>>> at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:206) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) >>>> at >> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) >>>> at >>>> >>> >> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.handleRequest(StrutsPrepareAndExecuteFilter.java:151) >>>> at >>>> >>> >> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.tryHandleRequest(StrutsPrepareAndExecuteFilter.java:137) >>>> at >>>> >>> >> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:125) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) >>>> at >>>> >>> >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) >>>> at >>>> >>> >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) >>>> at >>>> >>> >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) >>>> at >>>> >>> >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) >>>> at >>>> >>> >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) >>>> at >>>> >>> >> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673) >>>> at >>>> >>> >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) >>>> at >>>> >>> >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) >>>> at >>>> >>> >> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) >>>> at >>>> >>> >> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) >>>> at >>>> >>> >> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) >>>> at >>>> org.apache.tomcat.util.net >>> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736) >>>> at >>>> org.apache.tomcat.util.net >>> .SocketProcessorBase.run(SocketProcessorBase.java:52) >>>> at >>>> >>> >> org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) >>>> at >>>> >>> >> org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) >>>> at >>>> >>> >> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) >>>> at java.base/java.lang.Thread.run(Thread.java:1583) >>>> 17-Apr-2025 12:28:09.854 SEVERE [http-nio-8083-exec-4] >>>> org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() >>> for >>>> servlet [jsp] in context with path [/jakartaDemo_war_exploded] threw >>>> exception [java.lang.NullPointerException: Cannot invoke >>>> "org.apache.struts2.ActionInvocation.getProxy()" because "invocation" >> is >>>> null] with root cause >>>> java.lang.NullPointerException: Cannot invoke >>>> "org.apache.struts2.ActionInvocation.getProxy()" because "invocation" >> is >>>> null >>>> at >>> org.apache.struts2.components.Component.getNamespace(Component.java:448) >>>> at >>>> >>> >> org.apache.struts2.components.Component.determineNamespace(Component.java:433) >>>> at >>>> >>> >> org.apache.struts2.components.ServletUrlRenderer.renderFormUrl(ServletUrlRenderer.java:141) >>>> at >>>> >> org.apache.struts2.components.Form.populateComponentHtmlId(Form.java:232) >>>> at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:797) >>>> at org.apache.struts2.components.UIBean.end(UIBean.java:551) >>>> at >>>> >>> >> org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:36) >>>> at >>> org.apache.jsp.index_jsp._jspx_meth_s_005fform_005f0(index_jsp.java:192) >>>> at org.apache.jsp.index_jsp._jspService(index_jsp.java:141) >>>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) >>>> at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) >>>> at >>>> >>> >> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) >>>> at >>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380) >>>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328) >>>> at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:206) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) >>>> at >> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) >>>> at >>>> >>> >> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.handleRequest(StrutsPrepareAndExecuteFilter.java:151) >>>> at >>>> >>> >> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.tryHandleRequest(StrutsPrepareAndExecuteFilter.java:137) >>>> at >>>> >>> >> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:125) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175) >>>> at >>>> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) >>>> at >>>> >>> >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) >>>> at >>>> >>> >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) >>>> at >>>> >>> >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) >>>> at >>>> >>> >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) >>>> at >>>> >>> >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) >>>> at >>>> >>> >> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673) >>>> at >>>> >>> >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) >>>> at >>>> >>> >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) >>>> at >>>> >>> >> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) >>>> at >>>> >>> >> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) >>>> at >>>> >>> >> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) >>>> at >>>> org.apache.tomcat.util.net >>> .NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736) >>>> at >>>> org.apache.tomcat.util.net >>> .SocketProcessorBase.run(SocketProcessorBase.java:52) >>>> at >>>> >>> >> org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) >>>> at >>>> >>> >> org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) >>>> at >>>> >>> >> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) >>>> at java.base/java.lang.Thread.run(Thread.java:1583) >>>> >>>> On Thu, Apr 17, 2025 at 12:04 PM shankar sawate < >>>> [email protected]> wrote: >>>> >>>>> Thank you for your response. >>>>> >>>>> I'm using NetBeans 17 as the IDE, with Java 21, and running the >>>>> application on Tomcat 10.0.20. >>>>> The issue occurs when I try to run the web application from within the >>>>> IDE. >>>>> >>>>> NetBeans shows the following error when the issue occurs: >>>>> >>>>> The s:form tag declares that it accepts dynamic attributes but does >> not >>>>> implement the required interface >>>>> >>>>> <%@page contentType="text/html" pageEncoding="UTF-8"%> >>>>> <%@ taglib prefix="s" uri="/struts-tags" %> >>>>> <!DOCTYPE html> >>>>> <html> >>>>> <head> >>>>> <meta http-equiv="Content-Type" content="text/html; >>>>> charset=UTF-8"> >>>>> <title>JSP Page</title> >>>>> </head> >>>>> <body> >>>>> <h1>Hello World!</h1> >>>>> <s:form> <!-- The s:form tag declares that it accepts >>>>> dynamic attributes but does not implement the required interface --> >>>>> <s:textfield name="name" value="Enter U name"/> >>>>> <s:submit name="submit" value="Add" >>> action="index"></s:submit> >>>>> </s:form> >>>>> </body> >>>>> </html> >>>>> >>>>> On Thu, Apr 17, 2025 at 10:59 AM Lukasz Lenart < >> [email protected] >>>> >>>>> wrote: >>>>> >>>>>> wt., 15 kwi 2025 o 09:57 shankar sawate <[email protected]> >>>>>> napisał(a): >>>>>>> While migrating to Struts 7.0.0, I'm encountering an issue when >> using >>>>>> the >>>>>>> <s:form> tag. Even though the tag is present like this >>>>>>> >>>>>>> jsp >>>>>>> <%--<s:form></s:form>--%> >>>>>>> I’m getting the following warning or error: >>>>>>> >>>>>>> The s:form tag declares that it accepts dynamic attributes but does >>> not >>>>>>> implement the required interface >>>>>> >>>>>> It would be good to provide more details, when does it happen? What >>>>>> Java version do you use? Is this in an IDE or when running a webapp >> in >>>>>> a container? >>>>>> >>>>>> There are a bunch of examples which are working just fine, so I >> assume >>>>>> it's something wrong with your setup. >>>>>> https://github.com/apache/struts-examples/ >>>>>> >>>>>> >>>>>> Cheers >>>>>> Łukasz >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: [email protected] >>>>>> For additional commands, e-mail: [email protected] >>>>>> >>>>>> >>> >> >