struts1.3.8与hibernate3.2.5整合所遇到的问题

解决Eclipse环境变量中的Web App Libraries下没有jar包的问题

分类: 疑难问题2011-11-10 14:47 1154人阅读 评论(0) 收藏 举报

     今天帮同事调一个项目,里面满是类编译错误,一看就是相应的jar包没有引入,打开build path->configure build path,发现Web App Libraries下没有任何jar包。理应Web App Libraries下包含工程目录\WebContent\WEB-INF\lib下的所有jar包,于是查看了这个目录,发现这个项目的包目录是这样的:工程目录\src\main\sample\WEB-INF\lib,问题显然就出在这里了,找了半天,没有找到在哪里配置这个路径,最后,在工程目录的.settings文件夹中org.eclipse.wst.common.component找到了相关配置,原来的配置是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="test">
        <wb-resource deploy-path="/" source-path="/WebContent"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
        <property name="context-root" value="test"/>
        <property name="java-output-path" value="build/classes"/>
    </wb-module>
</project-modules>

修改后变为:

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="test">
        <wb-resource deploy-path="/" source-path="/src/main/sample/"/>
        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
        <property name="context-root" value="test"/>
        <property name="java-output-path" value="build/classes"/>
    </wb-module>
</project-modules>

 

 

<此方法可以成功解决WEB-INF/lib/servlet-api.jar not loaded.>20129

 

 启动tomcat后,控制台输出信息:WEB-INF/lib/servlet-api.jar not loaded. See Servlet Spec 2.3, section 9.7.2。网上提供的方法一般是:保证WEB-INF/libtomcat6.0 lib下的JAR包与项目的web-inf/lib没有重复的包即可。所以,将项目的web-inf/lib下的servlet-api.jar删掉就OK了。

 

      但是,如果项目中存在使用servlet-api.jar的类怎么办呢?删掉servlet-api.jar,源程序无法编译。这时,有另一个办法可以解决这样的冲突问题:把Tomcat6.0tlib目录下的名为servlet-api.jar的包拷贝至你的java安装目录下jre/lib/ext下就可以了。在myeclipse7.0中再次启动tomcat6.0就不会再出现前面的输出信息了。

 

 

<really ?! >

 

其实,对于两者的包冲突问题,都可以采用类似的方法来解决。

 

<really ?! >

 

 

 

 

另外:

 

 

 

把 webapps\maintenance\WEB-INF\lib\ 

下面的 servlet-api.jar 删掉吧! tomcat自己有,不需要你提供! 

顺便看看其他的jar, 和 tomcat\lib 目录比较一下,tomcat已经有的,就别留着了!

 

 

eclipse下启动tomcat出现Setting property 'source' to 'org.eclipse.jst.jee.server: '错误的解决办法 

 

eclipse中启动tomcat时出现Setting property 'source' to 'org.eclipse.jst.jee.server:你的站点名'   did not find a matching property错误

 

 

 

解决办法:

 

1、在server控制台内,在服务器上点右键--属性

 

2general选项卡中点switch location

 

这时,location变为:/servers/tomcat6.0 server at localhost.server

 

3、在project explore中找到tomcat项目--Tomcat v6.0 Server at localhost.server  这个文件 ,双击打开 

 

4、在最下面的server option里选中publis module context to separate xml file.保存。(保存时要先停止服务器)

 

 

 

问题完美解决。

<href="http://www.ibm.com/developerworks/opensource/library/os-eclipse-tomcat/">http://www.ibm.com/developerworks/opensource/library/os-eclipse-tomcat/

 

二○一二年九月九日星期日

http://www.ibm.com/developerworks/opensource/library/os-eclipse-tomcat/

 

一个小小的错误浪费了两天(911-12)2012912日星期三0时4323

 

原因所致DaoImplBase<T> 

 

 

更改后

 

 

分析原因为:

1、将Class<T> clazz;这个接受子类的局部变量声明为了 私有的(private) 本应该为受保护的(protectedprotected Class<T> clazz;这样做类型转换的时候就不需要用泛型clazz=(Class)<T> pt.getActualTypeArguments()[0];

2、解决 办法 :

更改 变量属性为受保护的 protected Class<T> clazz;

此处不需要用泛型接受 clazz = (Class) pt.getActualTypeArguments()[0];

经过了一番周折开始老是怀疑jar包问题,最开始总是不能加载user.hbm.xml 实体映射文件

后来通过Debug 断点测试发现在filter 过滤器中就抛出异常了 ,于是继续跟踪到 dao层的impl实现类 dao层继承的是daobase 接口的方法 ,跟踪进去发现程序不能进入save()方法,顾数据不能保存。还有可能是引用了空对象(未关联Tomcat源码所致)

 

 

 

 

 

posted on 2012-09-12 01:27  mcgee5201314  阅读(174)  评论(0编辑  收藏  举报