[
https://issues.apache.org/jira/browse/WW-3372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matthew Payne updated WW-3372:
------------------------------
Description:
When the convention plugin is enabled, wildcard mappings no longer work
The following should apply to serveral levels deep.
<package name="publicPages" extends="pmlDefault"
namespace="/pages/PML_Public">
<action name="**"
class="com.pennmutual.website.actions.BasePMLAppAction">
<result name="success"
type="freemarker">{1}.html</result>
</action>
</package>
was:
When the convention plugin is enabled, wildcard mappings no longer work
The following should apply to serveral levels deep.
<package name="publicPages" extends="pmlDefault"
namespace="/pages/PML_Public">
<action name="**"
class="com.pennmutual.website.actions.BasePMLAppAction">
<result name="success"
type="freemarker">{1}.html</result>
</action>
</package>
If I set <constant name="struts.convention.result.flatLayout" value="false" />
The convention plugin blows up on .svn folders (which should be ignored).
Caused by: Unable to find a result type for extension [svn/] in location
attribute [/sitemap/.svn/]. - [unknown location]
at
org.apache.struts2.convention.DefaultResultMapBuilder$ResultInfo.determineType(DefaultResultMapBuilder.java:497)
at
org.apache.struts2.convention.DefaultResultMapBuilder$ResultInfo.<init>(DefaultResultMapBuilder.java:460)
at
org.apache.struts2.convention.DefaultResultMapBuilder.makeResults(DefaultResultMapBuilder.java:355)
at
org.apache.struts2.convention.DefaultResultMapBuilder.createFromResources(DefaultResultMapBuilder.java:261)
at
org.apache.struts2.convention.DefaultResultMapBuilder.build(DefaultResultMapBuilder.java:191)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:800)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:572)
at
org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:318)
at
org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
at
com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
at
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 17 more
2010-01-14 14:32:40.732::WARN: Failed startup of context
org.mortbay.jetty.plugin.jetty6pluginwebappcont...@54777e{/pmlwebsite,C:\fast\java\workspaces\website\pmlwebsite\trunk\src\main\webapp}
Unable to load configuration. - [unknown location]
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:431)
at
org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.init(StrutsPrepareFilter.java:50)
at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:653)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1239)
at
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:466)
at
org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:124)
at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at
org.mortbay.jetty.plugin.AbstractJettyRunMojo.restartWebApp(AbstractJettyRunMojo.java:458)
at
org.mortbay.jetty.plugin.util.ConsoleScanner.restartWebApp(ConsoleScanner.java:95)
at
org.mortbay.jetty.plugin.util.ConsoleScanner.checkSystemInput(ConsoleScanner.java:58)
at
org.mortbay.jetty.plugin.util.ConsoleScanner.run(ConsoleScanner.java:28)
Caused by: Unable to load configuration. - [unknown location]
at
com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at
org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
...
Initial findings were below, however it think below may be caused by the files
never getting mapped to an action--->
In an application that locates freemarker resources correctly the introduction
of the convention plugins breaks sitemesh/freemarker from finding global macros
or includes that are on the classpath(or in classes)
macro libs are set as:
<property name="macroLibraries">
<props>
<prop key="l">/WEB-INF/macros/layout.ftl</prop>
<prop key="cn">/WEB-INF/macros/contentNode.ftl</prop>
<prop key="auth">/WEB-INF/macros/acl.ftl</prop>
<!-- from classpath in search jar -->
<prop key="pager">/macros/pager.ftl</prop>
<prop key="r">/macros/results.ftl</prop>
</props>
</property>
When the convention plugin is introduced page.ftl and results.ftl can no longer
be found. These are located in /WEB-INF/classes or inside a .jar file that is
in the classpath. It seems as if the convention plugin changes the
templateLoaderPaths configuration of freemarker itself, which in this case is
--->
<property name="templateLoaderPaths">
<list>
<value>/WEB-INF/freemarker</value>
<value>/</value>
<value>classpath:/</value>
</list>
</property>
^^ from above classpath:/ resources are no longer found.
Why does this plugin affect such things?
removed description that was a separate problem.
> Convention Plugin is incompatible with wildcard mappings
> --------------------------------------------------------
>
> Key: WW-3372
> URL: https://issues.apache.org/jira/browse/WW-3372
> Project: Struts 2
> Issue Type: Bug
> Components: Plugin - Convention
> Affects Versions: 2.1.8
> Reporter: Matthew Payne
>
> When the convention plugin is enabled, wildcard mappings no longer work
> The following should apply to serveral levels deep.
> <package name="publicPages" extends="pmlDefault"
> namespace="/pages/PML_Public">
> <action name="**"
> class="com.pennmutual.website.actions.BasePMLAppAction">
> <result name="success"
> type="freemarker">{1}.html</result>
> </action>
> </package>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.