我安装了:
-eclipse Indigo 3.7,
-JDK 1.7 in /usr/lib/jvm` and,
-Tomcat 7
-Spring framework 2.5.6
我正在尝试做一个教程found here:
为此,我创建了一个«dynamic web project
»完成了«spring MVC框架»。我尝试运行它«Run on server
»,但我得到了一个«HTTP 404 error: (/SpringMVC/) ressource unavailable
»。我真的不知道我错过了什么。提前感谢您的帮助。
这些是我最初包含在项目中的图书馆:
-jakarta-commons/commons-logging.jar
-mysql-connector-java-5.1.18
-j2ee/jstl.jar
-log4j/log4j-1.2.14.jar
-jakarta-taglibs/standard.jar
-dist/spring.jar
-dist/modules/spring-webmvc.jar
我刚刚添加了spring-web.jar
库。
这是我遇到的新错误消息:
nov. 22, 2011 7:48:15 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\QuickTime\QTSystem\;C:\MinGW\bin\;C:\MinGW\MSYS\1.0\local\bin\;C:\MinGW\MSYS\1.0\bin\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Eclipse\eclipse;;.
nov. 22, 2011 7:48:16 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:SpringMVC' did not find a matching property.
nov. 22, 2011 7:48:16 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
nov. 22, 2011 7:48:16 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
nov. 22, 2011 7:48:16 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 571 ms
nov. 22, 2011 7:48:16 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
nov. 22, 2011 7:48:16 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.21
nov. 22, 2011 7:48:16 PM org.apache.catalina.core.ApplicationContext log
INFO: Set web app root system property: 'webapp.root' = [C:\Users\cProg\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SpringMVC\]
nov. 22, 2011 7:48:16 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing log4j from [C:\Users\cProg\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SpringMVC\WEB-INF\log4j.xml]
nov. 22, 2011 7:48:16 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
nov. 22, 2011 7:48:17 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'springapp'
nov. 22, 2011 7:48:17 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
nov. 22, 2011 7:48:17 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
nov. 22, 2011 7:48:17 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1653 ms
我有4个xml文件:
-applicationContext.xml
-web.xml
-springapp-servlet.xml
-log4j.xml
他们的源代码是:
applicationContext.xml
<!--applicationContext.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- The Dao class -->
<bean id="studentDao" class="com.oyejava.springmvc.StudentJdbcDao">
<property name="simpleJdbcTemplate" ref="jdbcTemplate" />
</bean>
<!-- Template class to access JDBC code -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
<constructor-arg ref="dataSource" />
</bean>
<!-- Configuration for the data source -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<!-- <property name="driverClassName" value="org.hsqldb.jdbcDriver" />-->
<property name="url" value="jdbc:mysql://localhost:3306" />
<!-- <property name="url" value="jdbc:hsqldb:hsql://localhost" />-->
<property name="username" value="root" />
<property name="password" value="" />
</bean>
</beans>
log4j.xml
<!--log4j.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="info" />
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %-5p %c{1} - %m%n" />
</layout>
</appender>
<appender name="rolling-file" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${catalina.home}/logs/JMEAR.log" />
<param name="MaxFileSize" value="10KB" />
<!-- Keep one backup file -->
<param name="MaxBackupIndex" value="4" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %l - %m%n" />
</layout>
</appender>
<logger name="org.springframework">
<level value="warn"/>
</logger>
<!--
everything of spring was set to "info" but for class
PropertyEditorRegistrySupport we want "debug" logging
-->
<logger name="org.springframework.beans.PropertyEditorRegistrySupport">
<level value="info"/>
</logger>
<logger name="org.springframework.flex.samples.*">
<level value="info"/>
</logger>
<root>
<priority value="info" />
<!--<appender-ref ref="console" />
-->
<appender-ref ref="rolling-file" />
</root>
</log4j:configuration>
springapp-servlet.xml
<!--springapp-servlet.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
<bean id="studentListController"
class="com.oyejava.springmvc.StudentListController">
<property name="studentDao" ref="studentDao" />
</bean>
<!-- command class and command name are used to retrieve and set the
value as name value pair in HttpRequest and Response. The form view
tells that when the request comes for this Controller than which
form to display in which user input can be taken. -->
<bean id="studentCreateController"
class="com.oyejava.springmvc.StudentCreateController">
<property name="studentDao" ref="studentDao" />
<property name="formView" value="createStudent" />
<property name="commandName" value="student" />
<property name="commandClass" value="com.oyejava.springmvc.Student" />
<property name="validator">
<bean class="com.oyejava.springmvc.StudentValidator" />
</property>
</bean>
<bean id="loggingInterceptor"
class="com.oyejava.springmvc.LoggingInterceptor" />
<bean id="simpleUrlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="interceptors">
<list>
<ref local="loggingInterceptor" />
</list>
</property>
<property name="mappings">
<props>
<prop key="/studentList.htm">
studentListController
</prop>
<prop key="/createStudent.htm">
studentCreateController
</prop>
</props>
</property>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
</beans>
web.xml
<!--web.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>SpringMVC</display-name>
<!-- log4j configuration in web.xml -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- /log4j configuration in web.xml END -->
<!-- The parameter tells about the location of configuration XML. Usually
all the data access beans and service layer beans are kept here. You can register
more than one XML here. -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext.xml</param-value>
</context-param>
<!-- The listener is reponsible for building the spring container. It looks for
all configuration XML as defined by parameter contextConfigLocation and also looks
for a configuration which is named as Dispatch Servlet name. In this case it will
be named as springapp-servlet.xml -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- Dispatcher Servlet which traps all the request targeted for Spring MVC -->
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Mapping for the request. It can be anything -->
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
</web-app>
答案 0 :(得分:0)
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
您似乎没有将spring-web.jar依赖项包含在类路径中(在WEB-INF / lib中)。