PDA

View Full Version : Can not display jsp page


krishnan.1000
Jun 7th, 2006, 06:30 PM
Hi ,

I am trying to develop a sample login application. But, I can not display the login page. My web.xml configuration is as follows:


<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>


<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>


My application context configuration is as follows:


<beans>
<bean id="loginController" class="com.jbe.spring.controller.LoginController">
<property name="commandClass"><value>com.jbe.spring.command.LoginCommand</value></property>
<property name="commandName"><value>loginCommand</value></property>
<property name="formView"><value>login</value></property>
</bean>

<bean id="indexController" class="com.jbe.spring.controller.IndexController"/>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResou rceViewResolver">
<property name="cache" value="true"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>

<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlH andlerMapping">
<property name="mappings">
<props>
<prop key="/index.jsp">indexController</prop>
<prop key="/login.jsp">loginController</prop>
</props>
</property>
</bean>
</beans>


When I try to call the url :
http://localhost:7001/SpringMVCTutorialWeb/index.jsp, where the index is the welcome file.

I get the following log message:
2006-06-07 15:02:44,723 [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] DEBUG org.springframework.web.servlet.DispatcherServlet: 926 - Rende
ring view [org.springframework.web.servlet.view.JstlView: name 'login'; URL [/WEB-INF/jsp/login.jsp]] in DispatcherServlet with name 'SpringMVC'
2006-06-07 15:02:44,723 [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] DEBUG org.springframework.web.servlet.view.JstlView:234 - Rendering
view with name 'login' with model null and static attributes {}



I have used the following index controller :
public class IndexController implements Controller
{
protected final Log log = LogFactory.getLog(getClass());

public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception
{
log.info(" <<<<<<<<<<<<<<<<<<<<<<<<<<< Begin handleRequest >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ");

log.info("<<<<<<<<<<<<<<<<<<<<<<<<< End handle request class >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ");
return new ModelAndView("login");
}
}

Can anybody please help me.

Thanks,

Krishnan

Mark Fisher
Jun 7th, 2006, 07:12 PM
It looks like the view-rendering is dispatching to your /WEB-INF/jsp/login.jsp. Although you are not seeing the log messages from within the IndexController, have you checked the configuration of the relevant log levels? What actually appears in the browser?

krishnan.1000
Jun 7th, 2006, 07:42 PM
Hi Mark,

Not a thing.

Thanks,

Krishnan

krishnan.1000
Jun 7th, 2006, 07:44 PM
Hi Mark,

It displays the log messages but does not display the page.

Thanks,

Krishnan

Mark Fisher
Jun 7th, 2006, 07:52 PM
What do you have in "/WEB-INF/jsp/login.jsp"?

krishnan.1000
Jun 7th, 2006, 08:05 PM
Index jsp:
---------


<!--Generated by WebLogic Workshop-->
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c"%>

<html>
<head><title>Example :: Spring Application</title></head>
<body>
<form>
<h1>Hello - Spring Application</h1>
<p>Greetings.</p>
<c:redirect url="/login.htm"/>
</form>
</body>
</html>



Login jsp
--------


<%@ page language="java" contentType="text/html;charset=UTF-8"%>

<html>
<head><title>Login Please !!! </title></head>
<body>
<form>
<table>
<tr>
<td>If you have a login id, please login in</td>
<td>Enter you User Name below</td>
</tr>
<tr>
<td>Username</td>
<td><input type="text" name="userId"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="login" value="Login">
</tr>

</table>
</form>
</body>
</html>


Thanks,

Krishnan

Mark Fisher
Jun 7th, 2006, 08:12 PM
Your servlet mapping is causing anything with a ".jsp" prefix to be handled by the DispatcherServlet. Your welcome page should not conflict with that prefix. Also, the redirect to "login.htm" would not be handled by the DispatcherServlet.

krishnan.1000
Jun 8th, 2006, 01:46 PM
Hi Mark,

Looking at your mail, I changed the following references in various files:

1) web.xml
--------

<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>


<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>


