spring mvc with rest webservices using hibernate

时间:2017-09-12 11:42:12

标签: spring hibernate spring-mvc

我正在使用Spring MVC与使用Hibernate的REstful webservice一起使用Customer应用程序。我在Eclipse中创建了这个应用程序作为动态Web项目,因为如果我使用Maven,我会得到很少的依赖项错误。

由于我是这些技术的新手,我不知道在配置这些文件方面我犯了什么错误

我在配置文件中配置如下。

的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"
               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee             
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID"    version="3.0">

 <display-name>SpringWithRestCaseStudy</display-name>
 <context-param>
 <param-name>root-context</param-name>
     <param-value>\WEB-INF\spring\appServlet\root-  context.xml</paramvalue>
 </context-param>

 <servlet>
    <servlet-name>servlet-context</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet- class>
   <init-param>  
      <param-name>contextConfigLocation</param-name>  
      <param-value>\WEB-INF\spring\appServlet\servlet-context.xml</param-value>  
   </init-param>    

 <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>servlet-context</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener>
<listener>
<listener-class>org.springframework.web.context.RequestContextListener</listener-class>
</listener>

servlet的context.xml中

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

 <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->

 <!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<resources location="/resources/" mapping="/resources/**"></resources>
<beans:bean   class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<context:component-scan base-package="com.crud.rest.controllers" />
</beans:beans>

根context.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:c="htpp://www.springframework.org/schema/c"
        xmlns:p="htpp://www.springframework.org/schema/p"

       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">

<!-- Root Context: defines shared resources visible to all other web components -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver">  
</property>
<property name="url"  value="jdbc:oracle:thin:@172.16.156.152:1521:orcl">  
</property>
<property name="username" value="scott"></property>
<property name="password" value="tiger"></property>
</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.crud.rest.beans.MyCustomer</value>
</list>
</property>
</bean>

<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="customerDao" class="com.crud.rest.dao.CustomerDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="customerService" class="com.crud.rest.dao.CustomerServiceImpl">
<property name="CustomerDao" ref="CustomerDao"></property>
</bean>

</beans>

我收到的错误如下。

Sep 12, 2017 12:52:55 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:ShoppingDemo' did not find a matching property.
Sep 12, 2017 12:52:55 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:SpringWithRestCaseStudy' did not find a matching property.
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/8.0.37
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Sep 1 2016 10:01:52 UTC
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         8.0.37.0
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 7
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            6.1
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jre1.8.0_66
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_66-b18
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         D:\Narmatha Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2
Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: CATALINA_HOME:         D:\apache-tomcat-8.0.37
   Sep 12, 2017 12:52:55 PM     org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Dcatalina.base=D:\Narmatha      Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2
     Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Dcatalina.home=D:\apache-tomcat-8.0.37
    Sep 12, 2017 12:52:55 PM     org.apache.catalina.startup.VersionLoggerListener log
     INFO: Command line argument: -Dwtp.deploy=D:\Narmatha  Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps
     Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Djava.endorsed.dirs=D:\apache-tomcat-8.0.37\endorsed
    Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Dfile.encoding=Cp1252
    Sep 12, 2017 12:52:55 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    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\jre1.8.0_66\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_66/bin/server;C:/Program Files/Java/jre1.8.0_66/bin;C:/Program Files/Java/jre1.8.0_66/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\PROGRA~2\CA\SC\CAM\bin;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ORACLEXE\app\oracle\product\10.2.0\server\bin;C:\Tcl\bin;C:\Windows\SysWOW64\;C:\Windows\SysWOW64\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\eclipse-jee-luna-SR2-win32-x86_64\eclipse;;.
    Sep 12, 2017 12:52:55 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-nio-8080"]
    Sep 12, 2017 12:52:55 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
    INFO: Using a shared selector for servlet write/read
    Sep 12, 2017 12:52:55 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
     Sep 12, 2017 12:52:55 PM  org.apache.tomcat.util.net.NioSelectorPool  getSharedSelector
    INFO: Using a shared selector for servlet write/read
    Sep 12, 2017 12:52:55 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 1524 ms
    Sep 12, 2017 12:52:55 PM org.apache.catalina.core.StandardService startInternal
     INFO: Starting service Catalina
    Sep 12, 2017 12:52:55 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/8.0.37
    Sep 12, 2017 12:53:00 PM org.apache.jasper.servlet.TldScanner scanJars
    INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
   Sep 12, 2017 12:53:00 PM org.apache.catalina.core.ApplicationContext log
    INFO: Marking servlet dispatcher as unavailable
    Sep 12, 2017 12:53:00 PM org.apache.catalina.core.StandardContext loadOnStartup
    SEVERE: Servlet [dispatcher] in web application [/ShoppingDemo]   threw load() exception
    java.lang.ClassNotFoundException:      org.springframework.web.servlet.DisptacherServlet
     at   org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderB       ase.java:1333)
    at      org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderB     ase.java:1167)
  at     org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceMana    ger.java:518)
   at    org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(Defa    ultInstanceManager.java:499)
    at    org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceMa    nager.java:118)
at    org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:109    1)
    at    org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1027)
   at   org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5    038)
at   org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5    348)
  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at     org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:140    7)
    at    org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:139     7)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Sep 12, 2017 12:53:00 PM org.apache.catalina.core.StandardContext listenerStart
    SEVERE: Error configuring application listener of class  org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException:        org.springframework.web.context.ContextLoaderListener at   org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderB     ase.java:1333)
at  org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderB    ase.java:1167) at     org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:518) at      org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:499)
    at     org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceMa     nager.java:118)
    at    org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4    775)
    at     org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5    314)
   at   org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
   at   org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407) at   org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:130 9) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    Sep 12, 2017 12:53:00 PM org.apache.catalina.core.StandardContext     listenerStart
     SEVERE: Error configuring application listener of class   org.springframework.web.context.RequestContextListener
    java.lang.ClassNotFoundException:   org.springframework.web.context.RequestContextListener
    at  org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderB      ase.java:1333)
 at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderB    ase.java:1167)
 at    org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceMana    ger.java:518)
at   org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(Defa     ultInstanceManager.java:499)
   at  org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceMa  nager.java:118)
   at   org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4      775)
 at    org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5     314)
   at   org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
   at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

   Sep 12, 2017 12:53:00 PM org.apache.catalina.core.StandardContext listenerStart
     SEVERE: Skipped installing application listeners due to previous error(s)
    Sep 12, 2017 12:53:00 PM org.apache.catalina.core.StandardContext startInternal
    SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
    Sep 12, 2017 12:53:00 PM org.apache.catalina.core.StandardContext startInternal
    SEVERE: Context [/SpringWithRestCaseStudy] startup failed due to previous errors
   Sep 12, 2017 12:53:01 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["http-nio-8080"]
    Sep 12, 2017 12:53:01 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["ajp-nio-8009"]
    Sep 12, 2017 12:53:01 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 5154 ms

请有人帮我解决这个问题。

如果有人可以提供有关如何配置这3个文件的详细信息,那将会更有帮助。

1 个答案:

答案 0 :(得分:0)

这可能是解决方案。

这个问题的解决方案非常简单。双击tomcat服务器。它将打开服务器配置。在服务器选项下,选中“将模块内容发布到单独的XML文件”复选框。重启服务器。这次你的页面没有任何问题。

enter image description here