[ https://issues.apache.org/jira/browse/WW-4868?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16200009#comment-16200009 ]
Yasser Zamani commented on WW-4868: ----------------------------------- No, listener or filter does not matter. jsp should be result of your action in struts.xml and you should browse http://yourserver:yourport/thatAction instead of http://yourserver:yourport/thatJsp.jsp. > createInstance method signature change of TextProviderFactory from merged > xwork-core code inside struts2-core-2.5.13.jar which was present with > xwork-core jar > ---------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: WW-4868 > URL: https://issues.apache.org/jira/browse/WW-4868 > Project: Struts 2 > Issue Type: Bug > Components: Core > Affects Versions: 2.5.12, 2.5.13 > Reporter: Ananga Mohan Bera > Assignee: Lukasz Lenart > Fix For: 2.5.14 > > > xwork-core-2.3.32 had these createInstance methods. > {code:java} > public TextProvider createInstance(Class clazz, LocaleProvider provider) { > TextProvider instance = getTextProvider(clazz, provider); > if (instance instanceof ResourceBundleTextProvider) { > ((ResourceBundleTextProvider)instance).setClazz(clazz); > ((ResourceBundleTextProvider)instance).setLocaleProvider(provider); > } > return instance; > } > public TextProvider createInstance(ResourceBundle bundle, LocaleProvider > provider) { > TextProvider instance = getTextProvider(bundle, provider); > if (instance instanceof ResourceBundleTextProvider) { > ((ResourceBundleTextProvider)instance).setBundle(bundle); > ((ResourceBundleTextProvider)instance).setLocaleProvider(provider); > } > return instance; > } > {code} > struts2-core-2.5.13.jar has merged the xwork-core code and there only these > methods are available: > {code:java} > public abstract TextProvider createInstance(Class paramClass); > public abstract TextProvider createInstance(ResourceBundle > paramResourceBundle); > {code} > As We have called the createInstance method from many places of Our > Application, So migration to struts-2.5.13 is creating a problem. We are > having code like: > {code:java} > private final transient TextProvider textProvider = new > TextProviderFactory().createInstance(getClass(), this); > {code} > method signature should not be changed which has huge effect rather there > should be overloaded method with merged xwork-core code inside > struts2-core-2.5.13.jar. > We are getting such error: > {noformat} > 2017-10-06|16:53:23,965|ERROR||[ACTIVE] ExecuteThread: '0' for queue: > 'weblogic.kernel.Default > (self-tuning)'|com.tcs.bancs.filter.BancsServletFilter:210|:G:dl3xbKkVBfwQOly9zGyiU1g_MDVUFEoaUV5nTc3nKJP-btoWLMoK!183988368!1507288983829:0:0:0:0:0:0:0:1: > |Validation exception | > javax.servlet.ServletException: java.lang.InstantiationError: > com.opensymphony.xwork2.TextProviderFactory > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:387) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:483) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:372) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:243) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:587) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:481) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > org.springframework.security.web.firewall.RequestWrapper$FirewalledRequestAwareRequestDispatcher.include(RequestWrapper.java:136) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > com.tcs.bfsarch.security.action.AuthSuccessHandler.onAuthenticationSuccess(AuthSuccessHandler.java:211) > ~[coreweb.jar:?] > at > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.successfulAuthentication(AbstractAuthenticationProcessingFilter.java:331) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.successfulAuthentication(AbstractAuthenticationProcessingFilter.java:298) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:235) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > com.tcs.mastercraft.userlib.AccessVerifierFilter.doFilter(AccessVerifierFilter.java:78) > ~[coreweb.jar:?] > at > com.tcs.bancs.filter.BancsServletFilter.doFilter(BancsServletFilter.java:208) > [coreweb.jar:?] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > [weblogic.server.merged.jar:12.1.3.0.0] > at > com.tcs.bfsarch.filter.session.SessionSyncFilter.doFilter(SessionSyncFilter.java:38) > [coreweb.jar:?] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) > [com.oracle.css.weblogic.security.wls_7.1.0.0.jar:CSS 7.1 0.0] > at > weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255) > [weblogic.server.merged.jar:12.1.3.0.0] > at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) > [weblogic.server.merged.jar:12.1.3.0.0] > at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) > [weblogic.server.merged.jar:12.1.3.0.0] > Caused by: java.lang.InstantiationError: > com.opensymphony.xwork2.TextProviderFactory > at > com.tcs.bancs.repackaged.struts.taglib.TagUtils.<init>(TagUtils.java:357) > ~[mc.jar:?] > at > com.tcs.bancs.repackaged.struts.taglib.TagUtils.<clinit>(TagUtils.java:61) > ~[mc.jar:?] > at > com.tcs.bfsarch.tags.eh.bfsMessagesTag.doEndTag(bfsMessagesTag.java:195) > ~[coreweb.jar:?] > at > jsp_servlet._common.__loginapimessages._jsp__tag0(__loginapimessages.java:145) > ~[__loginapimessages.class:?] > at > jsp_servlet._common.__loginapimessages._jspService(__loginapimessages.java:96) > ~[__loginapimessages.class:?] > at weblogic.servlet.jsp.JspBase.service(JspBase.java:35) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346) > ~[weblogic.server.merged.jar:12.1.3.0.0] > ... 43 more > 2017-10-06|16:53:38,620|ERROR||[ACTIVE] ExecuteThread: '0' for queue: > 'weblogic.kernel.Default > (self-tuning)'|com.tcs.bancs.filter.BancsServletFilter:210|:G:dl3xbKkVBfwQOly9zGyiU1g_MDVUFEoaUV5nTc3nKJP-btoWLMoK!183988368!1507288983829:0:0:0:0:0:0:0:1: > |Validation exception | > javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not > initialize class com.tcs.bancs.repackaged.struts.taglib.TagUtils > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:387) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:483) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:372) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > com.tcs.bancs.filter.BancsServletFilter.enableGZIP(BancsServletFilter.java:414) > ~[coreweb.jar:?] > at > com.tcs.bancs.filter.BancsServletFilter.doFilter(BancsServletFilter.java:170) > ~[coreweb.jar:?] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:588) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:273) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > org.springframework.security.web.firewall.RequestWrapper$FirewalledRequestAwareRequestDispatcher.forward(RequestWrapper.java:132) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > com.tcs.bfsarch.security.action.AuthSuccessHandler.onAuthenticationSuccess(AuthSuccessHandler.java:502) > ~[coreweb.jar:?] > at > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.successfulAuthentication(AbstractAuthenticationProcessingFilter.java:331) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.successfulAuthentication(AbstractAuthenticationProcessingFilter.java:298) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:235) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) > ~[spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) > ~[spring-web-4.0.2.RELEASE.jar:4.0.2.RELEASE] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > com.tcs.mastercraft.userlib.AccessVerifierFilter.doFilter(AccessVerifierFilter.java:78) > ~[coreweb.jar:?] > at > com.tcs.bancs.filter.BancsServletFilter.doFilter(BancsServletFilter.java:208) > [coreweb.jar:?] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > [weblogic.server.merged.jar:12.1.3.0.0] > at > com.tcs.bfsarch.filter.session.SessionSyncFilter.doFilter(SessionSyncFilter.java:38) > [coreweb.jar:?] > at > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) > [com.oracle.css.weblogic.security.wls_7.1.0.0.jar:CSS 7.1 0.0] > at > weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572) > [weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255) > [weblogic.server.merged.jar:12.1.3.0.0] > at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) > [weblogic.server.merged.jar:12.1.3.0.0] > at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) > [weblogic.server.merged.jar:12.1.3.0.0] > Caused by: java.lang.NoClassDefFoundError: Could not initialize class > com.tcs.bancs.repackaged.struts.taglib.TagUtils > at > com.tcs.mastercraft.taglib.MCJSLoadingTag.doStartTag(MCJSLoadingTag.java:61) > ~[coreweb.jar:?] > at jsp_servlet._common.__mainframe._jsp__tag99(__mainframe.java:5928) > ~[__mainframe.class:?] > at jsp_servlet._common.__mainframe._jspService(__mainframe.java:3556) > ~[__mainframe.class:?] > at weblogic.servlet.jsp.JspBase.service(JspBase.java:35) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) > ~[weblogic.server.merged.jar:12.1.3.0.0] > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346) > ~[weblogic.server.merged.jar:12.1.3.0.0] > ... 47 more > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)