Spring mvc 框架总体搭建过程异常总结
今天下午总算有个开头了,把Java1234小峰老师的spring视频看完了,受益良多。
今天照着搭建自己的工程,使用的spring mvc 框架,整合过程颇费一番心思啊,各种错误,不过还好,一切顺利,把异常收集起来将是一份财富。
第一个异常是context 上下文不能初始化,spring的监听器启动不了,于是查web.xml是否有错,但是没发现,百度了一下,发现有些spring mvc的jar包和spring本身的jar包不同,因此,加了几个spring的核心包后,报出来aspectjweaver和aspect不能兼容问题,百度一下,果断采用下面的方法:
删除aspectjweaver.jar和aspect.jar
加入aspectjweaver-1.6.9.jar和aspectj-1.6.10.jar
第二个异常是在表字段映射问题上,在查找Hibernate自动映射表的问题上,下面这段语句则是至关重要的:
<prop key="hibernate.hbm2ddl.auto">update</prop>
在项目自动启动的时候,该语句会扫描entity类,并在数据库中创建表,如果表更改了,则更新,否则不更新,具体的以后再说。
hibernate版本更新了 mappedBy和JoinTable,joincolumn冲突
解决方法:将mappedBy删除
@ManyToMany( mappedBy="",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JoinTable(name="EP_ROLE_POWER",
joinColumns=@JoinColumn(name="powerID"), inverseJoinColumns=@JoinColumn(name="roleID")
)
第三个异常,到这个异常了,说明没有什么大的阻碍了,
下面这个异常明显说是字段重复,将entity类里的重复字段删去即可。
Caused by: org.hibernate.MappingException:
Repeated column in mapping for entity: cn.com.hrManager.entity.EP_Stuffinfo column:
stuffId (should be mapped with insert="false" update="false")
下面这个解决方案出现在第二个异常上,下面两个注解应该使用了mappedBy属性了。
<many-to-many,many-to-one
因为many端已经受控了,many端不能自己做更新、插入操作,必须由控制端来操作。
可以把many端的映射定义去掉就可以,就不用增加这2个配置了。
另外还有一个异常由于在spring的XML配置上比较乱而产生的,在spring整合Hibernate中,需要配置sessionFactory,因此需要一个数据源,当数据源出现重复的时候也会报异常:
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="dataSource" ref=”dataSource”></property>
当配置中有上面两个properties的时候会出现下面的异常:
Configuration problem: Multiple 'property' definitions for property 'dataSource'
所以要将多余的删去。