Hi Scott, i use them side by side, normal action by conention and freaks in xml.
Best greetings, Paweł Wielgus. 2011/1/23 stanlick <stanl...@gmail.com>: > > Do you guys know if using the convention plugin is mutually exclusive of > having an action mapping xml file? IOW, is the convention plugin an all or > nothing proposition? I know it alters the request handling machinery but > cannot find anywhere in the docs if it is "expected" to play alongside > conventional hand coded mappings. > > Peace, > Scott > > > > Musachy Barroso wrote: >> >> Yes, try convention first and then get on REST. You need to include >> the config browser plugin, for that url to be available. I don't know >> much of REST myself, but with your config settings, Convention should >> be mapping >> >> http://localhost:8080/lotmap/subdivision >> >> to the mentioned class. Look at the logs in debug mode, Convention >> will say to what namespace and action name is mapped to every class. >> >> musachy >> >> On Fri, Mar 6, 2009 at 4:32 PM, wkbutler <kent.but...@gmail.com> wrote: >>> >>> Thanks Musachy, that page >>> (http://struts.apache.org/2.1.6/docs/convention-plugin.html) was very >>> useful >>> and now I think I understand the "locators" property much better. >>> >>> So here's my class: com.tousa.ws.rest.SubdivisionController >>> >>> and I think I told Convention to use suffix "Controller" via the >>> property: >>> >>> <constant name="struts.convention.action.suffix" value="Controller"/> >>> >>> so according my locators: >>> >>> <constant name="struts.convention.package.locators" value="rest"/> >>> >>> you are correct, the namespace should be[]. Unfortunately, that is what >>> those URLs already represented. It's a bit confusing because the app is >>> also >>> named "rest". Doh. I renamed the app to 'lotmap' to prove this to >>> myself, >>> and, well, I get the same errors, regardless of my URL permutations: >>> >>> http://localhost:8080/subdivision.xml >>> http://localhost:8080/lotmap/subdivision.xml <-- this should be the >>> correct URL, IMHO >>> http://localhost:8080/lotmap/rest/subdivision.xml >>> >>> I did not mention this, but I am deploying into Jetty, and by default the >>> app deploys under a context named for the app. Hence the 'lotmap' >>> required >>> in the URL. >>> >>> I am afraid I am doing something even more silly than that. The >>> Convention >>> documentation mentions using the config-browser-plugin to see all >>> supported >>> actions, at URL >>> http://localhost:8080/YOUR_CONTEXT_HERE/config-browser/index.action >>> >>> but unfortunately I got an error when running that >>> (java.lang.NoSuchMethodException: >>> com.opensymphony.xwork2.ActionSupport.index()). >>> >>> I think I will back out the struts2-rest-plugin and just try to get >>> Convention working. Currently it is failing when I try to load >>> WEB-INF/content/subdivision-success.jsp >>> via URL >>> http://localhost:8080/lotmap/subdivision.jsp >>> >>> however my Controller is set up for the rest-plugin, so both the show() >>> and >>> index() methods return HttpHeaders, not a simple String response. I don't >>> recall the semantics there but that may be interfering with the normal >>> Convention result mapping. >>> >>> Thanks again - >>> Kent >>> >>> >>> >>> Musachy Barroso wrote: >>>> >>>> Ah the little things that drive us crazy :). Your class is >>>> "com.tousa.ws.rest.SubdivisionController" and the locator is "rest" >>>> which means the the action won't have a namespace, so the url will be >>>> /subdivision instead of /rest/subdivision, because the namespace is >>>> what follows the locator, for example: >>>> >>>> com.example.rest.orders.ViewController >>>> >>>> will map to: >>>> >>>> /orders/view >>>> >>>> see the troubleshooting section in the convention plugin. >>>> >>>> musachy >>>> >>>> On Fri, Mar 6, 2009 at 3:20 PM, wkbutler <kent.but...@gmail.com> wrote: >>>>> >>>>> Hi - >>>>> I am attempting to use the struts-rest-plugin, v2.1.6. I am using >>>>> struts2-rest-showcase-2.1.6 as a guide. The showcase app works fine for >>>>> me, >>>>> and I have modeled my struts.xml, web.xml, and pom.xml after its >>>>> example. >>>>> >>>>> Still, my app always returns a 404 error for any RESTful URL request. >>>>> Here >>>>> are my 2 example URLs that I would expect to work at this point: >>>>> >>>>> http://localhost:8080/rest/subdivision.xml >>>>> http://localhost:8080/rest/subdivision/F11.xml >>>>> >>>>> I have cranked up debug, and even though the Restful Mapper & >>>>> Interceptor >>>>> appear to be properly registered at startup: >>>>> >>>>> [code] >>>>> DEBUG [main] XmlConfigurationProvider.debug(57) | Loaded [BUILDER] >>>>> {PackageConfig Name:convention-default namespace: >>>>> parents:[{PackageConfig >>>>> Name:struts-default namespace: parents:[]}]} >>>>> >>>>> DEBUG [main] PackageBasedActionConfigBuilder.trace(69) | Setting action >>>>> default parent package to [rest-default] >>>>> >>>>> DEBUG [main] PackageBasedActionConfigBuilder.trace(69) | Loading action >>>>> configurations >>>>> >>>>> DEBUG [main] PackageBasedActionConfigBuilder.trace(69) | Actions being >>>>> loaded using package locators [rest] >>>>> >>>>> DEBUG [main] PackageBasedActionConfigBuilder.trace(69) | Excluding >>>>> actions >>>>> from packages [org.apache.struts.*, org.apache.struts2.*, >>>>> org.springframework.web.struts.*, org.springframework.web.struts2.*, >>>>> org.hibernate.*] >>>>> >>>>> DEBUG [main] PackageBasedActionConfigBuilder.debug(57) | Processing >>>>> class >>>>> [com.tousa.ws.rest.SubdivisionController] in package >>>>> [com.tousa.ws.rest] >>>>> >>>>> DEBUG [main] SEOActionNameBuilder.trace(69) | Changed action name from >>>>> [SubdivisionController] to [subdivision] >>>>> >>>>> DEBUG [main] PackageBasedActionConfigBuilder.trace(69) | Got actionName >>>>> for >>>>> class [class com.tousa.ws.rest.SubdivisionController] of [subdivision] >>>>> >>>>> DEBUG [main] PackageBasedActionConfigBuilder.trace(69) | Created >>>>> package >>>>> config named [com.tousa.ws.rest#rest-default#] with a namespace [] >>>>> >>>>> DEBUG [main] PackageBasedActionConfigBuilder.debug(57) | Creating >>>>> action >>>>> config for class [class com.tousa.ws.rest.SubdivisionController], name >>>>> [subdivision] and package name [com.tousa.ws.rest#rest-default#] in >>>>> namespace [] >>>>> >>>>> DEBUG [main] DefaultResultMapBuilder.trace(69) | Using final calculated >>>>> namespace [] >>>>> >>>>> DEBUG [main] DefaultResultMapBuilder.trace(69) | Searching for results >>>>> in >>>>> the Servlet container at [/WEB-INF/content/] with result prefix of >>>>> [/WEB-INF/content/subdivision] >>>>> >>>>> DEBUG [main] DefaultResultMapBuilder.trace(69) | Searching for results >>>>> in >>>>> the class path at [WEB-INF/content/] with a result prefix of >>>>> [/WEB-INF/content/subdivision] and action name [subdivision] >>>>> [/code] >>>>> >>>>> on any of the above requests, this is the only logged output (to go >>>>> along >>>>> with the 404 response): >>>>> [code] >>>>> DEBUG [btpool0-2] ConfigurationManager.debug(57) | Checking >>>>> ConfigurationProviders for reload. >>>>> >>>>> DEBUG [btpool0-2] InstantiatingNullHandler.debug(57) | Entering >>>>> nullPropertyValue >>>>> [target=[com.opensymphony.xwork2.DefaultTextProvider@3e48f2], >>>>> property=struts] >>>>> >>>>> WARN [btpool0-2] OgnlValueStack.warn(45) | Could not find property >>>>> [struts.actionMapping] >>>>> [/code] >>>>> >>>>> which seems totally irrelevant. >>>>> >>>>> I am spinning my wheels now and have tried numerous things, but I >>>>> cannot >>>>> understand why the supposed action configured at startup does not pick >>>>> up >>>>> my >>>>> URLs. >>>>> >>>>> Here are my general configs - I have pared down the configuration to a >>>>> bare >>>>> minimum, to match the Showcase app, to no avail (yet): >>>>> >>>>> struts.xml >>>>> [code] >>>>> <constant name="struts.convention.action.suffix" >>>>> value="Controller"/> >>>>> <constant name="struts.convention.action.mapAllMatches" >>>>> value="true"/> >>>>> <constant name="struts.convention.default.parent.package" >>>>> value="rest-default"/> >>>>> <constant name="struts.convention.package.locators" value="rest"/> >>>>> [/code] >>>>> >>>>> web.xml >>>>> [code] >>>>> <context-param> >>>>> <param-name>contextConfigLocation</param-name> >>>>> <param-value>classpath*:applicationContext*.xml</param-value> >>>>> </context-param> >>>>> >>>>> <!-- Filters --> >>>>> <filter> >>>>> <filter-name>struts2</filter-name> >>>>> >>>>> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> >>>>> </filter> >>>>> <filter-mapping> >>>>> <filter-name>struts2</filter-name> >>>>> <url-pattern>/*</url-pattern> >>>>> </filter-mapping> >>>>> >>>>> <!-- Listeners --> >>>>> <listener> >>>>> >>>>> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> >>>>> </listener> >>>>> >>>>> [/code] >>>>> >>>>> pom.xml >>>>> [code] >>>>> <dependencies> >>>>> >>>>> <!-- Struts 2 --> >>>>> <dependency> >>>>> <groupId>org.apache.struts</groupId> >>>>> <artifactId>struts2-core</artifactId> >>>>> <version>2.1.6</version> >>>>> </dependency> >>>>> <dependency> >>>>> <groupId>org.apache.struts</groupId> >>>>> <artifactId>struts2-convention-plugin</artifactId> >>>>> <version>2.1.6</version> >>>>> </dependency> >>>>> <dependency> >>>>> <groupId>org.apache.struts</groupId> >>>>> <artifactId>struts2-spring-plugin</artifactId> >>>>> <version>2.1.6</version> >>>>> </dependency> >>>>> <dependency> >>>>> <groupId>org.apache.struts</groupId> >>>>> <artifactId>struts2-rest-plugin</artifactId> >>>>> <version>2.1.6</version> >>>>> </dependency> >>>>> >>>>> <dependency> >>>>> <groupId>org.hibernate</groupId> >>>>> <artifactId>hibernate</artifactId> >>>>> <version>3.2.1.ga</version> >>>>> </dependency> >>>>> <dependency> >>>>> <groupId>org.hibernate</groupId> >>>>> <artifactId>hibernate-annotations</artifactId> >>>>> <version>3.2.1.ga</version> >>>>> </dependency> >>>>> <dependency> >>>>> <groupId>org.hibernate</groupId> >>>>> <artifactId>hibernate-entitymanager</artifactId> >>>>> <version>3.2.1.ga</version> >>>>> </dependency> >>>>> <dependency> >>>>> <groupId>javax.persistence</groupId> >>>>> <artifactId>persistence-api</artifactId> >>>>> <version>1.0</version> >>>>> </dependency> >>>>> <dependency> >>>>> <groupId>log4j</groupId> >>>>> <artifactId>log4j</artifactId> >>>>> <version>1.2.13</version> >>>>> </dependency> >>>>> >>>>> </dependencies> >>>>> >>>>> [/code] >>>>> >>>>> >>>>> Any suggestions? I guess I will be going through source code now - the >>>>> showcase example makes it seem so simple, and I cannot see what little >>>>> switch I have missing or need to remove. Thanks for ideas. >>>>> -- >>>>> View this message in context: >>>>> http://www.nabble.com/Struts-mapping-failing-when-using-struts2-convention-plugin-tp22379807p22379807.html >>>>> Sent from the Struts - User mailing list archive at Nabble.com. >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>>> For additional commands, e-mail: user-h...@struts.apache.org >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> "Hey you! Would you help me to carry the stone?" Pink Floyd >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>>> For additional commands, e-mail: user-h...@struts.apache.org >>>> >>>> >>>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Struts-mapping-failing-when-using-struts2-convention-plugin-tp22379807p22380845.html >>> Sent from the Struts - User mailing list archive at Nabble.com. >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >>> For additional commands, e-mail: user-h...@struts.apache.org >>> >>> >> >> >> >> -- >> "Hey you! Would you help me to carry the stone?" Pink Floyd >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >> For additional commands, e-mail: user-h...@struts.apache.org >> >> >> > > -- > View this message in context: > http://old.nabble.com/Struts-mapping-failing-when-using-struts2-convention-plugin-tp22379807p30743100.html > Sent from the Struts - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org