搭建springMVC+spring+mybatis遇到的问题及解决方案

来源:互联网 发布:linux 查看有几个用户 编辑:程序博客网 时间:2024/05/17 18:24
1、搭建完框架后,在tomcat中启动项目报

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误

解决方案:
  1. Open the project's properties (e.g., right-click on the project's name in the project explorer and select "Properties").
  2. Select "Deployment Assembly".
  3. Click the "Add..." button on the right margin.
  4. Select "Java Build Path Entries" from the menu of Directive Type and click "Next".
  5. Select "Maven Dependencies" from the Java Build Path Entries menu and click "Finish".
2、项目启动没报错,访问数据库的时候报

java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()L错误

解决方案:
   可能是依赖的jar冲突问题或者jar版本兼容性的问题。

3、如果tomcat启动报如下错误:
二月 15, 2017 10:07:58 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:ssm-practice' did not find a matching property.二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Server version:        Apache Tomcat/8.0.33二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Server built:          Mar 18 2016 20:31:49 UTC二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Server number:         8.0.33.0二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: OS Name:               Windows 7二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: OS Version:            6.1二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Architecture:          amd64二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Java Home:             C:\Soft\Java\jre7二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: JVM Version:           1.7.0_67-b01二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: JVM Vendor:            Oracle Corporation二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: CATALINA_BASE:         C:\Soft\apache-tomcat-8.0.33二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: CATALINA_HOME:         C:\Soft\apache-tomcat-8.0.33二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Command line argument: -Dcatalina.base=C:\Soft\apache-tomcat-8.0.33二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Command line argument: -Dcatalina.home=C:\Soft\apache-tomcat-8.0.33二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Command line argument: -Dwtp.deploy=C:\Soft\apache-tomcat-8.0.33\wtpwebapps二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Command line argument: -Djava.endorsed.dirs=C:\Soft\apache-tomcat-8.0.33\endorsed二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Command line argument: -Dfile.encoding=UTF-8二月 15, 2017 10:07:58 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Soft\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Common Files\NetSarang;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Soft\Java\jdk1.7.0_67\bin;C:\Soft\Java\jdk1.7.0_67\jre\bin;D:\Soft\TortoiseSVN\bin;C:\Soft\Vagrant\bin;C:\Soft\apache-maven-3.3.9\bin;C:\Soft\Java\jre7\bin;C:\Soft\apache-tomcat-8.0.33\lib;C:\Soft\apache-tomcat-8.0.33\bin;C:\Soft\apache-ant-1.9.7\bin;C:\Program Files\TortoiseGit\bin;C:\Soft\nodejs\;C:\Users\geili\AppData\Roaming\npm;.二月 15, 2017 10:07:58 下午 org.apache.coyote.AbstractProtocol init信息: Initializing ProtocolHandler ["http-nio-8080"]二月 15, 2017 10:07:58 下午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector信息: Using a shared selector for servlet write/read二月 15, 2017 10:07:58 下午 org.apache.coyote.AbstractProtocol init信息: Initializing ProtocolHandler ["ajp-nio-8009"]二月 15, 2017 10:07:58 下午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector信息: Using a shared selector for servlet write/read二月 15, 2017 10:07:58 下午 org.apache.catalina.startup.Catalina load信息: Initialization processed in 814 ms二月 15, 2017 10:07:58 下午 org.apache.catalina.core.StandardService startInternal信息: Starting service Catalina二月 15, 2017 10:07:58 下午 org.apache.catalina.core.StandardEngine startInternal信息: Starting Servlet Engine: Apache Tomcat/8.0.33二月 15, 2017 10:08:01 下午 org.apache.catalina.core.ContainerBase startInternal严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ssm-practice]]at java.util.concurrent.FutureTask.report(Unknown Source)at java.util.concurrent.FutureTask.get(Unknown Source)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)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)Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/ssm-practice]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)... 6 moreCaused by: java.lang.IllegalArgumentException: Invalid <url-pattern> .action in servlet mappingat org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3153)at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3128)at org.apache.catalina.startup.ContextConfig.configureContext(ContextConfig.java:1376)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1184)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:779)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:306)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:95)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5150)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)... 6 more二月 15, 2017 10:08:01 下午 org.apache.catalina.core.ContainerBase startInternal严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]at java.util.concurrent.FutureTask.report(Unknown Source)at java.util.concurrent.FutureTask.get(Unknown Source)at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)at org.apache.catalina.startup.Catalina.start(Catalina.java:629)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)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)Caused by: org.apache.catalina.LifecycleException: A child container failed during startat org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924)at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)... 6 more二月 15, 2017 10:08:01 下午 org.apache.catalina.startup.Catalina start严重: The required Server component failed to start so Tomcat is unable to start.org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)at org.apache.catalina.startup.Catalina.start(Catalina.java:629)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)... 7 moreCaused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)... 9 moreCaused by: org.apache.catalina.LifecycleException: A child container failed during startat org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924)at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)... 11 more二月 15, 2017 10:08:01 下午 org.apache.coyote.AbstractProtocol pause信息: Pausing ProtocolHandler ["http-nio-8080"]二月 15, 2017 10:08:01 下午 org.apache.coyote.AbstractProtocol pause信息: Pausing ProtocolHandler ["ajp-nio-8009"]二月 15, 2017 10:08:01 下午 org.apache.catalina.core.StandardService stopInternal信息: Stopping service Catalina二月 15, 2017 10:08:01 下午 org.apache.coyote.AbstractProtocol destroy信息: Destroying ProtocolHandler ["http-nio-8080"]二月 15, 2017 10:08:01 下午 org.apache.coyote.AbstractProtocol destroy严重: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]java.lang.NullPointerExceptionat org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:305)at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:481)at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:831)at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:533)at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)at org.apache.catalina.startup.Catalina.start(Catalina.java:633)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)二月 15, 2017 10:08:01 下午 org.apache.coyote.AbstractProtocol destroy信息: Destroying ProtocolHandler ["ajp-nio-8009"]二月 15, 2017 10:08:01 下午 org.apache.coyote.AbstractProtocol destroy严重: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"]java.lang.NullPointerExceptionat org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:305)at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:481)at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:831)at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:533)at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)at org.apache.catalina.startup.Catalina.start(Catalina.java:633)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
解决方案:
可能是web.xml的配置有问题,例如servlet的映射和filter的映射配置错误。

