编译错误:包javax.servlet.jsp不存在

时间:2015-03-06 10:06:40

标签: java jsp servlets

首先,这不是一个重复的帖子,因为:

1.-我正在建造没有任何IDE,Ant或Maven。

2.-我已经找过它,并尝试了Compile error: package javax.servlet does not exist中给出的解决方案。

然而,我的问题仍然存在。

基本上,我正在尝试导入:

import javax.servlet.jsp.JspWriter;

但是在编译时我得到了:

./src/tfg/lti/UI/Painter.java:4: error: package javax.servlet.jsp does not exist import javax.servlet.jsp.JspWriter

我正在编写类,就像下一行中的第一行一样,在寻找解决方案后,我尝试了下一个,因为用户说链接文件给他带来麻烦,需要指向真实文件:

javac -Xlint -d ./Server/WEB-INF/classes/ -cp ./Server/WEB-INF/classes/:./Server/WEB-INF/jar/ ./src/tfg/lti/Config/Setup.java

javac -Xlint -d ./Server/WEB-INF/classes/ -cp ./Server/WEB-INF/classes/:./Server/WEB-INF/jar/:/usr/share/tomcat6/lib/servlet-api.jar ./src/tfg/lti/Config/Setup.java

javac -Xlint -d ./Server/WEB-INF/classes/ -cp ./Server/WEB-INF/classes/:./Server/WEB-INF/jar/:/usr/share/java/servlet-api.jar ./src/tfg/lti/Config/Setup.java

javac -Xlint -d ./Server/WEB-INF/classes/ -cp ./Server/WEB-INF/classes/:./Server/WEB-INF/jar/:/usr/share/java/servlet-api-2.5.jar ./src/tfg/lti/Config/Setup.java

javac -Xlint -d ./Server/WEB-INF/classes/ -cp ./Server/WEB-INF/classes/:./Server/WEB-INF/jar/:/usr/share/java/servlet-api-2.4.jar ./src/tfg/lti/Config/Setup.java

正如您所看到的,我尝试使用所有posibble链接到我用于包的文件,但我仍然在编译时获得错误。在那里您可以快速查看文件:

ll /usr/share/tomcat6/lib/ | grep servlet
lrwxrwxrwx 1 root root   30 jul 24  2014 servlet-api.jar -> ../../java/servlet-api-2.5.jar

ll /usr/share/java/ | grep servlet
-rw-r--r--   1 root root    93251 oct 22  2011 servlet-api-2.4.jar
-rw-r--r--   1 root root    88360 jul 24  2014 servlet-api-2.5.jar
lrwxrwxrwx   1 root root       19 oct 22  2011 servlet-api.jar -> servlet-api-2.4.jar

有什么想法吗?

提前谢谢

更新:由于Albert告诉我在classpath中使用jsp-api,我尝试了以下方法:

javac -Xlint -d ./Server/WEB-INF/classes/ -cp ./Server/WEB-INF/classes/:./Server/WEB-INF/jar/:/usr/share/tomcat6/lib/servlet-api.jar:/usr/share/tomcat6/lib/jsp-api.jar ./src/tfg/lti/Config/Setup.java
javac -Xlint -d ./Server/WEB-INF/classes/ -cp ./Server/WEB-INF/classes/:./Server/WEB-INF/jar/:/usr/share/java/servlet-api-2.4.jar:/usr/share/java/jsp-api-2.1.jar ./src/tfg/lti/Config/Setup.java

结果相同。 jsp-api文件可供我使用:

ll /usr/share/tomcat6/lib/ | grep jsp-api
lrwxrwxrwx 1 root root   26 jul 24  2014 jsp-api.jar -> ../../java/jsp-api-2.1.jar

更新2 :添加jsp-api.jar包含的内容(你是对的Albert,JspWriter在里面)。添加一些代码(导入等等)。

jsp-api-2.1.jar 内容: jsp-api-2.1.jar content

提供错误的类的代码:

进口:

import java.util.Date;
import javax.servlet.jsp.JspWriter;
import java.io.IOException;
import tfg.lti.Config.TextFileWorker;

第一个函数,它调用使用JspWriter的函数:

public void BuildUI(boolean periodEnabled, Date nextDeliver, 
        String nextDeliveryTitle, String path, JspWriter webWriter)

要求使用该功能:

BuildLoadUI(nextDeliveryTitle, path, webWriter);

我需要工作的目标函数的一部分:

private void BuildLoadUI(String nextDeliveryTitle, String path,
                                JspWriter webWriter) throws IOException
{

    TextFileWorker Reader = new TextFileWorker();
    String[] fileString;

    webWriter.print("<h2>Evaluación - " + nextDeliveryTitle + "</h2>" + '\n');

2 个答案:

答案 0 :(得分:2)

我认为您错过了在lib/jsp-api.jar中添加classpath,这是这些课程的所在地。

答案 1 :(得分:0)

如果您使用的是maven,请将其添加到:

<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
</dependency>

其中版本应与存储库

中的版本匹配