TST工具体验Spring+MyBatis整合过程中遇到的问题解决
环境:
Win7 64bit/Spring Tool Suite Version: 3.3.0.RELEASE/JDK1.7/Tomcat 7/
STS对利用maven管理项目来说非常便捷,
创建项目选中Maven Project-->Select An Catalogs(Filter 通过webapp过滤后选择 GroupID 为org.apache.maven.archetypes那条)
设置文件编码
打开STS安装目录下STS.ini文件,在文件尾添加-Dfile.encoding=UTF-8
STS3.3默认使用服务VMware vFabric tc Server, 可以添加Tomcat(Preference->Server->Runtime Environments :Add)
问题一:ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
问题二:nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext
问题三:java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/Driver : Unsupported major.minor version 52.0
首先确认是否已经引入了mysql-connector-java包
我出现的问题并不是没有引入包,而是利用mybatis-generator-core生成dao,mapper时利用的mysql-connector-java包和项目中引入的包版本不一致,
可能两个版本编译的jdk版本不同导致的,修改为统一版本号jar包解决
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
问题四:运行junit测试报javax/servlet/ServletContext : Unsupported major.minor version 52.0错误
①,检查是否引入servlet-api包,没有则引入
②,检查STS项目jdk版本和tomcat jre版本是否一致,不一致改为相同版本
③,servlet-api包版本是否引入正确
④,其它待补充
问题五:mysql Access denied for user \'root\'@\'localhost\'”
首先确认mysql 用户名和密码设置是否正确,如果正确还出现这个问题,我的解决办法是重设mysql登陆密码
cmd->mysql -h localhost -u root -p testDb;
//之后需要在dos窗口下输入密码
//重设密码
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('newpass');
问题解决
Win7 64bit/Spring Tool Suite Version: 3.3.0.RELEASE/JDK1.7/Tomcat 7/
STS对利用maven管理项目来说非常便捷,
创建项目选中Maven Project-->Select An Catalogs(Filter 通过webapp过滤后选择 GroupID 为org.apache.maven.archetypes那条)
设置文件编码
打开STS安装目录下STS.ini文件,在文件尾添加-Dfile.encoding=UTF-8
STS3.3默认使用服务VMware vFabric tc Server, 可以添加Tomcat(Preference->Server->Runtime Environments :Add)
问题一:ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
问题二:nested exception is java.lang.NoClassDefFoundError: javax/servlet/ServletContext
问题三:java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/Driver : Unsupported major.minor version 52.0
首先确认是否已经引入了mysql-connector-java包
我出现的问题并不是没有引入包,而是利用mybatis-generator-core生成dao,mapper时利用的mysql-connector-java包和项目中引入的包版本不一致,
可能两个版本编译的jdk版本不同导致的,修改为统一版本号jar包解决
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
问题四:运行junit测试报javax/servlet/ServletContext : Unsupported major.minor version 52.0错误
①,检查是否引入servlet-api包,没有则引入
②,检查STS项目jdk版本和tomcat jre版本是否一致,不一致改为相同版本
③,servlet-api包版本是否引入正确
④,其它待补充
问题五:mysql Access denied for user \'root\'@\'localhost\'”
首先确认mysql 用户名和密码设置是否正确,如果正确还出现这个问题,我的解决办法是重设mysql登陆密码
cmd->mysql -h localhost -u root -p testDb;
//之后需要在dos窗口下输入密码
//重设密码
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('newpass');
问题解决
同样关于maven的使用,在myEclipse上也尝试了一次.果然再次遇到不少问题
环境:
Win7 64bit/MyEclipse10/JDK1.7/Tomcat 7/
问题一:Please ensure you are using JDK 1.4 or above and...,
产生原因我这里是因为MyEclipse JRE版本和 maven或者引用的jar包版本不一致,我本机的Java环境是1.7,MyEclipse最高默认只能选到1.6
这时需要新增一个1.7版本的.步骤如下:
Window -> preferences -> Java -> installed jres,点击add,新加一个环境,设为默认环境,注意location选择为你的jdk目录。
之后,在你的项目上右击,build path -> configure build path,编辑JRE System Library,选择刚才新建的默认环境
(有时java.lang.UnsupportedClassVersionError这个错误大概也是JDK版本不同造成的)
问题二:BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
产生原因大致是因为MyEclipse默认Default output folder是在project.../WEB-INFO/...,而maven项目的默认output folder是在target/classes下面.
我的解决办法:项目右键->properties->Java Build Path 修改项目的默认输出目录 为target/classes
环境:
Win7 64bit/MyEclipse10/JDK1.7/Tomcat 7/
问题一:Please ensure you are using JDK 1.4 or above and...,
产生原因我这里是因为MyEclipse JRE版本和 maven或者引用的jar包版本不一致,我本机的Java环境是1.7,MyEclipse最高默认只能选到1.6
这时需要新增一个1.7版本的.步骤如下:
Window -> preferences -> Java -> installed jres,点击add,新加一个环境,设为默认环境,注意location选择为你的jdk目录。
之后,在你的项目上右击,build path -> configure build path,编辑JRE System Library,选择刚才新建的默认环境
(有时java.lang.UnsupportedClassVersionError这个错误大概也是JDK版本不同造成的)
问题二:BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
产生原因大致是因为MyEclipse默认Default output folder是在project.../WEB-INFO/...,而maven项目的默认output folder是在target/classes下面.
我的解决办法:项目右键->properties->Java Build Path 修改项目的默认输出目录 为target/classes
问题三:maven pom中引入jstl, standard
http://java.sun.com/jstl/sql is already defined 等各种配置冲突,下面提供一种POM配置
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
</exclusion>
</exclusions>
</dependency>
http://java.sun.com/jstl/sql is already defined 等各种配置冲突,下面提供一种POM配置
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jstl-impl</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
</exclusion>
</exclusions>
</dependency>
解决:web.xml中
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" metadata-complete="true">
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" metadata-complete="true">