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

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 start
java.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 more
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern> .action in servlet mapping
	at 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 start
java.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 start
	at 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 more
Caused 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 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at 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.NullPointerException
	at 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.NullPointerException
	at 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>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值