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.defaulttextprovi...@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

Reply via email to