File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Spring and the fly likes Spring Mvc 404 error Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Frameworks » Spring
Bookmark "Spring Mvc 404 error" Watch "Spring Mvc 404 error" New topic
Author

Spring Mvc 404 error

John Smith
Ranch Hand

Joined: Aug 21, 2004
Posts: 48

Hi:

I took a course on Spring 2.56 from Interface21 and the labs I got get it to work during the training.

But when I tried it at home it doesn't work.
I go to the following url and it's find.
http://localhost:8080/accounts/

It display "This is my JSP page. " This is from the default index.jsp page.
When I tried the url as suggested in the lab "http://localhost:8080/accounts/accountSummary.htm"

It gives me a 404 error.

Note, the Tomcat 6 console didnot show any errors meaning it didn't invoke the code for the url.
I am using Myeclipse 8 on Tomcat6.
Here is my Spring information:

Web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<!-- Beans in these files will makeup the configuration of the root web application context -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/accounts-application-config.xml</param-value>
</context-param>

<!-- Bootstraps the root web application context before servlet initialization -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Deploys the 'accounts' dispatcher servlet whose configuration resides in /WEB-INF/accounts-servlet-config.xml -->
<servlet>
<servlet-name>accounts</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/accounts-servlet-config.xml</param-value>
</init-param>
</servlet>

<!-- Maps all /accounts URLs to the 'accounts' servlet -->
<servlet-mapping>
<servlet-name>accounts</servlet-name>
<url-pattern>/accounts/*</url-pattern>
</servlet-mapping>

</web-app>

Accounts-servlet-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<!--
The configuration for your 'accounts' Dispatcher Servlet.

This example uses component scanning to automatically
pick up controllers.
- Dependencies of controllers are wired using @Autowired support.
- The URI scheme is controller using @RequestMapping annotations
-->

<context:component-scan base-package="accounts.web"/>

<!--
if you would not have used component scanning you would have had
to wire up the controller yourself:

<bean class="accounts.web.AccountController">
<constructor-arg ref="accountManager"/>
</bean>
-->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>

</beans>

accounts-application-config.xml:

?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<!-- The configuration of the account manager application. -->

<context:annotation-config/>

<!-- Weaves in transactional advice around @Transactional methods -->
<tx:annotation-driven transaction-manager="transactionManager" />

<!-- The account manager service that can load accounts from the database -->
<bean id="accountManager" class="accounts.internal.HibernateAccountManager">
<constructor-arg ref="sessionFactory" />
</bean>

<!-- A Hibernate SessionFactory for mapping Accounts and Restaurants from object to relation tables -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingLocations">
<list>
<value>classpath:accounts/internal/Account.hbm.xml</value>
<value>classpath:accounts/internal/Beneficiary.hbm.xml</value>
</list>
</property>
</bean>

<!-- Creates an in-memory "rewards" database populated with test data for fast testing -->
<bean id="dataSource" class="accounts.testdb.TestDataSourceFactory">
<property name="testDatabaseName" value="rewards"/>
<property name="schemaLocation" value="classpath:accounts/testdb/schema.sql"/>
<property name="testDataLocation" value="classpath:accounts/testdb/test-data.sql"/>
</bean>

<!-- Drives transactions using Hibernate APIs when requested -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<!-- Translates Hibernate exceptions to Spring Data Access Exceptions -->
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>

</beans>

Here is the AccountControler.java:
package accounts.web;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.ServletRequestBindingException;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import accounts.Account;
import accounts.AccountManager;

/**
* A Spring MVC @Controller controller handling requests for both the
* account summary and the account details pages. The accountDetails()
* method return an account, corresponding to a given entity id. The
* accountSummary() method returns a list with all accounts.
*/
@Controller
public class AccountController {

private AccountManager accountManager;

/**
* Creates a new AccountController with a given account manager.
*/
@Autowired public AccountController(AccountManager accountManager) {
this.accountManager = accountManager;
}


/**
* The @RequestMapping annotation takes care of setting the URL
* this controller will react this.
*/
@RequestMapping("/accountDetails.htm")
public ModelAndView accountDetails(HttpServletRequest request)
throws ServletRequestBindingException {
long id = ServletRequestUtils.getRequiredLongParameter(request, "entityId");
ModelAndView mav = new ModelAndView("accountDetails");
mav.addObject("account", accountManager.getAccount(id));
return mav;
}

@RequestMapping("/accountSummary.htm")
public ModelAndView accountSummary() {
List<Account> accounts = accountManager.getAllAccounts();
ModelAndView mav = new ModelAndView();
mav.setViewName("accountSummary");
mav.addObject("accounts", accounts);
return mav;
}
}


The database is hsqldb.

Any help or hint would be greatly appreciated it.

Yours,

Frustrated.
Christophe Verré
Sheriff

Joined: Nov 24, 2005
Posts: 14688
    
  16

Accounts-servlet-config.xml : do you mean accounts-servlet-config.xml ? The "A" must be lowercase.


[My Blog]
All roads lead to JavaRanch
David Newton
Author
Rancher

Joined: Sep 29, 2008
Posts: 12617

Please UseCodeTags when posting code or configuration. Unformatted code and configuration is very difficult to read. You can edit your post to include them by using the button.
John Smith
Ranch Hand

Joined: Aug 21, 2004
Posts: 48
Christophe Verré wrote:Accounts-servlet-config.xml : do you mean accounts-servlet-config.xml ? The "A" must be lowercase.


Hi:

Yes, I mean lower case for acccounts-servlet-config.xml.

Yours,

Frustrated.
Christophe Verré
Sheriff

Joined: Nov 24, 2005
Posts: 14688
    
  16

Do you have accountSummary.jsp under WEB-INF/views ?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Spring Mvc 404 error