• ベストアンサー

サーブレットをeclipseで作りたい

ですが //////////////////////////////////////// package member; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; ・・・・・・・・・・・・・・・・・・・・・・・ //////////////////////////////////////// をeclipseのエディタに書くと import javax.servlet.*; と import javax.servlet.http.*; の javax.servlet の下に赤の波線がつきます。 どうも javax.servlet.*; と javax.servlet.http.*; を認識できないようです。 これらを認識できるようにするにはどうしたらいいのでしょうか?

  • reiman
  • お礼率73% (794/1076)
  • Java
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

#2です。 「tomcatPluginV31.zip」 内に「servlet.jar」(若しくはjavax.servletパッケージなど)が入っているのか分かりませんが、 調べたところ「tomcatPluginV31.zip」は Eclipseとtomcatを連携するためのものです。 即ち、別途tomcatが必要みたいです。 ※参照サイトにも書かれていました。 また、仮にコンパイルできたとしても、 試験を行うにはtomcat(またはWebApplicationServer)が必要になります。

参考URL:
http://www.develop-memo.com/java/eclipseplugin/tomcatplugin.html
reiman
質問者

お礼

ありがとうございます。 検索時間が相当長くかかったのですが eclipseのフォルダの eclipse\plugins\org.eclipse.tomcat_4.1.30.1 にservlet.jarが見つかったので これをプロジェクトフォルダにimportして jarの追加処理をすれば波線が消えました。 これで問題ないのですね? サーブレットについてほかにやることがあったら教えてください。 なお、試験はLinuxサーバにアップして行うのでXPにTomcatは必要ありません。

その他の回答 (2)

回答No.2

servlet.jarにCLASSPATHを設定していないからです。 tomcatをインストールすると、インストールディレクトリ配下に「common\lib\servlet.jar」というのがありますので、 これをCLASSPATHに設定します。 Eclipseの場合、実際に使用するプロジェクトを右クリックし、 プロパティーから「Javaのビルドパス」を選択します。 右側にいろいろとボタンが表示されますが、 「外部JARの追加」ボタンをクリックし設定をすることで、 CLASSPATHを設定できます。

reiman
質問者

補足

XPに eclipse-SDK-3.1.2-win32.zipと tomcatPluginV31.zipと j2sdk-1_4_2_10-nb-4_1-win-ml.exeを だけをインストールしてtomcatはインストールしていません。 servlet.jar をXPの検索機能で検索しているのですが見つかりません。 これでもサーブレットのコンパイルはできるのでしょうか?

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 javax.servletパッケージやjavax.servlet.httpパッケージがある場所をプロジェクトのプロパティで指定してあげんといけません。 1.パッケージ・エクスプローラーで、プロジェクトを右クリックしてプロパティ。 2.hogehogeのプロパティーという窓が出てくるので「Javaのビルドパス」というのを選ぶ。 3.すると、「ソース」、「プロジェクト」、「ライブラリー」、「順序およびエクスポート」というのがあるので、ライブラリーを選ぶ。 4.プロジェクト内にjarがあるなら「jarの追加」を、プロジェクトとは別の場所にjarがあるなら「外部jaraの追加」を選び、servlet.jarだったか?それを捜して追加しましょう。

reiman
質問者

補足

XPに eclipse-SDK-3.1.2-win32.zipと tomcatPluginV31.zipと j2sdk-1_4_2_10-nb-4_1-win-ml.exeを だけをインストールしてtomcatはインストールしていません。 servlet.jar をXPの検索機能で検索しているのですが見つかりません。 これでもサーブレットのコンパイルはできるのでしょうか?

