struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sebastian Götz (JIRA) <j...@apache.org>
Subject [jira] [Commented] (WW-4646) remove ASM 3 from struts2
Date Mon, 15 Aug 2016 09:52:20 GMT

    [ https://issues.apache.org/jira/browse/WW-4646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15420799#comment-15420799
] 

Sebastian Götz commented on WW-4646:
------------------------------------

To me it looks more like the content of the convention-plugin jar is not what it should be.
I defined the bean you as you suggested. But it failed with the exception below. Opening the
jar file shows me, that there actually is no Java8ClassFinderFactory class inside. Could someone
verify that the jar is correct?
{noformat}
ERROR Dispatcher Dispatcher initialization failed
 Unable to load configuration. - bean - file:/B:/deploy8/wtpwebapps/web-gui/WEB-INF/classes/struts.xml:40:151
	at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
	at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:897)
	at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:437)
	at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:478)
	at org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:75)
	at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:63)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4573)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5188)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: Unable to load bean: type:com.opensymphony.xwork2.util.finder.ClassFinderFactory
class:org.apache.struts2.convention.Java8ClassFinderFactory - bean - file:/B:/deploy8/wtpwebapps/web-gui/WEB-INF/classes/struts.xml:40:151
	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:265)
	at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:98)
	at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:163)
	at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
	... 17 more
Caused by: java.lang.ClassNotFoundException: org.apache.struts2.convention.Java8ClassFinderFactory
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1157)
	at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:176)
	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:238)
	... 20 more
{noformat}

> remove ASM 3 from struts2
> -------------------------
>
>                 Key: WW-4646
>                 URL: https://issues.apache.org/jira/browse/WW-4646
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Actions, Plugin - Convention
>    Affects Versions: 2.5
>            Reporter: adam brin
>            Assignee: Lukasz Lenart
>             Fix For: 2.5.3
>
>
> Pulling from the discussion on the struts2-users list:
> Struts2 maintains two different versions of ASM 5x for the Convention plugin and 3x for
the rest of struts.  A basic search of the codebase suggests that the only direct uses of
ASM are via the ClassFinder class in Xwork and used by the Convention plugin.  Based on this
[https://issues.apache.org/jira/browse/WW-4435] and [http://www.philvarner.com/2015/02/05/using-apache-cxf-2-7-struts2-2-3-and-asm-5-with-maven/],
I wonder if it might make sense to:
> 1. remove the direct dependency on ASM entirely for XWork and Struts2 in general
> 2. move the ClassFinder class and direct dependencies the convention plugin and make
them explicitly dependent on ASM 5x.
> 3. Like other apps like Spring, repackage/embed ASM into it's own package tree so it
can live with other versions of ASM.
> -----
> the core issue for us is that there are overlaps between ASM 5 and ASM 3, and become
explicit when launching our app with the maven-jetty-plugin. Classes with the same name in
both packages though they have different groupIds and thus cause exceptions in startup either
due to (a) Missing Classes like EmptyVisitor or (b) incompatible classes. It's our hope that
by removing this dual dependency, we can take advantage of Java8 features and also simplify
dependency management in our pom.
> thanks



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message