niedz., 14 kwi 2024 o 20:56 Tim Mousaw <tim.mou...@gmail.com> napisaĆ(a): > > I started to go through the Getting Started examples at > https://struts.apache.org/getting-started/index.html. I downloaded all the > examples from https://github.com/apache/struts-examples. I would expect > that I should be able to run `mvn jetty:run` from any of the examples, > follow the appropriate link, and it should work as in the corresponding > tutorial. However, this breaks down very quickly as when I try to run that > for the `helloworld` example, I get the following error in my web browser > when going to the link http://localhost:8080/helloworld/index.action: > HTTP ERROR 404 Not Found > URI: /helloworld/index.action > STATUS: 404 > MESSAGE: Not Found > SERVLET: default > ------------------------------ > Powered by Jetty:// 9.4.46.v20220331 <https://eclipse.org/jetty> > > With debug logging enabled, navigating to > localhost:8080/helloworld/index.action spits the following two lines of > output to the console: > 2024-04-14 14:44:44,340 DEBUG [qtp273531298-62] config.ConfigurationManager > (ConfigurationManager.java:180) - Checking ConfigurationProviders for > reload. > 2024-04-14 14:44:44,343 DEBUG [qtp273531298-62] > impl.InstantiatingNullHandler (InstantiatingNullHandler.java:98) - Entering > nullPropertyValue > [target=[com.opensymphony.xwork2.DefaultTextProvider@6dbebaa7], > property=struts] > > If I remove the line "<constant name="struts.action.extension" value=","/>" > from struts.xml, then the example seems to work. It gets the same two lines > of output to the console followed by:
You are right, by removing this constant you make Struts to fallback to default configuration [1] which supports both .action and no suffix in the url [1] https://github.com/apache/struts/blob/master/core/src/main/resources/org/apache/struts2/default.properties#L87 > 2024-04-14 14:51:46,765 DEBUG [qtp273531298-50] xwork2.DefaultActionProxy > (DefaultActionProxy.java:85) - Creating an DefaultActionProxy for namespace > [/] and action name [index] > > As well as a bunch of other logging after that before the page renders. > From searching for this configuration, I think the intention of this line > is to remove the `.action` suffix from the action (e.g. the link in the web > browser displays localhost:8080/helloworld/index rather than > http://localhost:8080/helloworld/index.action). So, I'm curious what I have > configured wrong that doesn't allow this to work. I'm using Java 21 > (Corretto). Let me know if there are other dependencies that you need to > know the version of. As you notice what was documented on the page doesn't match the example Hello World application. So either you can prepare a PR fixing the documentation or the example app. Cheers Lukasz --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org