引用:http://hi.baidu.com/kohsqqtdmgafosr/item/d6ef11b40da41140ba0e12e7
spring和hibernate集成项目,在部署的时候出了很多问题.
我用的是jdk1.6、Eclipse3.3和MyEclipse6.0,服务器tomcat6.0,数据库MySQL1.5.
问题一:类型cannot be resolved
刚import项目时发现有些类或者一些类型出现cannot be resolved的现象,经过反复的部署才发现,是版本不一样问题引起的。首先在项目名上右键选properties>>Java Build Path,点JRE System Libraty(版本号)>>Edit,选择Workplace default JRE即可。如果在Java Build Path中没有JRE System Libraty(版本号),就点右边的Add Library>>JRE System Library,选择Workplace default JRE即可。
问题二:找不到要部署的项目
刚import进来的项目,点击Deploy J2EE Project to servert时看不到项目,这是因为Tomcat还没有认为你转移过来的项目是Web Project。此时只要为我们的项目添加Web Project Capabilities就可以了。就是在项目名上右键选properties>>Myeclispe>>Web Context-root写入发布的项目名(建议:项目名与发布的项目名相同).就会在项目文件下生成.mymetadata文件,就能部署项目了
问题三:修改路径
经过上面一步项目终于可以在Tomcat下Deploy了。但是还是有问题,Deploy的项目有点不对劲。这是因为MyEclipse默认的Web- Root路径是WebRoot而现在的项目却是WebContent的原因。但是改这个目录有点麻烦,我在MyEclispe的菜单上找了很久都找不到地方更改,找到了Web-Root的目录的显示位置,但那个输入框却是只读的,没办法改。最后终于给我找到了更改的地方。打开项目的根目录,在些目录下有一个.mymetadata的文件,打开此文件可以看到如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<project-module
type="WEB"
name="atcs3"
id="myeclipse.1173497999562"
context-root="/atcs3"
j2ee-spec="1.4"
archive="atcs3.war">
<attributes>
<attribute name="webrootdir" value="<prjroot>" />
</attributes>
</project-module>
可以看到转移过来的项目的webrootdir就是项目的根目录,把value的值改成"WebContent"就大功告成了。
问题四:Deployment failure on Tomcat 6.x
在部署项目时,出现了Deployment failure on Tomcat 6.x. Could not copy all resources to F:\tomcat6.0\webapps\book. If a file is locked, you can wait until the lock times out to redeploy, or stop the server and redeploy, or manually remove the deployment at F:\tomcat6.0\webapps\book这样的错误,原因是因为在项目的根目录下的.classpsth中的jar和项目中的jar包不一致,一个一个对照,找出不用的删了就可以了。
问题五:部署完后在浏览器不能显示
首先在项目名上右键选properties>>Java Build Path里有server library[apache tomcat6.0](unbound),把它删了就可以了。
问题六:java.lang.ClassNotFoundExceptio
出现java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV原因是因为少导入包standard.jar(支持jstl、el)或者是 servlet-api.jar这两个包,至于是哪一个或者是两个,就看缺少那个了,把它放在WEB-INF/LIB下就可以了。
问题七:log4j
log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.出现这个时因为没有没有build.properties,在hibernate包中找到这个,把它复制到WEB-INF/CLASS 下面就不会出现这个问题了。
问题八:beanCreationException
Caused by: java.lang.NoClassDefFoundError: org.hibernate.cfg.Configuration,这是因为没有找到org.hibernate.cfg.Configuration,有可能是没有引入hibernate.jar引起的,更有可能是版本问题引起的,最好是下载最新版本的hibernate.jar加到项目里,这样就好用了