-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Lucasz,

On 9/27/15 12:02 PM, Christopher Schultz wrote:
> On 9/27/15 10:08 AM, Lukasz Lenart wrote:
>> 2015-09-26 23:30 GMT+02:00 Christopher Schultz 
>> <ch...@christopherschultz.net>:
>>> I'm working on a fresh project and using Struts 2 for the
>>> first time. I've been using Struts 1 for more than 10 years and
>>> I generally know my way around web applications.
>>> 
>>> I just can't seem to get a fairly simple setup working. I'm 
>>> intending to use XML-based configuration and not
>>> annotation-based configuration.
> 
>> The best option is to use one of Maven's archetypes
> 
>> http://struts.apache.org/docs/struts-2-maven-archetypes.html#Struts2M
a
>
>> 
venArchetypes-Quickstart
> 
> Yeah...
> 
> I was trying to avoid using Maven, which to me has too much opaque
> hand-waving that I neither understand nor control.
> 
> I have what I believe is a fairly simple test app at this point. I 
> should be able to get it to work without resorting to drastic
> measures : )
> 
>>> Here's what I've got:
>>> 
>>> * Struts 2.3.24.1 * Tomcat 8.0.24 * A simple web app
>>> 
>>> My web.xml looks like this: <filter> <description> Struts 2 
>>> action filter. </description>
>>> <filter-name>struts2</filter-name>
>>> 
>>> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareA
n
>
>>> 
dEx
>>> 
>>> 
> ecuteFilter</filter-class>
>>> <init-param> <param-name>actionPackages</param-name> 
>>> <param-value>my.package.business</param-value> <!-- do I need 
>>> this if I'm going to use XML-based config? -->
> 
>> Not needed, it is useful only when using the Convention plugin
> 
>>> </init-param> </filter>
>>> 
>>> <filter-mapping> <filter-name>struts2</filter-name> 
>>> <url-pattern>/*</url-pattern> </filter-mapping>
>>> 
>>> My struts.xml looks like this:
>>> 
>>> <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts
>>> PUBLIC "-//Apache Software Foundation//DTD Struts
>>> Configuration 2.0//EN"
>>> "http://struts.apache.org/dtds/struts-2.0.dtd";>
> 
>> Wrong DTD, please use the latest one
> 
>> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD
>> Struts Configuration 2.3//EN" 
>> "http://struts.apache.org/dtds/struts-2.3.dtd";>
> 
> Yep, I updated to this one this morning, after trying to find out
> the default value for the <result> "name" attribute. Still no
> change.
> 
>>> <struts> <constant name="struts.devMode" value="true" />
>>> 
>>> <package name="default" namespace="/" extends="struts-default">
>>>  <action name="list" class="my.package.business.ListAction"> 
>>> <result>/WEB-INF/list.jsp</result> </action> </package> 
>>> </struts>
>>> 
>>> I have a class, my.package.business.ListAction which has a
>>> 
>>> public String execute()
>>> 
>>> method. I return "success" from this method (unless an
>>> exception is thrown). During startup, I can see that
>>> Struts/XWork is being initialize d:
>>> 
>>> 26-Sep-2015 17:19:32.613 FINE [localhost-startStop-1] 
>>> com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.de
b
>
>>> 
ug
>>> 
>>> 
> Loaded
>>> list in 'default' package:{ActionConfig //list 
>>> (my.package.business.ListAction) - action - 
>>> file:/path/to/deploy/webapps/ROOT/WEB-INF/classes/struts.xml: 
>>> 9:68}
>>> 
>>> When I try to access http://localhost:8080/list.action, I get
>>> a 404 response with nothing in the logs (except the access
>>> log: request to /list.action resulted in a 404).
>>> 
>>> I'm sure I'm missing something super simple, here. Can anyone 
>>> offer a suggestion?
> 
>> Are you sure that you have deployed your app as ROOT.war to 
>> $TOMCAT_HOME/webapps ?
> 
> It's not deployed as a WAR, but as webapps/ROOT (exploded WAR
> directory).

For completeness, this is what is contained in my ROOT directory
("deploy" is my CATALINA_BASE for Tomcat):

deploy/webapps/ROOT
deploy/webapps/ROOT/WEB-INF
deploy/webapps/ROOT/WEB-INF/classes
deploy/webapps/ROOT/WEB-INF/classes/com
deploy/webapps/ROOT/WEB-INF/classes/my/project
deploy/webapps/ROOT/WEB-INF/classes/my/project/business
deploy/webapps/ROOT/WEB-INF/classes/my/project/business/BaseAction.class
deploy/webapps/ROOT/WEB-INF/classes/my/project/business/ListAction.class
deploy/webapps/ROOT/WEB-INF/classes/struts.xml
deploy/webapps/ROOT/WEB-INF/lib
deploy/webapps/ROOT/WEB-INF/lib/commons-fileupload-1.3.1.jar
deploy/webapps/ROOT/WEB-INF/lib/commons-io-2.2.jar
deploy/webapps/ROOT/WEB-INF/lib/commons-lang3-3.2.jar
deploy/webapps/ROOT/WEB-INF/lib/commons-logging-1.1.3.jar
deploy/webapps/ROOT/WEB-INF/lib/commons-logging-api-1.1.jar
deploy/webapps/ROOT/WEB-INF/lib/freemarker-2.3.22.jar
deploy/webapps/ROOT/WEB-INF/lib/javassist-3.11.0.GA.jar
deploy/webapps/ROOT/WEB-INF/lib/ognl-3.0.6.jar
deploy/webapps/ROOT/WEB-INF/lib/struts2-core-2.3.24.1.jar
deploy/webapps/ROOT/WEB-INF/lib/xwork-core-2.3.24.1.jar
deploy/webapps/ROOT/WEB-INF/list.jsp
deploy/webapps/ROOT/WEB-INF/web.xml

Thanks,
- -chris
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJWCBPJAAoJEBzwKT+lPKRYeJsP/AlAP3VoL16o2MTV3qau+zNQ
YLRPkW2qmP2EwIrDBhuhPJeKy/3pt3292Hit0E9KOfoAw5F5/XSEmaPqw6YsvCUp
SN6LgRm9avhdGZyullnuRba/5RN3epjIdT/T+t33KTIyJ2a1aw5hunnx3mNj3qmZ
h0c3UU4CeJDSCfnzvuF86Tzw3OP2+1H+JyKt2cuZZcIs9YGYvM7szqU22mIZ6JO9
i59D44PNVRLtFV/ijzHB4FRM/OIoDRFYLsnrfDi2aqfoQKMYpw5xzB8sM8wo4Hjt
uC0S9ULdlB4VI15FRun/7xUWjPsFG29EWhPR+GBtRIQ+EBnd7JwmhbNERnlCpah/
FADsrQTc5jFHtKPBcrIZS6MHzzXMW98KG4Yj1+PeXCF6IPJsl4jWCr82xhdA0+RV
k3RgLV8deMypGAKrS9K4NG45dkNOKXUHAg6M3nz/M98XTwKLeoxhRxSJUKDWU0/A
6A37iMOTkjrBNbbIItjiE1RscOo0eiNyV8n5ojZMNZy+QivwtpCfX/K3VcMsCQ6E
zTqebLz3J3ga7WRb1iLYhpQbkSGkO5j51k2lYCsn38pWsAPAMSstX/Zit9eAkSPc
LSeRQ4eJUin5ukp3BR5v62n87lJsG0+aVadVuswhE0jlMydX4/6Ps7CQ8zw9K4kt
S9Ih0aoufDGh2BQpuE7s
=p199
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to