1:刚创建的eclipse无法import javax.servlet.http.*和import org.apache.*
这是由于缺少两个文件。
在Eclipse中添加Servlet-api.jar的方法2009年04月12日 星期日 14:49方法一:
点击窗口->***项->java->构建路径->类路径变量->新建;
将你的tomcat目录下的common/lib/servlet.jar加进来。
如果你建立了一个tomcatproject它会自动加进来的,如果没有的话你也可以通过手动来加入,选中你刚才建的项目右击->属性->java构建路径->添加变量;将你刚才加入的servlet.jar变量加进来就行了。
如何在Eclipse中添加Servlet-api.jar的方法
正确的加载servlet-api.jar的方法如下:
1:右击项目工程名称
2:Properties
3: Jvav Build Path
4: Libraries
5: Add External JARS
6:找到“C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib\servlet-api.jar”和jsp-api.jar
7:添加既可
方法二:
窗口->***项->java -> 已安装的jre -> 编辑 -> 添加外部的jar (把servlet-api.jar加进来就ok了)
2:在eclipse中编译代码时遇上的"Building workspace"
Project->Build automatically自动构建去掉就可以了
3:org.apache.struts2.jsf.FacesSetupInterceptor、java.lang.LinkageError: loader constraint violation2009-04-19 21:05开始学习java web开发了,看到blog上有一篇很好的文章“Struts+Spring+Hibernate整合入门详解 Struts+Spring+Hibernate整合入门详解 ”http://blog.csdn.net/princewong/archive/2007/08/12/1739598.aspx ,但是在eclipse中运行文章中的例子时却遇到了很多问题,这些问题在google上也没有找到什么解决的办法。通过自己的尝试终于解决了,这里把问题的解决办法记录下来,以后再分析其中的具体原因吧。
软件环境(和文章中提到的大体相同,只是版本新一些):
Java 6.0
eclipse 3.3.1
Struts 2.0.11
Spring 2.0.7
Hibernate 3.2.5
按照例子进行操作,运行例子后,eclipse的Console中出现两处错误。
1、严重: Actual exception
Caught Exception while registering Interceptor class org.apache.struts2.jsf.FacesSetupInterceptor - interceptor - jar:file:/F:/2.Eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Test_1_Struts_Spring_Hibernate/WEB-INF/lib/struts2-jsf-plugin-2.0.11.jar!/struts-plugin.xml:36:97
at com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:206)
at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:57)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:905)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:743)
......
2、严重: Servlet.service() for servlet jsp threw exception
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/login_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
at org.apache.jsp.login_jsp._jspInit(login_jsp.java:22)
at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329) ......
通 过网上搜集资料和自己探索,我将“项目工程目录\WebContent\WEB-INF\lib”下的el-api.jar和struts2-jsf- plugin-2.0.11.jar删除了,但是运行后依然报错。无计可施之时,突然发现上面问题1中有一个奇怪的目录:F:/2.Eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Test_1_Struts_Spring_Hibernate/WEB-INF/lib/struts2-jsf-plugin-2.0.11.jar!/struts-plugin.xml:36:97
( 我的项目工程目录是F:\2.Eclipse\workspace\Test_1_Struts_Spring_Hibernate)
进入电脑一看,果然在eclipse的workspace中有这样一个目录.metadate,里面居然有所有的项目工程目录中的jar文件,应该是编译的时候自动复制过去的吧。而且虽然我之前将el-api.jar和struts2-jsf-plugin-2.0.11.jar删除了,但是在F:/2.Eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Test_1_Struts_Spring_Hibernate/WEB-INF/lib/ 下仍然还有这2个jar文件。难道是这里的两个jar文件作怪。
删除此目录下的el-api.jar文件后,错误2消失。
删除此目录下的struts2-jsf-plugin-2.0.11.jar文件后,错误1消失。
例子运行正常!问题解决!
总结:
1、看来这两个jar文件是不需要的。
2、workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/目录下会有当前wenb app的副本,注意维护一致性。
您正在阅读的是:Eclipse配置的备注
【编辑推荐】