2) The SpringMVC-servlet.xml
--------------------------


<bean id="loginController" class="com.jbe.spring.controller.LoginController">
<property name="commandClass"><value>com.jbe.spring.command.LoginCommand</value></property>
<property name="commandName"><value>loginCommand</value></property>
<property name="formView"><value>login</value></property>
</bean>

<bean id="indexController" class="com.jbe.spring.controller.IndexController"/>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResou rceViewResolver">
<property name="cache" value="true"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>

<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlH andlerMapping">
<property name="mappings">
<props>
<prop key="/index.htm">indexController</prop>
<prop key="/login.htm">loginController</prop>
</props>
</property>
</bean>


index.jsp
--------


<!--Generated by WebLogic Workshop-->
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c"%>

<html>
<head><title>Example :: Spring Application</title></head>
<body>
<form>
<h1>Hello - Spring Application</h1>
<p>Greetings.</p>
<c:redirect url="/login.htm"/>
</form>
</body>
</html>



4) login.jsp
--------


<%@ page language="java" contentType="text/html;charset=UTF-8"%>

<html>
<head><title>Login Please !!! </title></head>
<body>
<form>
<table>
<tr>
<td>If you have a login id, please login in</td>
<td>Enter you User Name below</td>
</tr>
<tr>
<td>Username</td>
<td><input type="text" name="userId"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="login" value="Login">
</tr>

</table>
</form>
</body>
</html>


Now I get the following error:


2006-06-07 16:01:09,897 [ExecuteThread: '1' for queue: 'weblogic.kernel.System'] ERROR org.springframework.web.servlet.DispatcherServlet: 227 - Context
initialization failed
org.springframework.beans.factory.BeanDefinitionSt oreException: Error registering bean with name 'loginController' defined in ServletContext resource
[/WEB-INF/SpringMVC-servlet.xml]: Bean class [com.jbe.spring.controller.LoginController] not found; nested exception is java.lang.ClassNotFound
Exception: com.jbe.spring.controller.LoginController
java.lang.ClassNotFoundException: com.jbe.spring.controller.LoginController
at weblogic.utils.classloaders.GenericClassLoader.fin dClass(GenericClassLoader.java:199)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 89)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 35)
at weblogic.utils.classloaders.GenericClassLoader.loa dClass(GenericClassLoader.java:224)
at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:219)
at org.springframework.util.ClassUtils.forName(ClassU tils.java:88)
at org.springframework.beans.factory.support.BeanDefi nitionReaderUtils.createBeanDefinition(BeanDefinit ionReaderUtils.java:65)
at org.springframework.beans.factory.xml.DefaultXmlBe anDefinitionParser.parseBeanDefinitionElement(Defa ultXmlBeanDefinitionParser.java:369)
at org.springframework.beans.factory.xml.DefaultXmlBe anDefinitionParser.parseBeanDefinitionElement(Defa ultXmlBeanDefinitionParser.java:335)
at org.springframework.beans.factory.xml.DefaultXmlBe anDefinitionParser.parseBeanDefinitions(DefaultXml BeanDefinitionParser.java:266)
at org.springframework.beans.factory.xml.DefaultXmlBe anDefinitionParser.registerBeanDefinitions(Default XmlBeanDefinitionParser.java:186)
at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.registerBeanDefinitions(XmlBeanDefinit ionReader.java:246)
at org.springframework.beans.factory.xml.XmlBeanDefin itionReader.loadBeanDefinitions(XmlBeanDefinitionR eader.java:163)
at org.springframework.beans.factory.support.Abstract BeanDefinitionReader.loadBeanDefinitions(AbstractB eanDefinitionReader.java:125)
at org.springframework.beans.factory.support.Abstract BeanDefinitionReader.loadBeanDefinitions(AbstractB eanDefinitionReader.java:141)
at org.springframework.web.context.support.XmlWebAppl icationContext.loadBeanDefinitions(XmlWebApplicati onContext.java:126)
at org.springframework.web.context.support.XmlWebAppl icationContext.loadBeanDefinitions(XmlWebApplicati onContext.java:94)
at org.springframework.context.support.AbstractRefres hableApplicationContext.refreshBeanFactory(Abstrac tRefreshableApplicationContext.java:89)