関連するQ&A

  • eclipseに記述したjavaファイルに黄色の波線

    が現れるのですが これは問題ないのでしょうか? たとえば import javax.servlet import javax.servlet.http import java.io import java.util import java.util.zip import java.sql.*; import oracle.jdbc.driver.*; の java.util.*; java.util.zip.*; java.sql.*; oracle.jdbc.driver.*; の下に黄色の波線が出てしまいます。 これを消すにはどうしたらいいのでしょうか?

    • ベストアンサー
    • Java
  • import について

    Eclipseで開発しています。 以下2点がImportでエラーになります。 import java.util.* import java.io.*; 以下はImport可です。 import java.lang.reflect.*; import javax.servlet.http.*; import org.apache.struts.action.*; import java.util.*; ライブラリーが足らないのかと思うのですが、よくわかりません ご指導願います。

    • ベストアンサー
    • Java
  • サーブレットでダウンロードしたJARを使う

    JSPのサーブレット内で、ダウンロードしてきた「iText」というJARファイルの中のクラスを使いたいのですが、エラーが出て困っています。 ソースコードで説明させていただくと、 package selfinfo; import java.io.*; import com.lowagie.text.Document;//iTextのクラス import com.lowagie.text.pdf.PdfWriter;//iTextのクラス import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class test extends javax.servlet.http.HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Document doc = new Document();//iTextが提供するクラ                      //スここでエラーがでる } } 開発環境はTomcatとEclipseを連動させてたものを使っています。 またエラーの種類は、Eclipseのエディタ上ではエラーは出ないのですが、Tomcat上で動作させ、jspからサーブレットにうつったときに、 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 javax.servlet.ServletException: サーブレットの実行により例外を投げました 原因 java.lang.NoClassDefFoundError: com/lowagie/text/Documentselfinfo.test.doPost(test.java:37) というようなエラーが出ます。 またEclipseでこのコードを最も基本的なJAVAアプリケーションに落とし込んだ場合は、正常に動作しました。 長くなりましたが、お返事お待ちしております。

    • ベストアンサー
    • Java
  • JSPからサーブレットを呼び出す際に404エラー

    現在、tomcatとeclipseでサーブレット/JSPの勉強をしています。 参考書に載っている、jspの入力画面で入力した値をサーブレットで受け取り、そのまま表示させるようなサンプルを作成しています。 JSPの入力画面は表示できるのですが、値を入力してサーブレットに移動する際、404エラーが出てしまいます。 ■eclipseのパッケージエクスプローラー basic |-WEB=INF/src |..|input |...|EchoServlet.java |-WEB-INF |..|web.xml |.|echo.jsp (WEB-INF直下に作成) ■echo.jsp内のサーブレットのパスに関する記述 <FORM ACTION="/servlet/EchoServlet"> ■web.xmlの記述 <servlet> <servlet-name>EchoServlet</servlet-name> <servlet-class>input.EchoServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EchoServlet</servlet-name> <url-pattern>/servlet/EchoServlet</url-pattern> </servlet-mapping> ■EchoServlet.javaの記述 package input; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class EchoServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String msg = request.getParameter("message"); response.setContentType("text/plain; charset=Windows-31J"); PrintWriter out = response.getWriter(); out.println("message=" + msg); } } お気づきの点がございましたらご査収の程よろしくお願いいたします。

  • EclipseでのJavaサーブレット開発で、プロジェクトに対するビルドパスの設定について

    Javaプログラミング初心者です。 MacOS 10.5環境で、Eclipse3.5, Tomcat5.5を使ってJavaのWebアプリ開発環境を作りたいと思っています。 サーブレットを作るので ・javax.servlet.* ・javax.servlet.http.* のパッケージをimportするために、Tomcatのcommon/lib/servlet-api.jarをクラスパスに指定する必要があると思うのですが、 Eclipseで新規サーブレットを作った際に、自動的にこのクラスパス指定を行う方法はありますか? 今のところ、サーブレット作成の度に、そのプロジェクトフォルダに対してビルドパスを設定している状況です。 教えて頂けないでしょうか、よろしくお願いいたします。 (ところで、この質問をする際、投稿カテゴリーで「プログラミング」を指定しているにも関わらず、なぜか反映されないので、「その他」カテゴリで質問させて頂きます。)

  • サーブレットがコンパイルできません。

    サーブレット内で自作のクラスを使っています。 自作クラスの名前は、Daigakuでパッケージ名はkansaiです。 ですので、サーブレット内で package kansai; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import kansai.*; としてちゃんとkansaiをimportしていますが、 src\kansai\Uni.java:20: シンボルを見つけられません。 シンボル: クラス Daigaku 場所 : kansai.Uni の クラス Daigaku dai2 = new Daigaku(); というエラーメッセージが出てしまいます。 classes\kansaiディレクトリにちゃんとDaigaku.classはあります。 それ以外のエラーは発生していません。原因はなんでしょうか?

  • eclipseで作ったサーブレットのサーバーへのアップロード方法について

    サーブレットのアップロードについて eclipse(バージョン: 3.1.1) Tomcat5.5 jre1.6.0_01 の環境で、下記のようなプロジェクトexamplesをeclipseで localhost上に作成しました。 これをwebサーバーにアップして、 (DocumentRoot "/usr/local/apache2/htdocs") 動作させたいのですが、 javaファイル、jarファイル、wec.xml等を DocumentRoot配下にどのようなディレクトリ構造を作って、 配置すれば動くのでしょうか。 サーバーは apache-2.2.0 Tomcat-4.1.31 であり、以前より正常に運用しているサーバです。 examples | |--JREシステムライブラリー[jre1.6.0_01] | |---(省略) |--TOMCAT_HOME/common/lib/servlet-api.jar | |---(省略) |--TOMCAT_HOME/common/lib/jasper-runtime.jar | |---(省略) |--TOMCAT_HOME/common/lib/jsp-api.jar | |---(省略) | |--WEB-INF/src | | | |--chap09_servlet02 | | | |--HelloServlet.java | |--WEB-INF | | | |--web.xml 【HelloServletWorld.java】 package chap09_servlet02; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloServletWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // response.setContentType("text/html; charset=Windows-31J"); response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<HEAD>"); out.println("<TITLE>Servlet</TITLE>"); out.println("</HEAD>"); out.println("<BODY>"); out.println("<h1>"); out.println("<font color =\"blue\">"); out.println("Hello ServletWorld"); out.println("</font>"); out.println("</h1>"); out.println("</BODY>"); out.println("</HTML>"); out.close(); } } 【web.xml】 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>HelloServletWorld</servlet-name> <servlet-class>chap09_servlet02.HelloServletWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServletWorld</servlet-name> <url-pattern>/HelloServletWorld</url-pattern> </servlet-mapping> </web-app>

    • ベストアンサー
    • Java
  • コンパイルエラー

    過去ログも参考にしたのですが、解決しませんでしたので、よろしくお願いします!! コンパイルすると、下のエラーが出てしまいます。 どこかへのクラスパスが足りないのかな?とは思うのですが、一体どこへ?(T△T) パッケージ com.sun.odi.tree は存在しません。 import com.sun.xml.tree.*; --code-- import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import org.w3c.dom.*; import com.sun.xml.tree.*; -------- [Win2k,tomcat4.0.6,J2sdk1.4.1]です。

  • JAVAのパッケージについて

    CentOSで、WEBページからデータベースにアクセスするためのプログラムをつくっているのですが、サーブレットがコンパイルエラーになります。 サーブレットで、mypackageが解決できないとのことです。 # javac -classpath /opt/tomcat6/apache-tomcat-6.0.20/lib/servlet-api.jar Controller10.java ---------- 1. ERROR in Controller10.java (at line 10) import mypackage.Model10; ^^^^^^^^^ The import mypackage cannot be resolved ---------- mypackageはデータベースにアクセスするJavaBeanであるModel10をいれているフォルダです。Model10.javaはコンパイルできました。 Controller10.java というのは、Model10.classにアクセスするためのサーブレットです。 Controller10.javaと同じ階層に、mypackageのフォルダをつくり、その下に、Model10.classというJavaBeanをいれていて、なぜ解決できないのか、どうしてもわかりません。 ファイル構造は下記の通りです。 webapps  |___mysamples      |_test.jsp      |_HTML      |_WEB-INF        |_class               |_Controller10.java          |_mypackage ←フォルダ             |_Model10.class ←JavaBean Controller10.javaの抜粋です ------------------------------ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.RequestDispatcher; import java.io.PrintWriter; import mypackage.Model10; ←Controller10にimport文をいれてます。 ------------------------------ Model10.javaの抜粋です ------------------------------ package mypackage;  ←Model10にpackage文をいれてます。 import java.sql.DriverManager; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Vector; ------------------------------- JARやWARファイルをつくらなければ、パッケージしたことに ならないのでしょうか・・・。 すみませんが、解決方法を教えてください。

    • ベストアンサー
    • Java
  • Java importの*

    Javaでパッケージ利用の際に java.io.* などと最後に*をつけるとioパッケージ全てを使えると聞きました Javaの入門サイトの例文を見てると javax.servlet.* javax.servlet.http.* と記載がある場合があります javax.servlet.*はservletパッケージ全て使えるという意味ではないのでしょうか? そうならばjavax.servlet.http.*を記述する意味は何でしょうか?

専門家に質問してみよう