• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Struts + Tomcat 6 + HelloWorld = Pain

 
Giovanni Varesotti
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi everyone,

I'm trying to setup a simple application using the above technologies. I'm actually following this tutorial: http://struts.apache.org/2.1.8.1/docs/hello-world.html
I searched and read many topics on this subject still I cant find a solution that works for me.

I created this directory: $CATALINA_BASE/webapps/HelloWorld with this structure:
../WEB-INF/web.xml
../WEB-INF/classes/struts.xml
../WEB-INF/classes/tutorial/HelloWorld.java and HelloWorld.class
../WEB-INF/lib/ -> filled with all the libs needed.
../HelloWorld.jsp

(HelloWorld.jsp, struts.xml and web.xml are just copy/paste from the same files I found in the tutorial above)

I fired up Tomcat and I deployed the application using the tomcat manager and I get this message: "OK - Started application at context path /HelloWorld" but browsing localhost:8080/HelloWorld leads to this error: HTTP Status 404 - There is no Action mapped for namespace / and action name .

As I said I looked inside the tomcat logs and on many many forums still I dont have a clue. :O

Any hints?


Thanks,

fadeh
 
Mark E Hansen
Ranch Hand
Posts: 650
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Fadeh: Welcome to Java Ranch!

It sounds like you don't have a welcome page identified for your web application.

You've created a web application named "HelloWorld" (based on the name of the directory you created under "webapps".
When you browse to localhost:8080/HelloWorld, this is accessing the root of your web application, not the JSP page you have in the root of your web application. What happens when you try browsing to localhost:8080/HelloWorld/HelloWorld.jsp?

Otherwise, perhaps you could show the contents of your web.xml file (please use code tags for that).

Best Regards,
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64620
86
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"fedah fedaha", please check your private messages for an important administrative matter.
 
Giovanni Varesotti
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you for your answer Mark.

You're totally right, if I try to access /HelloWorld/HelloWorld.jsp I get rid of that error. Adding a <welcome-file-list> into web.xml should solve the problem (forgot this step after an entire day of fails using netbeans)
Anyway another problem has arisen: the browser returns a blank page (the title is setted properly, afterall).


Here's the code:

web.xml


struts.xml


HelloWorld.java


HelloWorld.jsp



Thank you,

Gio
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If the context is HelloWorld, and the action name is HelloWorld, then the appropriate URL would be /HelloWorld/HelloWorld.
 
Giovanni Varesotti
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Oh.
My.

Lamest thread award.

Thank you Dave, it works. I would like to say that I got lot of problems with NetBeans+Struts2 in the first place and after a day of fails I tried to build the project manually and this thread actually show how I was tired

Anyway, thanks to your answers, looks like I've solved the problem even with NetBeans.. in fact the first problem was I placed struts.xml in the wrong dir (it should be under the default package) and the second arise when you run the project, NetBeans automatically opens a wrong url (localhost:8080/HelloWorld withouth the action part).


Thank you again and sorry for the lame question.

Gio
 
David Newton
Author
Rancher
Posts: 12617
IntelliJ IDE Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
We've all been there :)
 
Tejeswar Peetha
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I am also facing the same problem. I have tried different alternatives but failed to resolve
I am getting the welcome page and initPersonAction is working properly... but, when I try to invoke other actions it is giving me the problem:

2010-10-25 18:17:09,814 ERROR [org.apache.struts2.dispatcher.Dispatcher] - <Could not find action or result>
There is no Action mapped for namespace / and action name addPersonAction!add. - [unknown location]

I am trying to access one Action class with different action names and method names.

Please suggest me


my struts.xml file

<?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">

<struts>

<constant name="struts.objectFactory" value="spring" />
<constant name="struts.devMode" value="false" />
<constant name="struts.enable.DynamicMethodInvocation" value="false" />

<package name="default" extends="struts-default">

<!-- Login Action -->
<action name="login" class="com.atos.referentiel.action.LoginAction">
<result name="SUCCESS">/WEB-INF/jsp/referentiel_home.jsp</result>
<result name="FAILURE">/WEB-INF/jsp/login_error.jsp</result>
</action>

<!-- Person Action -->

<action name="addPersonAction1" method="addPerson" class="com.atos.referentiel.action.PersonAction">
<result name="success">/WEB-INF/jsp/person/personMaster.jsp</result>
</action>

<action name="searchPersonAction" method="search" class="com.atos.referentiel.action.PersonAction">
<result name="success">/WEB-INF/jsp/person/personMaster.jsp</result>
</action>

<action name="initPersonAction" method="init" class="com.atos.referentiel.action.PersonAction">
<result name="success">/WEB-INF/jsp/person/personMaster.jsp</result>
</action>

<action name="addPersonAction" method="add" class="com.atos.referentiel.action.PersonAction">
<result name="input">/WEB-INF/jsp/person/addPerson.jsp</result>
</action>


<action name="loginError">
<result>login.jsp</result>
</action>
</package>

</struts>
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic