0

我有一个项目,我使用 start.HTML 页面来调用 javascript 调用,该调用又调用 java servlet Enquiry.java,这调用了一个 php 文件 myPhp.php。这个 php 文件从一个著名的音乐网站抓取数据,并将数据作为 XML(文件或字符串,我的选择)发送回 Enquiry.java。所以,我必须在 php 页面上有这个 xml 数据,使 myPhp.php 像一个 xml 文件,我的 servlet 使用它来从中提取数据。

现在,我必须在 putty 上编译和运行我的 java servlet 并在浏览器上运行 html 并完成剩下的工作。我能够完美地编译我的文件。我已将 CLASSPATH 设置为 ~/tomcat/jakarta/common/lib 放置所有 jar 的位置。我>javac -classpath $CLASSPATH/servlet.jar:$CLASSPATH/json-rpc-1.0.jar Enquiry.java 编译得很好。

现在,我必须在某个地方有一个 Enquiry.class(我认为在我的类路径中)我停止了 tomcat。将此类文件传输到我的 .java 文件所在的位置。启动tomcat。现在,我需要运行它。

java -classpath $CLASSPATH/servlet.jar:$CLASSPATH/json-rpc-1.0.jar Enquiry 知道:Error in "main" thread, NoClassDefFound : Enquiry 我只有在当前文件夹中。我仍然得到一个异常我想知道什么是错的?

如果我添加一个 . 在查询之前,我得到:Error in "main" thread, NoClassDefFound : javax.servlet.http.httpresponse exception
如果我添加一个java -cp .:$CLASSPATH...然后我得到:Error in "main" thread, NoClassDefFound : Main exception

请帮我解决我的类路径并干净地运行我的 java servlet。

4

1 回答 1

0

创建 servlet 时,通常(如果不总是)将其创建为打包为WAR文件的 Web 应用程序的一部分。要运行您的 servlet,您需要将打包的 WAR 文件放入您正在使用的 servlet 容器的部署文件夹中。由于您显然正在使用 Tomcat,因此这可能位于tomcat/webapps文件夹中。本教程是开始学习开发和部署 Web 应用程序的好地方。您应该启动的唯一 Java 进程是您的 servlet 容器。

于 2013-04-09T10:23:55.283 回答