Maven web project & TST工具体验

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


org.aspectj
aspectjweaver
1.8.9

问题二: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包解决

mysql
mysql-connector-java
5.1.26



问题四:运行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
问题三:maven pom中引入jstl, standard 

http://java.sun.com/jstl/sql is already defined 等各种配置冲突,下面提供一种POM配置

            javax.servlet.jsp.jstl
            jstl-api
            1.2
           
               
                    javax.servlet
                    servlet-api
               

               
                    javax.servlet.jsp
                    jsp-api
               

           

       

 
       
            org.glassfish.web
            jstl-impl
            1.2
           
               
                    javax.servlet
                    servlet-api
               

               
                    javax.servlet.jsp
                    jsp-api
               

               
                    javax.servlet.jsp.jstl
                    jstl-api
               

           

       


☆ClassFormatException: Invalid byte tag in constant pool
解决:web.xml中
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">

你可能感兴趣的:(Maven web project & TST工具体验)