Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 01-04-2010, 07:38 AM
Member
 
Join Date: Dec 2009
Posts: 5
Rep Power: 0
jadeite100 is on a distinguished road
Default Spring Mvc 404 error
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.
//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 "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"?>

<!-- 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.ContextLoade rListener</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.DispatcherSe rvlet</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"?>

<!--
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.Intern alResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>

</beans>

accounts-application-config.xml:


<!-- 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.LocalSes sionFactoryBean">
<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.Hibernat eTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

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

</beans>

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

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autow ired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.ServletRequestBinding Exception;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.annotation.RequestMap ping;
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(reque st, "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.
Bookmark Post in Technorati
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Spring Mvc 404 error jadeite100 Web Frameworks 0 01-04-2010 07:21 AM
Thread: Error 500--Internal Server Error java.lang.NullPointerException jackdear44 New To Java 1 12-05-2009 08:28 AM
java.lang.Error: Error opening DSound for capture NARs Networking 1 10-26-2009 05:38 PM
EJB 3.0 VS Spring nanaji Advanced Java 4 01-28-2009 05:58 AM
Spring IDE JavaForums Java Blogs 0 07-18-2008 08:00 PM


All times are GMT +2. The time now is 07:13 AM.



VBulletin, Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2009, Crawlability, Inc.
Copyright ©2006 - 2007, www.java-forums.org