sts中,spring springmybatismavenVC mybatis 整合后运行maven install出现test错误,怎么破?求大神帮忙!!!

这是springmvc.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:p=&http://www.springframework.org/schema/p&
xmlns:context=&http://www.springframework.org/schema/context&
xmlns:mvc=&http://www.springframework.org/schema/mvc&
xsi:schemaLocation=&http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
& & & & http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
& & & & http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd&&
&!-- 配置扫描的包 --&
&context:component-scan base-package=&com.taotao.controller& /&
&!-- 注解驱动 --&
&mvc:annotation-driven /&
&!-- 配置视图解析器 --&
class=&org.springframework.web.servlet.view.InternalResourceViewResolver&&
&property name=&prefix& value=&/WEB-INF/jsp/& /&
&property name=&suffix& value=&.jsp& /&
&!-- 配置资源映射 --&
&mvc:resources location=&/WEB-INF/css/& mapping=&/css/**&/&
&mvc:resources location=&/WEB-INF/js/& mapping=&/js/**&/&
____________________________________________________________________________________________________________________________________
这是web.xml的配置
&?xml version=&1.0& encoding=&UTF-8&?&
&web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xmlns=&/xml/ns/javaee& xmlns:web=&/xml/ns/javaee/web-app_2_5.xsd&
xsi:schemaLocation=&/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd&
id=&taotao& version=&2.5&&
&display-name&taotao-manager&/display-name&
&welcome-file-list&
&welcome-file&index.html&/welcome-file&
&welcome-file&index.htm&/welcome-file&
&welcome-file&index.jsp&/welcome-file&
&welcome-file&default.html&/welcome-file&
&welcome-file&default.htm&/welcome-file&
&welcome-file&default.jsp&/welcome-file&
&/welcome-file-list&
&!-- 加载spring容器 --&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath*:spring/applicationContext-*.xml&/param-value&
&/context-param&
&listener&
&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&
&/listener&
&!-- 解决post乱码 --&
&filter-name&CharacterEncodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&utf-8&/param-value&
&/init-param&
&filter-mapping&
&filter-name&CharacterEncodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&!-- springmvc的前端控制器 --&
&servlet-name&taotao-manager&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+&-servlet.xml& --&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath*:spring/springmvc.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&taotao-manager&/servlet-name&
&url-pattern&/&/url-pattern&
&/servlet-mapping&
&/web-app&
____________________________________________________________________________________________________________________________________
这是controller层的代码
package com.taotao.
import org.springframework.beans.factory.annotation.A
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.PathV
import org.springframework.web.bind.annotation.RequestB
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.ResponseB
import com.taotao.pojo.TbI
import com.taotao.service.ItemS
@Controller
public class ItemControlle {
@Autowired
private ItemService itemS
@RequestMapping(&/item/{itemId}&)
@ResponseBody
& public TbItem getItemById(@PathVariable Long itemId){
TbItem item = itemService.getItemById(itemId);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1809次
排名:千里之外您所在的IP地址对ITeye网站访问过于频繁,为了判断您的访问是真实用户,请您填写验证码,谢谢!2042人阅读
spring(5)
LZ最近在阿里巴巴实习,做java Web开发,因此不可避免对一些主流的web开发框架进行接触,那么我在进行相应的开发前,又重新研习了一遍SSM框架的搭建,以下是我的一些步骤,与大家分享:
一、首先是pom.xml文件,此文件用于部署一些相关的jar包,我们可以利用这个文件来加载所需要的jar包,而通过配置相关的SSM,我们可以看到需要配置SSM框架,需要用到的jar包。当然,这里我主要用到的几个包是
Spring3.2.3 RELAEASE
SpringMVC 3.2.3 RELEASE
Mybatis 3.1.1
&span style=&font-size:14&&&project xmlns=&http://maven.apache.org/POM/4.0.0& xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xsi:schemaLocation=&http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&&
&modelVersion&4.0.0&/modelVersion&
&groupId&com.springstudy&/groupId&
&artifactId&hello&/artifactId&
&packaging&war&/packaging&
&version&0.0.1-SNAPSHOT&/version&
&name&hello Maven Webapp&/name&
&url&http://maven.apache.org&/url&
&dependencies&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&version&3.8.1&/version&
&scope&test&/scope&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-webmvc&/artifactId&
&version&3.2.3.RELEASE&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-orm&/artifactId&
&version&3.2.3.RELEASE&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-core&/artifactId&
&version&3.2.3.RELEASE&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-test&/artifactId&
&version&3.2.3.RELEASE&/version&
&/dependency&
&dependency&
&groupId&javax.servlet.jsp&/groupId&
&artifactId&jsp-api&/artifactId&
&version&2.2&/version&
&/dependency&
&dependency&
&groupId&javax.servlet&/groupId&
&artifactId&servlet-api&/artifactId&
&version&2.5&/version&
&/dependency&
&dependency&
&groupId&org.codehaus.jackson&/groupId&
&artifactId&jackson-core-asl&/artifactId&
&version&1.9.13&/version&
&/dependency&
&dependency&
&groupId&org.codehaus.jackson&/groupId&
&artifactId&jackson-mapper-asl&/artifactId&
&version&1.9.13&/version&
&/dependency&
&dependency&
&groupId&org.mybatis&/groupId&
&artifactId&mybatis&/artifactId&
&version&3.1.1&/version&
&/dependency&
&dependency&
&groupId&org.mybatis&/groupId&
&artifactId&mybatis-spring&/artifactId&
&version&1.1.1&/version&
&/dependency&
&dependency&
&groupId&mysql&/groupId&
&artifactId&mysql-connector-java&/artifactId&
&version&5.1.34&/version&
&/dependency&
&dependency&
&groupId&com.alibaba&/groupId&
&artifactId&fastjson&/artifactId&
&version&1.1.41&/version&
&/dependency&
&dependency&
&groupId&c3p0&/groupId&
&artifactId&c3p0&/artifactId&
&version&0.9.1.2&/version&
&/dependency&
&dependency&
&groupId&org.slf4j&/groupId&
&artifactId&slf4j-log4j12&/artifactId&
&version&1.7.10&/version&
&/dependency&
&dependency&
&groupId&log4j&/groupId&
&artifactId&log4j&/artifactId&
&version&1.2.17&/version&
&/dependency&
&dependency&
&groupId&commons-fileupload&/groupId&
&artifactId&commons-fileupload&/artifactId&
&version&1.3.1&/version&
&/dependency&
&dependency&
&groupId&commons-lang&/groupId&
&artifactId&commons-lang&/artifactId&
&version&2.6&/version&
&/dependency&
&dependency&
&groupId&commons-codec&/groupId&
&artifactId&commons-codec&/artifactId&
&version&1.9&/version&
&/dependency&
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpclient&/artifactId&
&version&4.5&/version&
&/dependency&
&dependency&
&groupId&javax.servlet&/groupId&
&artifactId&jstl&/artifactId&
&version&1.2&/version&
&/dependency&
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-jdbc&/artifactId&
&version&3.2.3.RELEASE&/version&
&/dependency&
&/dependencies&
&finalName&hello&/finalName&
&/project&
因为我配置的eclipse中没有自动更新此pom.xml文件引入的jar包,所以我需要手动在eclipse中,在项目的maven中用update projects来进行自动更新所需要的jar包。
二、接下来是jdbc属性文件
jdbc.properties&& 此文件主要用来放置连接的数据库的密码和姓名
&span style=&font-size:14&&jdbc_driverClassName=com.mysql.jdbc.Driver
jdbc_url=jdbc:mysql://localhost:3306/test
jdbc_username=root
jdbc_password=123456&/span&
三、mybatis-spring.xml文件,此文件是用来spring和mybatis整合用的,主要的作用就是用来扫描、自动注入、配置数据库。
&span style=&font-size:14&&&?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:jee=&http://www.springframework.org/schema/jee&
xmlns:context=&http://www.springframework.org/schema/context& xmlns:p=&http://www.springframework.org/schema/p&
xmlns:mvc=&http://www.springframework.org/schema/mvc& xmlns:util=&http://www.springframework.org/schema/util&
xsi:schemaLocation=&http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.1.xsd&&
&!-- 开启扫描和自动注解功能--&
&context:annotation-config/&
&context:component-scan base-package=&com.sprintstudy.DAO&/&
&context:component-scan base-package=&com.srpingstudy.DAOImpl&/&
&context:component-scan base-package=&com.springstudy.DO&/&
&context:component-scan base-package=&com.springstudy.service&/&
&context:component-scan base-package=&com.springstudy.serviceImpl&/&
&mvc:annotation-driven/&
&!-- 配置相关的jdbc的配置文件,用于将jdbc的信息放置在文件中--&
&bean id=&propertyConfigurer& class=&org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&&
&property name=&location& value=&classpath:configs/jdbc.properties&/&
&!-- 配置数据库--&
&bean id=&dataSource& class=&org.springframework.jdbc.datasource.DriverManagerDataSource&&
&property name=&driverClassName&&
&value&${jdbc_driverClassName}&/value&
&/property&
&property name=&url&&
&value&${jdbc_url}&/value&
&/property&
&property name=&username&&
&value&${jdbc_username}&/value&
&/property&
&property name=&password&&
&value&${jdbc_password}&/value&
&/property&
&!-- spring和mybatis的完美结合,不需要mybatis的配置映射文件--&
&bean id=&sqlSessionFactory& class=&org.mybatis.spring.SqlSessionFactoryBean&&
&property name=&dataSource& ref=&dataSource&/&
&property name=&mapperLocations& value=&classpath:configs/userMapper.xml&&&/property&
&!-- DAO接口所在的包,spring会自动扫描其下面的类,在后序的代码里就可以直接调用这个包与sqlSessionFactory进行整合,用于连接相关的--&
&bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
&property name=&basePackage& value=&com.springstudy.DAO&/&
&property name=&sqlSessionFactoryBeanName& value=&sqlSessionFactory&/&
&!-- 事务管理--&
&bean id=&transactionManager& class=&org.springframework.jdbc.datasource.DataSourceTransactionManager&&
&property name=&dataSource& ref=&dataSource&/&
当然,我需要建立的数据库在我本地的mysql中,
create table tuser
&&&& user_id int(11) NOT NULL auto_increment,
&&&& user_name& varchar(30) NOT NULL,
&&&& user_password varchar(10) NOT NULL
&&&& primary key(user_id)
那么在项目中也需要一个pojo类,将这个表转化成一个User对象。
package com.springstudy.DO;
import org.springframework.stereotype.R
@Repository(&User&)
public class User
private Integer user_
private String user_
private String user_
public Integer getUser_id()
return user_
public void setUser_id(Integer user_id)
this.user_id = user_
public String getUser_name()
return user_
public void setUser_name(String user_name)
this.user_name = user_
public String getUser_password()
return user_
public void setUser_password(String user_password)
this.user_password = user_
相关UserMapper.xml代码,用于进行映射作用
&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE mapper PUBLIC &-//mybatis.org//DTD Mapper 3.0//EN& &http://mybatis.org/dtd/mybatis-3-mapper.dtd&&
&mapper namespace=&com.springstudy.DAO.user&&
&resultMap id=&BaseResultMap& type=&com.springstudy.DO.User&&
&id column = &user_id& property=&user_id& jdbcType=&INTEGER& /&
&result column = &user_name& property=&user_name& jdbcType=&VARCHAR& /&
&result column = &user_password& property=&user_password& jdbcType=&VARCHAR&/&
&/resultMap&
&select id=&selectUserById& parameterType=&java.lang.Integer& resultMap=&BaseResultMap&&
SELECT * FROM tuser WHERE user_id = #{user_id}
四、是SpringMVC的整合,也就是spring-mvc.xml文件,此文件是springMVC的配置文件,我们可以通过配置这个,来给Dispatcher来进行分配。
&?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:jee=&http://www.springframework.org/schema/jee&
xmlns:context=&http://www.springframework.org/schema/context& xmlns:p=&http://www.springframework.org/schema/p&
xmlns:mvc=&http://www.springframework.org/schema/mvc& xmlns:util=&http://www.springframework.org/schema/util&
xsi:schemaLocation=&http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/jee
http://www.springframework.org/schema/jee/spring-jee-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.1.xsd&&
&context:annotation-config/&
&context:component-scan base-package=&com.springstudy.controller&/&
&!-- springMVC配置文件中存放controller层的扫描文件 --&
&mvc:annotation-driven/&
&mvc:resources mapping=&/styles/**& location=&/styles/&/&
&mvc:resources mapping=&/scripts/**& location=&/scripts/& /&
&mvc:resources mapping=&/images/**& location=&/images/& /&
class =&org.springframework.web.servlet.view.InternalResourceViewResolver&&
&property name=&prefix& value=&/WEB-INF/views/& /&
&property name=&suffix& value=&.jsp& /&
此配置文件中,我们可以看到,有一些前缀和后缀的相关信息,我们可以通过添加相关的前缀和后缀,来分配给具体的vm页面渲染。
五、web.xml
此文件是spring框架的配置文件,任何的类和对象从加载开始都是从这个文件开始,我们可以直接从这里读取到相关的内容。
&?xml version=&1.0& encoding=&UTF-8&?&
&web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xmlns=&/xml/ns/javaee&
xmlns:web=&/xml/ns/javaee/web-app_2_5.xsd&
xsi:schemaLocation=&/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd&
id=&hello& version=&2.5&&
&display-name&Archetype Created Web Application&/display-name&
&description&springMVC&/description&
&!-- spring的配置文件--&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:configs/mybatis-spring.xml&/param-value&
&/context-param&
&listener&
&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&
&/listener&
&!-- springMVC配置 --&
&servlet-name&Dispatcher&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:configs/spring-mvc.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&!-- springMVC请求后缀 --&
&servlet-mapping&
&servlet-name&Dispatcher&/servlet-name&
&url-pattern&/&/url-pattern&
&/servlet-mapping&
&welcome-file-list&
&welcome-file&index.jsp&/welcome-file&
&/welcome-file-list&
&filter-name&encodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&UTF-8&/param-value&
&/init-param&
&init-param&
&param-name&forceEncoding&/param-name&
&param-value&true&/param-value&
&/init-param&
&filter-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&/web-app&
六、我的controller层代码
package com.springstudy.
import javax.annotation.R
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestB
import org.springframework.web.bind.annotation.RequestH
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestP
import org.springframework.web.bind.annotation.ResponseB
import com.springstudy.DO.U
import com.springstudy.service.UserS
@Controller
public class UserInfoController
private UserS
@RequestMapping(value = &/user&,method = RequestMethod.POST)
@ResponseBody
public User selectById(@RequestHeader(&user_id&) int user_id)
return userservice.selectById(user_id);
七、Service层代码
package com.springstudy.
import javax.annotation.R
import com.springstudy.DO.U
import com.springstudy.serviceImpl.UserServiceI
public interface UserService
public User selectById(int id);
具体的实现类
package com.springstudy.serviceI
import javax.annotation.R
import org.springframework.stereotype.R
import org.springframework.stereotype.S
import com.springstudy.DAO.
import com.springstudy.DO.U
import com.springstudy.service.UserS
@Service(&UserServiceImpl&)
public class UserServiceImpl implements UserService
public User selectById(int user_id)
return this.u.selectUserById(user_id);
八、DAO层的代码
package com.springstudy.DAO;
import org.springframework.stereotype.R
import com.springstudy.DO.U
public interface user
public User selectUserById(Integer user_id);
这个DAO层的代码在mybatis-spring.xml中,已经和相关的UserMapper.xml文件进行了匹配,所以我们可以直接拿来用即可。
九、这里我没有写相关的页面来具体展现,而是用了接口的形式,通过Postman来测试。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:113726次
积分:3315
积分:3315
排名:第10191名
原创:213篇
转载:87篇
评论:19条
(10)(3)(1)(4)(5)(5)(4)(4)(2)(11)(23)(6)(8)(5)(2)(10)(20)(38)(20)(25)(29)(8)(7)(9)(3)(5)(16)(9)(9)4519人阅读
技术碎片(19)
J2EE开发问题
&&&&& 最近在研究J2EE开发,中间碰到不少问题,于是写下此文,用于记录这个过程,并为其他与我一样在路上的朋友提供参考,随着时间的推移,此文将不断补充完善通过Server视图启动TOMCAT提示错误:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3770)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
造成问题的原因至今不明确,我是用STS进行开发,原想将项目拆成多个MAVEN项目,总有点问题后暂时放弃又合起来了,之后就一直这样,什么CLEAN啊之类的操作都试过,一直没有解决。
从这错误的现象来看是因为找不到org.springframework.web.context.ContextLoaderListener这个类,这个类在WEB.XML配置引用。
碰到这个问题我首先想是不是因为中间折腾过几次项目,造成了编译的问题,于是执行MAVEN CLEAN,然后MAVEN INSTALL,再把SERVER删除重新来,但是问题依旧。于是我又新建一个全新项目发布到TOMCAT,一切正常,操作时发现有一个特点,如下图:
图中myproject是我出问题的项目,mytest1是我新建的测试项目,新建的项目在添加发布时多一个spring-web的JAR包依赖,于是我打开两个项止的.classpath,发现出问题的项目少了一句话
正常的项目如下
&classpathentry kind=&con& path=&org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER&&
&&&attributes&
&&&&attribute name=&maven.pomderived& value=&true&/&
&&&&attribute name=&org.ponent.dependency& value=&/WEB-INF/lib&/&
&&&/attributes&
&&/classpathentry&
问题项目如下
&classpathentry kind=&con& path=&org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER&&
&&&attributes&
&&&&attribute name=&maven.pomderived& value=&true&/&
&&&/attributes&
&&/classpathentry&
于是把&attribute name=&org.ponent.dependency& value=&/WEB-INF/lib&/&给加上,进入开STS刷新,然后再进入到图1界面,这下myproject也有了spring-web引用了。
按正常的发布流程发布,一切正常。
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [spring-mybatis.xml]: Invocation o nested exception is java.sql.SQLException: oracle.jdbc.driver.OracleDriver
&at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486)
&at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
&at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
&at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
&at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
&at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
&at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
&at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
&... 53 more
Caused by: java.sql.SQLException: oracle.jdbc.driver.OracleDriver
&at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:500)
&at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:382)
&at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
&at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
&at java.lang.reflect.Method.invoke(Method.java:601)
&at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1612)
&at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1553)
&at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)
&... 60 more
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
&at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
&at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
&at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:494)
&... 68 more
笔者在做一个MAVEN+SPRING+MYBATIS+ORACLE整合时碰到这个问题,单元测试SERVICE一切正常,但是发布到TOMCAT7时出现这个错误。
从这个错误的现象来看是ORACLE驱动的OJDBC没有一起发布,我原来在POM.XML文件是这么写的
&dependency&
&&&&groupId&com.oracle&/groupId&
&&&&artifactId&ojdbc6&/artifactId&
&&&&version&11&/version&
&&& &scope&system&/scope&
&&&&systemPath&${project.basedir}/lib/ojdbc6.jar&/systemPath&&
&&&/dependency&
其实这个问题非常明显,原因就是通过这样SYSTEMPATH方式引用造成的,其实MAVEN可以引用本地JAR包,但需要自己去单独发布,为了省事,你也可以将JAR包导入到本地库中,方法是在MAVEN的BIN目录下用命令行执行如下语句
mvn install:install-file -Dfile=E:\J2EE\jar\ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11 -Dpackaging=jar
具体的参数内容根据自己的情况修改,执行完之后再将POM.xml中的配置改成如下内容
&dependency&
&&&&groupId&com.oracle&/groupId&
&&&&artifactId&ojdbc6&/artifactId&
&&&&version&11&/version&
&&&/dependency&
至此问题解决。
Invalid classpath publish/export dependency org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7. The associated classpath container cannot be included in the published/exported module.portal-webP/portal-webClasspath
Dependency Validator Message
这个问题的出现是因今天在建立MAVEN多模块项目,中间用过一次MAVEN --&Update projects ...的操作,然后就出现。
&出现这个错误后如果仍然发布,启动TOMCAT也将如下错误
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
仔细一看跟本文的第一个问题的症状非常相似,参照第一个问题的方式未能解决。随后我拿着一个正常的MAVEN项目打开项目属性界面,发现出问题的项目有一处配置不对,通过修改改成正常项目一样问题解决,具体的修改步骤如下:
在项目中点右键,再选择Properties
选择如上图的选项,再点击ADD按钮
选择Java Build Path Entries
选择唯一的MAVEN选项,完成
完成后的结果如上图,其中我这有一个portal-core的MAVEN MODULE依赖,这个你不会有的,依照上面的步骤处理完毕问题解决。
Javascript检测错误
&当项目引入JQuery-x.x.x.min.js后Markers窗口总是提示一语法错误之类的东西,虽然不影响整个开发,但是看久了也烦。对于这种东西你是没办法修正的,要处理只能把Javascript的检测功能给关掉,关闭方法如下:
项目上右键 - Properties - Builders -JavaScript Validator去掉勾即可解决
Removing obsolete files from server...
Could not clean server of obsolete files: null
java.lang.NullPointerException
SLF4J: Failed to load class &org.slf4j.impl.StaticLoggerBinder&.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See
for further details.
[INFO] Scanning for projects...
[ERROR] The build could not read 2 projects -& [Help 1]
[ERROR]&& The project net.ntrue:portal-web:2.0.0 (E:\ntrue\platform\portal\portal-web\pom.xml) has 1 error
[ERROR]&&&& Non-parseable POM C:\Users\Administrator\.m2\repository\net\ntrue\portal\2.0.0\portal-2.0.0.pom: Expected root element 'project' but found 'html' (position: START_TAG seen \n&html&... @2:7)& @ C:\Users\Administrator\.m2\repository\net\ntrue\portal\2.0.0\portal-2.0.0.pom,
line 2, column 7 -& [Help 2]
[ERROR]&& The project net.ntrue:portal-core:2.0.0 (E:\ntrue\platform\portal\portal-core\pom.xml) has 1 error
[ERROR]&&&& Non-parseable POM C:\Users\Administrator\.m2\repository\net\ntrue\portal\2.0.0\portal-2.0.0.pom: Expected root element 'project' but found 'html' (position: START_TAG seen \n&html&... @2:7)& @ C:\Users\Administrator\.m2\repository\net\ntrue\portal\2.0.0\portal-2.0.0.pom,
line 2, column 7 -& [Help 2]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]
[ERROR] [Help 2]
这是在编写完代码准备启动TOMCAT调试时出现的错误,具体原因可能是因为我手工修改过TOMCAT下的配置文件,找了好久但没有明确到底是哪个项修改造成的,后通过删除TOMCAT目录,然后重新添加SERVER解决问题。
运行maven test时提示Failed tests:&& myproject.TestXXXController.testList(): org/junit/Assert
打开项目TARGET目录下的XML报告发现错误原因如下
java.lang.NoClassDefFoundError: org/junit/Assert
&at net.ntrue.framework.test.JControllerBase.executeAction(JControllerBase.java:97)
&at net.ntrue.portal.controller.TestBrandController.testList(TestBrandController.java:13)
Caused by: java.lang.ClassNotFoundException: org.junit.Assert
&at java.net.URLClassLoader$1.run(Unknown Source)
&at java.net.URLClassLoader$1.run(Unknown Source)
&at java.security.AccessController.doPrivileged(Native Method)
&at java.net.URLClassLoader.findClass(Unknown Source)
&at java.lang.ClassLoader.loadClass(Unknown Source)
&at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
&at java.lang.ClassLoader.loadClass(Unknown Source)
&... 20 more
要说清这个问题得从MAVEN多项目的结构开始,我的项目结果是这样的
|-Framework 公共类库,独立的maven 项目,有两个用于测试用的抽象基类
&&&& |-portal-parent& 一个MAVEN的PARENT项目,本身没有程序逻辑,只负责公共的POM依赖定义,junit的依赖声明也在这里
&&&& |-portal-web&& 纯WEB的JSP页面
&&&& |-portal-core&& WEB类除JSP之外的都在这里,内部几乎所有的类都有单元测试,包括SERVICE和CONTROLLER
在portal-core运行maven test时几乎所有的测试用例均错误,后猜测可能的原因是因为加入了framework的引用,而framework里将junit声明为test
后将junit的声明由portal-parent中移到portal-core项目的POM.XML中问题解决,具体原因暂没了解透
修改后的portal-core项目POM.XML内容如下
&dependencies&
&&&dependency&
&&&&groupId&net.ntrue&/groupId&
&&&&artifactId&framework&/artifactId&
&&&&version&1.0.0&/version&
&&&/dependency&
&&&dependency&
&&&&groupId&junit&/groupId&
&&&&artifactId&junit&/artifactId&
&&&&version&4.11&/version&
&&&&scope&test&/scope&
&&&/dependency&
&&/dependencies&
Spring MVC JSON请求异常
&&&&&&& 异常的内容有两段,当使用了@RequestBody时提示如下错误
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/charset=UTF-8' not supported
&at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.readWithMessageConverters(HandlerMethodInvoker.java:645)
&at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveRequestBody(HandlerMethodInvoker.java:605)
&at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:354)
&at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171)
&at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:439)
&at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:427)
&at net.ntrue.framework.test.JControllerBase.excuteAction(JControllerBase.java:74)
&at net.ntrue.portal.webservice.TestService.TestJsonWrite(TestService.java:63)
&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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
&at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
&at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
&at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
&at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
&at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
&at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
&at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
&at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
&at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
&at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
&at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
&at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
&at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
&at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
&at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
&at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
&at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
&at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
&at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
&&&&&&&& 使用@ResponseBody时反馈以下错误
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
&at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.writeWithMessageConverters(AnnotationMethodHandlerAdapter.java:1054)
&at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.handleResponseBody(AnnotationMethodHandlerAdapter.java:994)
&at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker.getModelAndView(AnnotationMethodHandlerAdapter.java:943)
&at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440)
&at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:427)
&at net.ntrue.framework.test.JControllerBase.excuteAction(JControllerBase.java:74)
&at net.ntrue.portal.webservice.TestService.TestJsonWrite(TestService.java:63)
&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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
&at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
&at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
&at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
&at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
&at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
&at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
&at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
&at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
&at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
&at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
&at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
&at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
&at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
&at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
&at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
&at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
&at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
&at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
&at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
从这两段错误可以很明显看出是不知道该用哪个CONVERT类去处理请求和响应的数据,之前认真研究过SPRING MVC,其实SPRING MVC处理这种JSON格式的传参和返回是非常简单的,按照书上和网上的方法尝试几次仍未解决,偶然发现是因为SPRING MVC的配置文件上对于org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter这个BEAN的描述重复了,其中一个未添加MappingJacksonHttpMessageConverter的引用
错误时的XML配置如下
&bean id=&mappingJacksonHttpMessageConverter&
&&class=&org.springframework.http.converter.json.MappingJacksonHttpMessageConverter&&
&&&property name=&supportedMediaTypes&&
&&&&&value&application/ charset=UTF-8&/value&
&&&&&value&text/charset=UTF-8&/value&
&&&&/list&
&&&/property&
&&bean id=&AnnotationMethodHandlerAdapter&
&&class=&org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter&&
&&!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --&
&&class=&org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter&&
&&&property name=&messageConverters&&
&&&&&ref bean=&mappingJacksonHttpMessageConverter& /&&!-- json转换器 --&
&&&&/list&
&&&/property&
去掉中间的
&&bean id=&AnnotationMethodHandlerAdapter&
&&class=&org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter&&
之后一切正常
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:54173次
排名:千里之外
原创:14篇
转载:14篇
(1)(2)(1)(1)(1)(1)(1)(1)(1)(1)(1)(2)(2)(6)(3)(1)(2)

我要回帖

更多关于 sts maven springmvc 的文章

 

随机推荐