Struts 2
  1. Struts 2
  2. WW-2382 AnnotationValidationInterceptor Exception
  3. WW-2633

Exception while registering Interceptor class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor

    Details

    • Type: Sub-task Sub-task
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.1.2
    • Fix Version/s: 2.1.3
    • Component/s: Core Interceptors
    • Labels:
      None
    • Environment:

      Websphere 6.1.0.13 With EJB 3 feature pack

      Description

      My application runs when I use struts 2.0.11 [ a simple with app with a few pages], however; when I upgrade to struts 2.1.2, the app crashes and none of the pages load. Below is the stack trace

      [5/6/08 16:42:19:870 EDT] 00000028 XmlConfigurat I com.opensymphony.xwork2.util.logging.commons.CommonsLogger info Parsing configuration file [struts-default.xml]
      [5/6/08 16:42:19:880 EDT] 00000028 XmlConfigurat I com.opensymphony.xwork2.util.logging.commons.CommonsLogger info Parsing configuration file [struts-plugin.xml]
      [5/6/08 16:42:19:920 EDT] 00000028 XmlConfigurat I com.opensymphony.xwork2.util.logging.commons.CommonsLogger info Parsing configuration file [struts.xml]
      [5/6/08 16:42:20:040 EDT] 00000028 InterceptorBu W com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn Unable to load config class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor at interceptor - wsjar:file:/D:/projects/ccol/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/ccol/WEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:143:127 probably due to a missing jar, which might be fine if you never plan to use the validation interceptor
      [5/6/08 16:42:20:040 EDT] 00000028 InterceptorBu E com.opensymphony.xwork2.util.logging.commons.CommonsLogger error Actual exception
      Caught Exception while registering Interceptor class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor - interceptor - wsjar:file:/D:/projects/ccol/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/ccol/WEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:143:127
      at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:77)
      at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:53)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1081)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:781)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:794)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:817)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:446)
      at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:270)
      at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:110)
      at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:179)
      at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
      at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
      at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424)
      at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:213)
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.init(FilterInstanceWrapper.java:142)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager._loadFilter(WebAppFilterManager.java:468)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.loadFilter(WebAppFilterManager.java:382)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterInstanceWrapper(WebAppFilterManager.java:241)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterChain(WebAppFilterManager.java:299)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:728)
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:676)
      at com.ibm.ws.webcontainer.servlet.FileServletWrapper.handleRequest(FileServletWrapper.java:346)
      at com.ibm.ws.wswebcontainer.servlet.StaticFileServletWrapper.handleRequest(StaticFileServletWrapper.java:93)
      at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:702)
      at com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:113)
      at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3276)
      at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267)
      at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
      at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1455)
      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:113)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383)
      at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
      at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1818)
      at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
      at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
      at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
      at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
      at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
      at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
      at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469)
      Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:290)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:470)
      at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:508)
      at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:507)
      at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:558)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:506)
      at com.opensymphony.xwork2.ObjectFactory.injectInternalBeans(ObjectFactory.java:125)
      at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
      at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:137)
      at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:52)
      ... 41 more
      Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:137)
      at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
      at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:447)
      at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:462)
      at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
      at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
      ... 50 more
      Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:480)
      at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:517)
      at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:565)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:515)
      at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
      at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135)
      ... 55 more
      Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:290)
      at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:416)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:477)
      ... 60 more
      Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:137)
      at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
      at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:447)
      at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:462)
      at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
      at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
      ... 62 more
      Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:480)
      at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:517)
      at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:565)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:515)
      at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
      at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135)
      ... 67 more
      Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
      at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:425)
      at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:477)
      ... 72 more
      Caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:67)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:522)
      at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:404)
      ... 73 more
      Caused by: java.lang.IllegalArgumentException: URI scheme is not "file"
      at java.io.File.<init>(File.java:364)
      at com.opensymphony.xwork2.validator.DefaultValidatorFactory.parseValidators(DefaultValidatorFactory.java:101)
      at com.opensymphony.xwork2.validator.DefaultValidatorFactory.<init>(DefaultValidatorFactory.java:43)
      ... 78 more

        Issue Links

          Activity

          Hide
          Bakann added a comment - - edited

          I am facing the same problem with the OpenPortal Portlet Container 2.0 (which is working with GlassFish v2).
          I created a project from the struts2-archetype-portlet and I tried with versions 2.1.1-SNAPSHOT and 2.1.2 of struts2-portlet-plugin.
          When I add a form tag <s:form...> , I get this stack trace :

          deployed with moduleid = struts2-archetype-portlet-1.0
          PSPL_PAECSPPAI0015 : Loading DD for the portlet application : struts2-archetype-portlet-1.0
          PSPL_PCCCSPPCCD0023 : Validate sun-portlet.xml: false
          Parsing configuration file [struts-default.xml]
          Parsing configuration file [struts-plugin.xml]
          Parsing configuration file [struts.xml]
          Unable to load config class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor at interceptor - jar:file:/D:/Sun/AppServer/domains/domain1/applications/j2ee-modules/struts2-archetype-portlet-1.0/WEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:143:127 probably due to a missing jar, which might be fine if you never plan to use the validation interceptor
          Actual exception
          Caught Exception while registering Interceptor class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor - interceptor - jar:file:/D:/Sun/AppServer/domains/domain1/applications/j2ee-modules/struts2-archetype-portlet-1.0/WEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:143:127
          at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:77)
          at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:53)
          at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1081)
          at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:781)
          at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:794)
          at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:817)
          at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:446)
          at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:270)
          at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:110)
          at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:179)
          at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
          at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
          at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424)
          at org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.init(Jsr168Dispatcher.java:199)
          at com.sun.portal.portletcontainer.appengine.impl.LifecycleManagerImpl.createPortlets(LifecycleManagerImpl.java:337)
          at com.sun.portal.portletcontainer.appengine.impl.LifecycleManagerImpl.<init>(LifecycleManagerImpl.java:120)
          at com.sun.portal.portletcontainer.appengine.PortletAppEngineServlet.init(PortletAppEngineServlet.java:139)
          at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1178)
          at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1007)
          at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4808)
          at org.apache.catalina.core.StandardContext.start(StandardContext.java:5196)
          at com.sun.enterprise.web.WebModule.start(WebModule.java:326)
          at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:973)
          at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:957)
          at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:688)
          at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1584)
          at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1222)
          at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:182)
          at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:278)
          at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:974)
          at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:961)
          at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:464)
          at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:176)
          at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
          at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:226)
          at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)
          at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)
          at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
          at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
          at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:591)
          at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:635)
          at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:744)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:375)
          at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:358)
          at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:464)
          at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
          at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
          at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
          at $Proxy1.invoke(Unknown Source)
          at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
          at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
          at com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
          at com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
          at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
          at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
          at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
          at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
          at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
          at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
          at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
          at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
          at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
          at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
          at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
          at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
          at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
          at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
          at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
          at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
          at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
          at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
          at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
          at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
          at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
          at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
          at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
          at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
          Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
          at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:290)
          at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:470)
          at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:508)
          at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:507)
          at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:558)
          at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:506)
          at com.opensymphony.xwork2.ObjectFactory.injectInternalBeans(ObjectFactory.java:125)
          at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
          at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:137)
          at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:52)
          ... 89 more
          Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
          at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:137)
          at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
          at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:447)
          at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:462)
          at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
          at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
          ... 98 more
          Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
          at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:480)
          at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:517)
          at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:565)
          at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:515)
          at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
          at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135)
          ... 103 more
          Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
          at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:290)
          at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:416)
          at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:477)
          ... 108 more
          Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
          at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:137)
          at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49)
          at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:447)
          at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:462)
          at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48)
          at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288)
          ... 110 more
          Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
          at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:480)
          at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:517)
          at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:565)
          at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:515)
          at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32)
          at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135)
          ... 115 more
          Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
          at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:425)
          at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:477)
          ... 120 more
          Caused by: java.lang.reflect.InvocationTargetException
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
          at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:404)
          ... 121 more
          Caused by: java.lang.IllegalArgumentException: URI is not hierarchical
          at java.io.File.<init>(File.java:363)
          at com.opensymphony.xwork2.validator.DefaultValidatorFactory.parseValidators(DefaultValidatorFactory.java:101)
          at com.opensymphony.xwork2.validator.DefaultValidatorFactory.<init>(DefaultValidatorFactory.java:43)
          ... 126 more

          Show
          Bakann added a comment - - edited I am facing the same problem with the OpenPortal Portlet Container 2.0 (which is working with GlassFish v2). I created a project from the struts2-archetype-portlet and I tried with versions 2.1.1-SNAPSHOT and 2.1.2 of struts2-portlet-plugin. When I add a form tag <s:form...> , I get this stack trace : deployed with moduleid = struts2-archetype-portlet-1.0 PSPL_PAECSPPAI0015 : Loading DD for the portlet application : struts2-archetype-portlet-1.0 PSPL_PCCCSPPCCD0023 : Validate sun-portlet.xml: false Parsing configuration file [struts-default.xml] Parsing configuration file [struts-plugin.xml] Parsing configuration file [struts.xml] Unable to load config class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor at interceptor - jar: file:/D:/Sun/AppServer/domains/domain1/applications/j2ee-modules/struts2-archetype-portlet-1.0/WEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:143:127 probably due to a missing jar, which might be fine if you never plan to use the validation interceptor Actual exception Caught Exception while registering Interceptor class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor - interceptor - jar: file:/D:/Sun/AppServer/domains/domain1/applications/j2ee-modules/struts2-archetype-portlet-1.0/WEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:143:127 at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:77) at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:53) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1081) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:781) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:794) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:817) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:446) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:270) at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:110) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:179) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424) at org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher.init(Jsr168Dispatcher.java:199) at com.sun.portal.portletcontainer.appengine.impl.LifecycleManagerImpl.createPortlets(LifecycleManagerImpl.java:337) at com.sun.portal.portletcontainer.appengine.impl.LifecycleManagerImpl.<init>(LifecycleManagerImpl.java:120) at com.sun.portal.portletcontainer.appengine.PortletAppEngineServlet.init(PortletAppEngineServlet.java:139) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1178) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1007) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4808) at org.apache.catalina.core.StandardContext.start(StandardContext.java:5196) at com.sun.enterprise.web.WebModule.start(WebModule.java:326) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:973) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:957) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:688) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1584) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1222) at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:182) at com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:278) at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:974) at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:961) at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:464) at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:176) at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308) at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:226) at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298) at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132) at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108) at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919) at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:591) at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:635) at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:744) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:375) at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:358) at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:464) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90) at $Proxy1.invoke(Unknown Source) at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304) at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174) at com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69) at com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155) at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122) at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193) at javax.servlet.http.HttpServlet.service(HttpServlet.java:738) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116) Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:290) at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:470) at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:508) at com.opensymphony.xwork2.inject.ContainerImpl$6.call(ContainerImpl.java:507) at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:558) at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:506) at com.opensymphony.xwork2.ObjectFactory.injectInternalBeans(ObjectFactory.java:125) at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150) at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:137) at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:52) ... 89 more Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:137) at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49) at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:447) at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:462) at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48) at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288) ... 98 more Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:480) at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:517) at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:565) at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:515) at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32) at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135) ... 103 more Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:290) at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:416) at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:477) ... 108 more Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:137) at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:49) at com.opensymphony.xwork2.inject.ContainerImpl$ParameterInjector.inject(ContainerImpl.java:447) at com.opensymphony.xwork2.inject.ContainerImpl.getParameters(ContainerImpl.java:462) at com.opensymphony.xwork2.inject.ContainerImpl.access$000(ContainerImpl.java:48) at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:288) ... 110 more Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:480) at com.opensymphony.xwork2.inject.ContainerImpl$7.call(ContainerImpl.java:517) at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:565) at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:515) at com.opensymphony.xwork2.config.impl.LocatableFactory.create(LocatableFactory.java:32) at com.opensymphony.xwork2.inject.ContainerBuilder$4.create(ContainerBuilder.java:135) ... 115 more Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:425) at com.opensymphony.xwork2.inject.ContainerImpl.inject(ContainerImpl.java:477) ... 120 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:404) ... 121 more Caused by: java.lang.IllegalArgumentException: URI is not hierarchical at java.io.File.<init>(File.java:363) at com.opensymphony.xwork2.validator.DefaultValidatorFactory.parseValidators(DefaultValidatorFactory.java:101) at com.opensymphony.xwork2.validator.DefaultValidatorFactory.<init>(DefaultValidatorFactory.java:43) ... 126 more
          Hide
          Edwin Quita added a comment -

          thanks for resolving this issue guys... kudos to all the hard working developers!
          our team were on the deployment stage last week and we came accross this issue and
          i just want to say on behalf of the other struts2 users that we appreciate all your effort =)

          keep up the good work!

          Show
          Edwin Quita added a comment - thanks for resolving this issue guys... kudos to all the hard working developers! our team were on the deployment stage last week and we came accross this issue and i just want to say on behalf of the other struts2 users that we appreciate all your effort =) keep up the good work!
          Hide
          Don Brown added a comment -

          Seems the problem as been fixed in xwork

          Show
          Don Brown added a comment - Seems the problem as been fixed in xwork
          Hide
          Michael Watson added a comment -

          I've managed to fix the offending code. Check out issue WW-2653 for the solution.

          How quickly can we get this in to Struts2????

          Show
          Michael Watson added a comment - I've managed to fix the offending code. Check out issue WW-2653 for the solution. How quickly can we get this in to Struts2????
          Hide
          Michael Watson added a comment -

          Problem seems to stem from com.opensymphony.xwork2.inject.ContainerImpl line #288.

          When it attempts to invoke AnnotationActionValidatorManager.setValidatorFactory (and others).

          Show
          Michael Watson added a comment - Problem seems to stem from com.opensymphony.xwork2.inject.ContainerImpl line #288. When it attempts to invoke AnnotationActionValidatorManager.setValidatorFactory (and others).
          Hide
          Michael Watson added a comment - - edited

          I can confirm everything Jay has commented on. I see the exact same behaviour trying to run the rest showcase on Websphere 6.1.0.13. I downloaded the binaries for the rest showcase...

          This looks like it should be a simple fix - is someone investigating it?

          Show
          Michael Watson added a comment - - edited I can confirm everything Jay has commented on. I see the exact same behaviour trying to run the rest showcase on Websphere 6.1.0.13. I downloaded the binaries for the rest showcase... This looks like it should be a simple fix - is someone investigating it?
          Hide
          Rasin Rdj added a comment -

          I've got the same error when deployed on JBoss 5.0.0 Beta4 for both struts 2.0.11 and 2.1.2 as well, difference is that 2.1.2 errors out at application startup time whereas 2.0.11 gives error when the action is accessed which requires validator. The application works well when deployed to JBoss 4.2.1 though. So this is something related to how the web server creates the URI, but I think something can be done at struts level to avoid it.

          Regards,
          Rasin

          Show
          Rasin Rdj added a comment - I've got the same error when deployed on JBoss 5.0.0 Beta4 for both struts 2.0.11 and 2.1.2 as well, difference is that 2.1.2 errors out at application startup time whereas 2.0.11 gives error when the action is accessed which requires validator. The application works well when deployed to JBoss 4.2.1 though. So this is something related to how the web server creates the URI, but I think something can be done at struts level to avoid it. Regards, Rasin
          Hide
          Jay added a comment -

          I have an update for this issue so that Struts 2 tean can fix this problem:-

          Root cause of this error is indicated by the following exception, Caused by: java.lang.IllegalArgumentException: URI scheme is not "file"at java.io.File.<init>(File.java:364)at

          com.opensymphony.xwork2.validator.DefaultValidatorFactory.parseValidators(DefaultValidatorFactory.java:101)at com.opensymphony.xwork2.validator.DefaultValidatorFactory.<init>(DefaultValidatorFactory.java:43)... 190 more As can be seen in the log file you sent.

          Following is the code snippet in com.opensymphony.xwork2.validator.DefaultValidatorFactory.parseValidators which causes this exception, (I am using the latest from SVN)

          private void parseValidators() {if (LOG.isDebugEnabled())

          {LOG.debug("Loading validator definitions.");}

          List<File> files = new ArrayList<File>();try {// Get custom validator configurations via the classpathIterator<URL> urls = ClassLoaderUtil.getResources("", DefaultValidatorFactory.class, false);while (urls.hasNext()) {URL u = urls.next();File f = new File(new URI(u.toExternalForm().replaceAll(" ", "%20"))); FilenameFilter filter = new FilenameFilter() {public boolean accept(File file, String fileName) {return fileName.contains("-validators.xml");}};files.addAll(Arrays.asList(f.listFiles(filter)));}} catch (URISyntaxException e)

          {e.printStackTrace();// swallow}

          catch (IOException e)

          {throw new ConfigurationException("Unable to parse validators", e);}

          The exception is caused for the particular uri of the form bundleresource://21/ .
          Let me know if you guys need any further information on this issue

          -Jay.

          Show
          Jay added a comment - I have an update for this issue so that Struts 2 tean can fix this problem:- Root cause of this error is indicated by the following exception, Caused by: java.lang.IllegalArgumentException: URI scheme is not "file"at java.io.File.<init>(File.java:364)at com.opensymphony.xwork2.validator.DefaultValidatorFactory.parseValidators(DefaultValidatorFactory.java:101)at com.opensymphony.xwork2.validator.DefaultValidatorFactory.<init>(DefaultValidatorFactory.java:43)... 190 more As can be seen in the log file you sent. Following is the code snippet in com.opensymphony.xwork2.validator.DefaultValidatorFactory.parseValidators which causes this exception, (I am using the latest from SVN) private void parseValidators() {if (LOG.isDebugEnabled()) {LOG.debug("Loading validator definitions.");} List<File> files = new ArrayList<File>();try {// Get custom validator configurations via the classpathIterator<URL> urls = ClassLoaderUtil.getResources("", DefaultValidatorFactory.class, false);while (urls.hasNext()) {URL u = urls.next();File f = new File(new URI(u.toExternalForm().replaceAll(" ", "%20"))); FilenameFilter filter = new FilenameFilter() {public boolean accept(File file, String fileName) {return fileName.contains("-validators.xml");}};files.addAll(Arrays.asList(f.listFiles(filter)));}} catch (URISyntaxException e) {e.printStackTrace();// swallow} catch (IOException e) {throw new ConfigurationException("Unable to parse validators", e);} The exception is caused for the particular uri of the form bundleresource://21/ . Let me know if you guys need any further information on this issue -Jay.
          Hide
          S. Farshi added a comment -

          Jay, they APAR you are refering was included included in 6.1.0.7. So my WAS (6.1.0.13) includes that. The problem is that following url works for for 2.0.11 (in a newly opened browser)[I have installed blank.war for 2.0.11 and 2.1.2 under the context roots "struts2.0.11" and "struts2.1.2"

          https://localhost:9445/struts2.0.11/example/HelloWorld.action

          But I get "page not found error", when I do the following(in a newly opened browser):

          https://localhost:9445/struts2.1.2/example/HelloWorld.action

          What is even more interesting is if I enter https://localhost:9445/struts2.1.2/index.html , the url gets redirected to https://localhost:9445/struts2.1.2/example/HelloWorld.action (which works)!!!, now from within the same browser, I can enter any url that ends with .action with no problem. The problem arises when I enter ".action" in a newly opened browser.

          Another interesting thing is if I disable security, then entering .../struts2.1.2/example/HelloWorld.action in a newly opened browser works !!!

          Just to mention that all my sample apps run in a secure mode where users are authenticated by WAS container against LDAP server.Obviously something from 2.0.11 to 2.1.2 has changed. Because one version works and the other does not.

          Show
          S. Farshi added a comment - Jay, they APAR you are refering was included included in 6.1.0.7. So my WAS (6.1.0.13) includes that. The problem is that following url works for for 2.0.11 (in a newly opened browser)[I have installed blank.war for 2.0.11 and 2.1.2 under the context roots "struts2.0.11" and "struts2.1.2" https://localhost:9445/struts2.0.11/example/HelloWorld.action But I get "page not found error", when I do the following(in a newly opened browser): https://localhost:9445/struts2.1.2/example/HelloWorld.action What is even more interesting is if I enter https://localhost:9445/struts2.1.2/index.html , the url gets redirected to https://localhost:9445/struts2.1.2/example/HelloWorld.action (which works)!!!, now from within the same browser, I can enter any url that ends with .action with no problem. The problem arises when I enter " .action" in a newly opened browser. Another interesting thing is if I disable security, then entering .../struts2.1.2/example/HelloWorld.action in a newly opened browser works !!! Just to mention that all my sample apps run in a secure mode where users are authenticated by WAS container against LDAP server.Obviously something from 2.0.11 to 2.1.2 has changed. Because one version works and the other does not.
          Hide
          Jay added a comment - - edited

          "Exception while registering Interceptor class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor" issue
          still remains and is reproducible with the Struts2-rest-showcase example application.

          However, the second issue of not able to map the rest controller classes in Websphere6.1.0.15 has an update.
          I can now confirm that the controllers are getting called and executing the right method ( index or show or editNew etc...) with the IBM patch metioned below:- (http://www-1.ibm.com/support/docview.wss?uid=swg24014758) .

          However the resultant JSP page that has Struts 2 tags in them does not work and I get a ava.lang.reflect.InvocationTargetException at (com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java::118).
          I have tried using both Struts 2.1.1-SNAPSHOT and Struts 2.1.3-SNAPSHOT.
          For more details, please refer to the following new Jira issue i created for this 2nd issue at https://issues.apache.org/struts/browse/WW-2653.

          Show
          Jay added a comment - - edited "Exception while registering Interceptor class org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor" issue still remains and is reproducible with the Struts2-rest-showcase example application. However, the second issue of not able to map the rest controller classes in Websphere6.1.0.15 has an update. I can now confirm that the controllers are getting called and executing the right method ( index or show or editNew etc...) with the IBM patch metioned below:- ( http://www-1.ibm.com/support/docview.wss?uid=swg24014758 ) . However the resultant JSP page that has Struts 2 tags in them does not work and I get a ava.lang.reflect.InvocationTargetException at (com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java::118). I have tried using both Struts 2.1.1-SNAPSHOT and Struts 2.1.3-SNAPSHOT. For more details, please refer to the following new Jira issue i created for this 2nd issue at https://issues.apache.org/struts/browse/WW-2653 .
          Hide
          Dave Newton added a comment -

          Re-opening, w/ the additional info there may be enough to work with and I may be moving a 2.0.11 app to 2.1 on WS6.1 this week.

          Show
          Dave Newton added a comment - Re-opening, w/ the additional info there may be enough to work with and I may be moving a 2.0.11 app to 2.1 on WS6.1 this week.
          Hide
          Jay added a comment - - edited

          We use Maven 2 for building this Struts 2.1.1-SNAPSHOT application and produced the WAR file. It works fine with Jetty server. But the same WAR does not work when I deployed in Websphere 6.1 and I get the exact same error(100 % match) and exception stack trace that has been listed by the bug creator (Siamack J. Farshi )
          I removed the reference to the AnnotationValidationInterceptor from Struts-default.xml and from Struts-plugin.xml inside Struts-REST-plugin.jar and that works as far as the Struts 2 dispatcher and Sitemesh is concerned. But the REST plugin and code-behind plugin that goes with that still does not work in Websphere 6.1 and does not map to the controller action classes. Also there is no exceptions in any of the log files in this case!!! This exact same configuration works fine with Jetty server.

          I think, it's either a Websphere 6.1.0.15 issue or a Struts 2 interceptor and REST plugin config/mapping issue specific to Websphere 6.1 server.

          Show
          Jay added a comment - - edited We use Maven 2 for building this Struts 2.1.1-SNAPSHOT application and produced the WAR file. It works fine with Jetty server. But the same WAR does not work when I deployed in Websphere 6.1 and I get the exact same error(100 % match) and exception stack trace that has been listed by the bug creator (Siamack J. Farshi ) I removed the reference to the AnnotationValidationInterceptor from Struts-default.xml and from Struts-plugin.xml inside Struts-REST-plugin.jar and that works as far as the Struts 2 dispatcher and Sitemesh is concerned. But the REST plugin and code-behind plugin that goes with that still does not work in Websphere 6.1 and does not map to the controller action classes. Also there is no exceptions in any of the log files in this case!!! This exact same configuration works fine with Jetty server. I think, it's either a Websphere 6.1.0.15 issue or a Struts 2 interceptor and REST plugin config/mapping issue specific to Websphere 6.1 server.
          Hide
          Siamack J. Farshi added a comment -

          I have managed to deploy blank.war for struts 2.1.2 on the websphere V6.1.0.13. However; I see the same exceptions thrown all over, and I do not know why. Apart from that, I still have the issue mentioned in WW-2642 . With basic security enabled. I am not able to enter any action that ends with *.action. That is tosay, if I enter https://localhost:9445/struts2.1.2/example/HelloWorld.action , I get page not found error [ I do not even get prompted by http authentication dialog]. But if I enter https://localhost:9445/struts2.1.2/index.html, I get prompted for authentication and then url gets redirected to https://localhost:9445/struts2.1.2/example/HelloWorld.action [which works].

          On the same server, I have struts2.0.11.1 show-case app and struts2.0.11 blank.war and the sample app for struts 2 in action which uses 2.0.11 with all having basic security enabled and all work. that is to say, in a newly opened browser, I can enter

          https://localhost:9445/struts2.0.11/example/HelloWorld.action and it works.

          I am not sure whether the error above for 2.1.2 and the issue that I have opened as bug in WW-2642 are related or not. [the same problem with 2.1.1 as well, I tried that one as well]

          Show
          Siamack J. Farshi added a comment - I have managed to deploy blank.war for struts 2.1.2 on the websphere V6.1.0.13. However; I see the same exceptions thrown all over, and I do not know why. Apart from that, I still have the issue mentioned in WW-2642 . With basic security enabled. I am not able to enter any action that ends with *.action. That is tosay, if I enter https://localhost:9445/struts2.1.2/example/HelloWorld.action , I get page not found error [ I do not even get prompted by http authentication dialog]. But if I enter https://localhost:9445/struts2.1.2/index.html , I get prompted for authentication and then url gets redirected to https://localhost:9445/struts2.1.2/example/HelloWorld.action [which works] . On the same server, I have struts2.0.11.1 show-case app and struts2.0.11 blank.war and the sample app for struts 2 in action which uses 2.0.11 with all having basic security enabled and all work. that is to say, in a newly opened browser, I can enter https://localhost:9445/struts2.0.11/example/HelloWorld.action and it works. I am not sure whether the error above for 2.1.2 and the issue that I have opened as bug in WW-2642 are related or not. [the same problem with 2.1.1 as well, I tried that one as well]
          Hide
          James Holmes added a comment -

          I recommend you try deploying one of the Struts 2 sample applications to your server to see if it deploys and runs correctly. Struts 2.1.2+ requires commons-fileupload and subsequently commons-io I believe. I ran into a similar deployment issue until I added all of the proper .jar files.

          If you are unable to deploy the 2.1.2 sample apps and run them and believe there is an actual issue with the Struts 2.1.x code reopen this ticket. I don't believe there's an issue though. Just a deployment problem on your end.

          Show
          James Holmes added a comment - I recommend you try deploying one of the Struts 2 sample applications to your server to see if it deploys and runs correctly. Struts 2.1.2+ requires commons-fileupload and subsequently commons-io I believe. I ran into a similar deployment issue until I added all of the proper .jar files. If you are unable to deploy the 2.1.2 sample apps and run them and believe there is an actual issue with the Struts 2.1.x code reopen this ticket. I don't believe there's an issue though. Just a deployment problem on your end.
          Hide
          Jay added a comment -

          This is a real issue and MUST be fixed for Struts2 to work in Websphere 6.1 server.

          Show
          Jay added a comment - This is a real issue and MUST be fixed for Struts2 to work in Websphere 6.1 server.
          Hide
          Dave Newton added a comment -

          Please ask questions on the struts-user mailing list.

          http://struts.apache.org/mail.html

          When you ask your question there please provide more than just a stack trace, like your configuration files, any of your code relevant to the problem, etc.

          Thanks

          Show
          Dave Newton added a comment - Please ask questions on the struts-user mailing list. http://struts.apache.org/mail.html When you ask your question there please provide more than just a stack trace, like your configuration files, any of your code relevant to the problem, etc. Thanks
          Hide
          Siamack J. Farshi added a comment -

          To upgrade, I replaced the following jars:

          struts2-core-2.0.11.jar
          xwork-2.0.4.jar
          freemarker-2.3.8.jar
          ognl-2.6.11.jar

          with

          struts2-core-2.1.2.jar
          xwork-2.1.1.jar
          freemarker-2.3.12.jar
          ognl-2.6.11.jar

          And I left the other jar files unchanged, they are :

          commons-beanutils-1.7.0.jar
          commons-logging-api-1.1.jar
          struts2-tiles-plugin-2.0.11.1.jar
          tiles-api-2.0.5.jar
          tiles-jsp-2.0.5.jar
          tiles-core-2.0.5.jar
          commons-digester-1.8.jar

          Show
          Siamack J. Farshi added a comment - To upgrade, I replaced the following jars: struts2-core-2.0.11.jar xwork-2.0.4.jar freemarker-2.3.8.jar ognl-2.6.11.jar with struts2-core-2.1.2.jar xwork-2.1.1.jar freemarker-2.3.12.jar ognl-2.6.11.jar And I left the other jar files unchanged, they are : commons-beanutils-1.7.0.jar commons-logging-api-1.1.jar struts2-tiles-plugin-2.0.11.1.jar tiles-api-2.0.5.jar tiles-jsp-2.0.5.jar tiles-core-2.0.5.jar commons-digester-1.8.jar

            People

            • Assignee:
              Unassigned
              Reporter:
              Siamack J. Farshi
            • Votes:
              3 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development