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

<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
问题三: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>

解决: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">
03-12 403
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值