- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在Eclipse中使用Servlet进行开发,但是它说javax.servlet
包无法解析。如何将javax.servlet
包添加到我的Eclipse项目?
最佳答案
确保您使用了正确的Eclipse和Server
确保您至少使用Eclipse IDE for Java EE developers(对于EE)。它包含用于创建动态Web项目并轻松集成servlet容器的开发工具(这些工具是WTP的一部分)。如果您已经具有Java的Eclipse IDE(不带EE),并且手动安装了一些与EE相关的插件,那么可能是操作不正确。您最好将其丢弃,并获取真正的Java EE Eclipse IDE。
您还需要确保您的机器上已经安装了servlet容器,该容器至少实现了与生产环境中的servlet容器相同的Servlet API版本,例如Apache Tomcat,Oracle GlassFish,JBoss AS / WildFly,等。通常,只需下载ZIP文件并将其解压缩就足够了。如果是Tomcat,请不要下载EXE格式,仅适用于基于Windows的生产环境。另请参阅Several ports (8005, 8080, 8009) required by Tomcat Server at localhost are already in use。
Servlet容器是Servlet API的具体实现。请注意,Oracle.com上的Java EE SDK下载基本上包含GlassFish。因此,如果您碰巧已经下载了Java EE SDK,那么您基本上已经有了GlassFish。还应注意,例如GlassFish和JBoss AS / WildFly不仅是一个servlet容器,它们还支持JSF,EJB,JPA和所有其他Java EE幻想。另请参阅What exactly is Java EE?
在Eclipse中集成Server并将其与Project关联
在机器上安装了Eclipse for Java EE和servletcontainer之后,请在Eclipse中执行以下步骤:
在Eclipse中集成servletcontainer
一种。通过服务器视图
在底部框中打开“服务器”视图。
右键单击那里,然后选择“新建”>“服务器”。
选择适当的servlet容器品牌和版本,并逐步完成向导。
b。或者,通过Eclipse首选项
打开窗口>首选项>服务器>运行时环境。
您可以在此处添加,编辑和删除服务器。
将服务器与项目关联
一种。在新项目中
打开左侧的Project Navigator / Explorer。
右键单击那里,然后选择“新建”>“项目”,然后在菜单“ Web”>“ Dynamic Web Project”中。
在向导中,将目标运行时设置为集成服务器。
b。或者,在现有项目中
右键单击项目,然后选择属性。
在“目标运行时”部分中,选择集成服务器。
无论哪种方式,Eclipse都将自动在构建路径中使用servlet容器的库。这样,您将能够导入和使用Servlet API。
切勿随身携带服务器特定的松散JAR文件
无论如何,您都无需在项目的“构建路径”属性中随意摆弄。首先,您绝对不应该手动复制/下载/移动/包含各个servlet容器特定的库,例如servlet-api.jar
,jsp-api.jar
,el-api.jar
,j2ee.jar
,javaee.jar
等。这只会导致将来的可移植性,兼容性,类路径和可维护性方面的问题,因为将Web应用程序部署到与最初从那些库/版本库获取的版本/版本不同的Servlet容器中时,它将无法工作。
如果您使用的是Maven,则需要绝对确保目标运行时已经提供的servlet容器特定的库被标记为<scope>provided</scope>
。
这是一些典型的异常,当您用Servletcontainer特定的库乱扔/WEB-INF/lib
甚至/JRE/lib
,/JRE/lib/ext
等时,会很粗心地尝试解决编译错误:
java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit
java.lang.NoClassDefFoundError: javax/el/ELResolver
java.lang.NoSuchFieldError: IS_DIR
java.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
org.apache.jasper.JasperException: The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
java.lang.VerifyError: (class: org/apache/jasper/runtime/JspApplicationContextImpl, method: createELResolver signature: ()Ljavax/el/ELResolver;) Incompatible argument to function
jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
关于java - 如何在Eclipse项目中导入javax.servlet API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30431754/
我是一名优秀的程序员,十分优秀!