at org.springframework.context.support.AbstractApplic ationContext.refresh(AbstractApplicationContext.ja va:268)
at org.springframework.web.context.support.AbstractRe freshableWebApplicationContext.refresh(AbstractRef reshableWebApplicationContext.java:134)

at org.springframework.web.servlet.FrameworkServlet.c reateWebApplicationContext(FrameworkServlet.java:3 05)
at org.springframework.web.servlet.FrameworkServlet.i nitWebApplicationContext(FrameworkServlet.java:250 )
at org.springframework.web.servlet.FrameworkServlet.i nitServletBean(FrameworkServlet.java:219)
at org.springframework.web.servlet.HttpServletBean.in it(HttpServletBean.java:112)
at javax.servlet.GenericServlet.init(GenericServlet.j ava:258)
at weblogic.servlet.internal.ServletStubImpl$ServletI nitAction.run(ServletStubImpl.java:1094)
at weblogic.security.acl.internal.AuthenticatedSubjec t.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Se curityManager.java:121)
at weblogic.servlet.internal.ServletStubImpl.createSe rvlet(ServletStubImpl.java:970)
at weblogic.servlet.internal.ServletStubImpl.createIn stances(ServletStubImpl.java:949)
at weblogic.servlet.internal.ServletStubImpl.prepareS ervlet(ServletStubImpl.java:888)
at weblogic.servlet.internal.WebAppServletContext.pre loadServlet(WebAppServletContext.java:3430)
at weblogic.servlet.internal.WebAppServletContext.pre loadServlets(WebAppServletContext.java:3375)
at weblogic.servlet.internal.WebAppServletContext.pre loadResources(WebAppServletContext.java:3356)
at weblogic.servlet.internal.WebAppServletContext.set Started(WebAppServletContext.java:6208)
at weblogic.servlet.internal.WebAppModule.start(WebAp pModule.java:864)
at weblogic.j2ee.J2EEApplicationContainer.start(J2EEA pplicationContainer.java:2134)
at weblogic.j2ee.J2EEApplicationContainer.activate(J2 EEApplicationContainer.java:2175)
at weblogic.management.deploy.slave.SlaveDeployer$Com ponentActivateTask.activateContainer(SlaveDeployer .java:2520)
at weblogic.management.deploy.slave.SlaveDeployer$Act ivateTask.doCommit(SlaveDeployer.java:2438)
at weblogic.management.deploy.slave.SlaveDeployer$Tas k.commit(SlaveDeployer.java:2155)
at weblogic.management.deploy.slave.SlaveDeployer$Tas k.checkAutoCommit(SlaveDeployer.java:2254)
at weblogic.management.deploy.slave.SlaveDeployer$Tas k.prepare(SlaveDeployer.java:2149)
at weblogic.management.deploy.slave.SlaveDeployer$Act ivateTask.prepare(SlaveDeployer.java:2401)
at weblogic.management.deploy.slave.SlaveDeployer.pro cessPrepareTask(SlaveDeployer.java:883)
at weblogic.management.deploy.slave.SlaveDeployer.pre pareDelta(SlaveDeployer.java:591)
at weblogic.management.deploy.slave.SlaveDeployer.pre pareUpdate(SlaveDeployer.java:500)
at weblogic.drs.internal.SlaveCallbackHandler$1.execu te(SlaveCallbackHandler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThrea d.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.ja va:183)
<Jun 7, 2006 4:01:09 PM PDT> <Error> <HTTP> <BEA-101216> <Servlet: "SpringMVC" failed to preload on startup in Web application: "SpringMVCTutorialWeb"

Mark Fisher
Jun 8th, 2006, 03:36 PM
That is a classpath issue... "com.jbe.spring.controller.LoginController" is not found. It shouldn't be related to those config changes you made - and those do make sense by the way.