Java项目。 JspWriter的问题

时间:2011-08-09 19:38:31

标签: java eclipse jsp tomcat

我正在尝试将一些旧的JSP Web项目导入到eclipse中。我对java和eclipse的体验远远不够。

在其中一个jsp文件中,我遇到错误:
导入javax.servlet.jsp.JspWriter无法解析

代码:

<%@ page import="org.apache.axiom.om.OMAbstractFactory,
             org.apache.axiom.om.OMElement,
             org.apache.axiom.om.OMFactory,
             org.apache.axiom.om.OMNamespace,
             org.apache.axis2.AxisFault,
             org.apache.axis2.Constants,
             org.apache.axis2.addressing.EndpointReference,
             org.apache.axis2.client.Options,
             org.apache.axis2.client.ServiceClient,
             org.apache.axis2.context.ConfigurationContext,
             org.apache.axis2.context.ConfigurationContextFactory,
             javax.servlet.ServletContext,
             javax.servlet.http.HttpServletRequest,
             javax.servlet.http.HttpServletResponse,
             javax.servlet.jsp.JspWriter,                   <- Problem is HERE
             javax.xml.parsers.SAXParser,
             javax.xml.parsers.SAXParserFactory"
     session="false" %>

当然,在我引用JspWriter的任何其他地方,我都会遇到同样的错误。

我查看了Java Build Path,我有以下内容:
1)servlet-api.jar - C:\ Program Files ...
2)耳朵图书馆
3)JRE系统库(jdk1.6.0_25)
4)Web App Libraries

我曾经为Apache Tomcat 6.0库提供了一个未绑定的项目,所以我将其删除了。我试图添加它但不能。当我点击添加库&gt;服务器运行时我得到一个新窗口说:“选择要添加到类路径的运行时”,但没有什么可以选择。

我已安装:适用于Web开发人员的Eclipse Java EE IDE,安装了Apache Tomcat(6.0),最新版本的Ant和Windows 7 64位。

有什么想法吗?

感谢。

3 个答案:

答案 0 :(得分:21)

  

导入javax.servlet.jsp.JspWriter无法解析

对于Tomcat,它是jsp-api.jar文件的一部分。但是,手动将此文件添加到构建路径,就像您对servlet-api.jar所做的那样,这不是正确的方法!它会使您的webapp 不可移植到其他目标运行时(读取:servletcontainers)。即您的webapp仅与Tomcat 6.0兼容,但与Tomcat 7,Glassfish,JBoss AS等其他容器品牌/版本不兼容。


  

我查看了Java Build Path,我有以下内容:

     

1)servlet-api.jar - C:\ Program Files ...

删除这个。它只会与您即将配置的任何目标运行时发生冲突。


  

我曾经为Apache Tomcat 6.0库提供了一个未绑定的项目,所以我将其删除了。我试图添加它但不能。当我点击添加库&gt;服务器运行时我得到一个新窗口说:“选择要添加到类路径的运行时”,但没有什么可以选择。

转到Eclipse中的 Servers 视图。右键单击它并选择 New 。选择适当的servletcontainer品牌和版本,然后浏览向导。现在你在Eclipse中有了一个目标运行时。

然后,在项目的属性中,转到 Targeted Runtimes 并在其中选择服务器。没有别的事情需要做。 Eclipse将处理剩余的魔法。

另见:

答案 1 :(得分:2)

javax.servlet.jsp.JspWriter将不会出现在您的Tomcat发行版的servlet-api.jar中。相反,它通常出现在jsp-api.jar文件中。

您应该将Apache Tomcat 6 Server Runtime重新绑定到项目的类路径中,以便Tomcat 6提供的所有JAR再次可用。未绑定的Tomcat 6服务器运行时除了通知您已复制其类路径条目在原始Eclipse工作区中有效或可能有效的Eclipse项目之外,没有其他用途。

要将Apache Tomcat 6 Server重新引入项目的类路径,首先使用现有的Tomcat 6安装在Eclipse中定义Server Runtime。稍后,在项目的构建路径中将Server Runtime添加为库。

答案 2 :(得分:0)

由于错误只出现在“javax.servlet.jsp.JspWriter”中,我首先要去检查这个类实际存在于你放在项目类路径中的jar中。此外,在Eclipse Java EE中创建具有所需构面的新动态Web项目并导入源文件也不是一个坏主意。