4、如果启动tomcat正常,访问页面的时候,静态资源找不到。

1、解决方案:
(1)先查看静态资源是否引入到jsp页面或者html页面
(2)在查看静态资源的路径是否引入正确。
(3)如果上述两点都正常有可能是springmvc把静态资源给拦截了。要在springmvc的配置文件中加入以下代码:
    <mvc:resources location="/images/" mapping="/images/**"/>    <mvc:resources location="/js/" mapping="/js/**"/>    <mvc:resources location="/css" mapping="/css/**"/>
这样静态资源就不会被springmvc给拦截掉。

5、在利用ajax访问springmvc配置的路径后,后台报这个日志:
No mapping found for HTTP request with URI 这种类似的日志。可能的原因有如下几个
1、ajax写的url路径确实不对
2、后台controller层没有被扫描到
可以通过<context:component-scan base-package="org.servin.ssm" />解决扫描包的问题
3、如果以上两种情况都不是可以试着加上
<mvc:annotation-driven/>这个标签(PS:本人就是通过这方式解决的问题)

<mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。


6、在搭建maven项目过程中,项目名称上有红叉,而且项目启动也没有问题,可以打开problem视图查看报错原因,如我在项目中遇到的问题如下:


可以看到错误描述是maven配置问题,首先把要自己的项目编译jdk环境设置成大于1.6,然后在pom文件中加入以下配置就可以解决上述问题

<build><finalName>ssm-practice</finalName><plugins>      <plugin>          <groupId>org.apache.maven.plugins</groupId>          <artifactId>maven-compiler-plugin</artifactId>          <version>2.3.2</version>          <configuration>              <source>1.7</source>              <target>1.7</target>          </configuration>      </plugin></plugins></build>




1 0
原创粉丝点击