AKB48の推しメンをセンターにできちゃうかもしれない!? >>

どうしてもうまくいかないので教えてください。。。

当方Eclipseにてアンドロイドアプリを開発しております。
具体的には自宅にあるServerに地図情報が蓄積されており
その情報をGoogleMapを使い地図上にプロットするといったものです。

いろいろなサイトを参考にEclipse付属のAndroidエミュレーターで
ローカルにあるServerに接続し地図上に情報をプロットする事ができました!

Eclipse(開発PC) 192.168.1.5
PostgresSV 192.168.1.10

そして、いよいよ実機のGalaxyS3へインストールして起動してみたのですが、

【なにかドライバを失敗させる変化が起こりました。どうぞこの例外を報告してください。】

と言うエラーを吐きデータを取得できません。
ちなみに、GalaxyS3をWi-FiにてローカルIPにしてもDoCoMo回線のグローバルIPにしても
同じエラーを吐き情報の取得ができません。
PostgresSVのポートはルーターで設定してグローバルからも通してあります。

そもそもこのjdbcはAndroidで利用する事ができないのでしょうか?

参考までに接続する部分のソースを載せます。

try{
 Class.forName("org.postgresql.Driver").newInstance();
 Connection con = DriverManager.getConnection("jdbc:postgresql://192.168.1.10/map_data","hogehoge","hogehoge");
 Statement stmt = con.createStatement();
 rs = stmt.executeQuery(stSql);
   }catch(SQLException e){
  Log.v("SQLException:",e.getMessage());
   }catch (Exception e1) {
       // TODO: handle exception
 Log.v("DBエラー", e1.getMessage());
      }finally{
      }

どなたかわかる方お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

PostgreSqlはインストールしたままの設定では別のホストからアクセスできません。

設定を変更されましたか?

この回答への補足

ご返答ありがとうございます!

はい!Postgresのconfおよびhbaを設定しグローバルからもローカルの他のPCからもアクセス出来る所までは確認できております。

補足日時:2013/01/15 11:12
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAndroid端末から外部DB(MYSQL)接続

アンドロイド端末よりさくらインターネットのレンタルサーバーへ外部接続し、MYSQLからデータを取得してアンドロイド端末で取得データを表示させたいのですが、参考となる書籍やサイトがあったら教えて下さい。

現在、さくらインターネットではスタンダードプランでサーバーを借りていまして、サーバー内でphpの処理でMYSQLからデータを取得してHTMLで表示する仕組みができているので、アンドロイド端末からこのPHPの処理を動かして取得したデータをアンドロイド端末で表示すればよいと考えているのですが、サイトや書籍を調べてもできません。

※Android sdkは、Eclipse上で動作させており、エミュレータで実行しています。

参考にしたページは、次のようなものです。

http://blog.kabel.jp/?cid=20
→このページの「Android から外部SQLへアクセス」の部分の通りに設定しました。

http://archi.iza.ne.jp/blog/entry/691670/
→このページをベースに添付(名前はJdbcSample.javaのソースを作り、eclipse上で実行しました。

http://www.atmarkit.co.jp/fjava/javatips/069java006.html

http://oshiete.goo.ne.jp/qa/5527506.html

エミュレータで「hello world!」は表示できたので、基本的な環境の設定はできてると思っています。
実機で実現できれば一番よいのですが、まずはエミュレータで実現できればと考えています。

ヒントだけでもよいので、どうか私にご教授下さい。

以下は、実行したソースです。

import java.sql.Statement;

public class JdbcSample {

public static void main(String[] args) {

Connection con = null;
Statement stmt = null;
ResultSet rset = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase","root", "root");
→ここのlocalhostは10.0.2.2も試しましたが、ダメでした。
→ここのlocalhostと書かれた右側は3306以外は試していません。
→ここのmydatabaseは、mysql○○○.db.sakura.ne.jpを指定しました。
→ここの左側のrootはデータベース名を指定しました。
→右側のrootはデータベースのパスワードを指定しました。

stmt = con.createStatement();

rset = stmt.executeQuery("SELECT * FROM customerlist");
→ここは実在するテーブル名を指定しました。

while ( rset.next() ) {
System.out.print(rset.getInt("id"));
→このidや下記のnameやcompanynameは上記テーブル内の列名を指定しました。
System.out.print(",");
System.out.print(rset.getString("name"));
System.out.print(",");
System.out.println(rset.getString("companyname"));
}

} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
rset.close();
stmt.close();
con.close();
} catch ( SQLException e ){
e.printStackTrace();
}
}
}
}

アンドロイド端末よりさくらインターネットのレンタルサーバーへ外部接続し、MYSQLからデータを取得してアンドロイド端末で取得データを表示させたいのですが、参考となる書籍やサイトがあったら教えて下さい。

現在、さくらインターネットではスタンダードプランでサーバーを借りていまして、サーバー内でphpの処理でMYSQLからデータを取得してHTMLで表示する仕組みができているので、アンドロイド端末からこのPHPの処理を動かして取得したデータをアンドロイド端末で表示すればよいと考えているのですが、サイ...続きを読む

Aベストアンサー

こんにちは。

("jdbc:mysql://localhost:3306/mydatabase","root", "root");

ここの内容は
jdbc:mysql://接続先:3306/データベース名", "ユーザ","パスワード"
ですので指定の仕方が間違っています。

ただし、さくらサービスのDBが外部からの接続を許可していなければ、接続できないはずです。

その場合は先に質問者様が仰っている通り、さくらサーバに設置してあるPHP等を介して取得することになると思います。
(XMLで返したりJSONで返したり)

QAndroidアプリで外部データベースからデータ…

こんにちは
Androidアプリを勉強しながら作成しています。
今までPHPとMySQLをやっていたのですが、JAVA初体験でわからない事が沢山あり専門書を見たりネットで検索したりしております。
今回の質問はAndroidアプリ側で『hogehoge』と入力した場合、外部データベースへ飛んでその中から『hogehoge』に関連した情報を取得したいと思っているのですが、その手法がわかりません。
専門用語が羅列しているので、なかなか検索する事も出来ず困っております。

どのようにしたらデータ取得出来るのか教えてください。
また、参考になるサイトがございましたら、是非教えてください。

【質問内容】Androidアプリで外部(インターネット上)にあるデータベースからデータ取得したい

なにぶん初心者なのでよろしくお願いいたします。

Aベストアンサー

 こんなサンプルはどうですか?

参考URL:http://ueblog.natural-wave.com/2007/12/10/java-rest/

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

Qinterface,extend,implementのちがい

お世話になります、

Javaを勉強しているのですが、
interface,extend,implementの使い分けがわかりません。

私の解釈としては、
(1)interfaceは、グローバル変数の定義、グローバルメソッドの定義(実装はしない)。

(2)extendは、extendクラスを親クラスとして親クラスの機能を使用できる。

(3)implementは…,implementもextendと同じような意味だと解釈しているんですが、違う点は、implementで定義してあるメソッドは、使用しなくても、実装しなければならないという点でしょうか?

とにかくこの3つのを使い分けるコツとかあれば教えてください。
よろしくお願いします。

Aベストアンサー

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば、getStringLength()メソッドなどが
あったほうが良いでしょうか。
このgetStringLength()メソッドは、2バイト文字も1バイト文字も「1文字」
と数えてくれると言う点で、まさに、日本語クラス用のメソッドだと言えるでしょう。

例えば、Java的に記述すると、、、
class Japanese {
public int getStringLength() {
  ・・・
return strlength;
 }
 ・・・
}

class TextField {
・・・
}

class JTextField extends TextField, extends Japanese {
・・・・
}

C++ではそのように実装するでしょう。
しかし、Javaにはこのような高度な機能はありません。

そこで、生まれた苦肉の策が、「interfaceとimplements」です。

interface Japanese {
public int getStringLength(); // interfaceは実装を含まない!
                 // すなわち「実装の継承」ができるわけではない。
}

class TextField {
・・・
}

class JTextField extends TextField implements Japanese {
・・・・
public int getStringLength() {
  ・・・
return strlength; //implementsの実装を「各クラスで」実装してやる必要がある。
 }
}


結局のところ、Javaでは、複数のクラスを親クラスには持ち得ないため、継承できなかったクラスは「各クラスで実装してやる必要性」があるのです。


ではどのように使うのが効果的か?

なまえのままです。「代表的なインターフェイス」にたいしてinterfaceを使うのが良いと思います。

例えば、プレイヤー系であれば、ビデオ・コンポ・ウォークマン・などにかかわらず、
interface controlpanel {
public play();
public stop();
public next();
public back();
}
というような基本的インターフェイスを「持っているべき」です。

こうすることで、それぞれのクラス宣言の際に、これらの「インターフェイスを持っているべきであり、実装されるべきである」ということを「強く暗示」することができます。
class videoplayer extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

こうすることで、同様のクラスを作成するユーザーは、
「プレイヤー系は、4つ操作が出来るコントロールパネルをインターフェイスとして持つべきなのだな!?」という暗示を受け取り、自分のクラスでもそれを模倣するでしょう。

class mp3player extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

また、これらのクラスを使用するユーザーも、「implements controlpanel」という
表記を見て、「4つの基本操作は押さえられているのだな!」という基本中の基本動作を抑えることが出来ます。

まとめると、クラスに「こういう特徴もたしてください!」「こういう特徴持ってますよ!」という一種の暗示的警告や方向性を与えることができるわけですね。

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば...続きを読む

Qservletからjspへオブジェクトの配列情報を送る方法

いつもお世話になっております。echo2002です。

さて、今回は以下のような処理を行いたいのですが、可能なのでしょうか?
”servletで作成したオブジェクトの配列をjspにforwardして表示させる”

こんなような処理を考えています。

構成:FileListServletクラス, FileInfomationクラス, disp.jsp

FileInfomationクラスではファイル名やファイルサイズなどの情報を持ち、
それぞれgetなどのアクセサメソッドを持つとします。

FileListServletクラスでの処理
FileInfomationクラスの配列を作成し、各情報をsetする。
HttpServletRequestにsetAttributeでFileInfomation情報を付加し、
disp.jspへforwardする。

※以下の方法を考えています。
request.setAttribute("fileinfo1", fileinfo[0]);
request.setAttribute("fileinfo2", fileinfo[1]);
request.setAttribute("fileinfo3", fileinfo[2]);
・・・
(配列でsetAttributeできるのかわからなかったので、
 とにかくファイルの数分setAttributeしてみました)

getServletContext().getRequestDispatcher("/disp.jsp").forward(req, res)

わからないこと:
disp.jspでどのようにFileInfomationの情報を取得し、
内容を参照できるのかがよくわからないのです。
jspの暗黙オブジェクトrequestを使用して、request.getParameterをすると、
返ってくる値がStringのようなので、FileInfomationクラスにならないんですよね?

突っ込みどころ満載の質問かと思いますが、何かアドバイス頂ければと思います。
オブジェクトの配列をsetAttributeしてjspで読み出せる方法があれば、
それもご教授いただけますでしょうか。
よろしくお願いいたします。jsp難しいです・・・。

いつもお世話になっております。echo2002です。

さて、今回は以下のような処理を行いたいのですが、可能なのでしょうか?
”servletで作成したオブジェクトの配列をjspにforwardして表示させる”

こんなような処理を考えています。

構成:FileListServletクラス, FileInfomationクラス, disp.jsp

FileInfomationクラスではファイル名やファイルサイズなどの情報を持ち、
それぞれgetなどのアクセサメソッドを持つとします。

FileListServletクラスでの処理
FileInfomationクラスの配列を作成し、...続きを読む

Aベストアンサー

setなんちゃらメソッドで値を設定したら、getなんちゃらメソッドを呼べば良かったのです。つまり、set/get以下が同名のメソッド同士をセットで使えば良いのです。
今回の場合は、getAttributeメソッドですね。
戻り値はObjectですがこれはキャストすれば良いのです。
FileInfomation 変数 = (FileInfomation)request.getAttribute("fileinfo1");
てな具合です。

なお、getParameterメソッドは、クライアント(ブラウザ)から送信されたパラメータを取得するメソッドです。

さて、話を次の段階に進めて、配列を受け渡しできるか?となりますが、、できます。
サーブレット側で、
request.setAttribute("キー文字列", fileinfo);
として、JSP側で、
FileInfomation[] 変数 = (FileInfomation[])request.getAttribute("キー文字列");
とすれば、良いのです。

QJSPの処理の途中で、JavaScriptの処理をしたい

プログラムをJSPで記述している(<% %>タグ)のですが、
JavaScriptのalertやconfirmなどのポップアップするダイアログを
表示したいのです。それは可能なのでしょうか?

Aベストアンサー

No.2の回答に対する回答(変な日本語ですが)です。

JSPとJavaScriptの処理の行われる順番について考えていないと
エラーになることがありますよ。
大まかな流れは、
 JSPのソースをサーバ側で解釈、実行する(HTMLのソースを吐き出す)
  ↓
 クライアントに生成したソースを送信する
  ↓
 クライアント側のブラウザがソースを解釈する
  ↓
 ソースの中のJavaScriptを、ソースの上のほうから順次実行する
  ↓
 同時に、通常の表示(HTMLの解釈)も実行される

 と、こういう流れですので、例えば、JavaScriptで値を入力し、
JSPでその値を使おうとすると、エラーとなります。

 具体的にやりたいこと(やろうとしていること)を書いていただいたほうが
適切に回答できますが、上記が今考えられるエラーの原因です。

QリクエストからArrayListのデータが取得出来ない

いつもお世話になっております。

表題の通り、リクエストからArrayListのデータが取得出来ないのです。

javaで、
ArrayList cmArray = new ArrayList();
データベースからデータ取得
request.setAttribute("category",cmArray.toArray());

jspで
ArrayList list = new ArrayList();
list = (List)request.getAttribute("category");
と取得しようとしています。
そうすると、java.lang.ClassCastExceptionが発生してしまいます。

どなたか分かる方がいましたら、ご教授下さい。
よろしくお願い致します。

Aベストアンサー

requestには、cmArray.toArray()でObjectの配列が入ってます。
なのでJSPでListで受け取ろうとしてClassCastExceptionが発生しています。

request.setAttribute("category",cmArray);
でいいんではないでしょうか。

QServletからServletへの値渡し

最近、A-ServletからB-Servletへの遷移は

response.sendRedirect("B-Servlet");

で可能だと教えて頂きました。

ですがもうひとつわからないことがあります。
このときに、B-Servletへ変数を渡したいのですがやり方がわかりません。
わかる方教えてください><

Aベストアンサー

こんにちは。world99です。 sin-da4のご認識の通りでした。
 doGet()で呼び出されたサーブレットから次のサーブレットに遷移する時は、doGet()が実行されます。同じように、doPost()で呼び出されたサーブレットは、doPost()で次のサーブレットを呼び出します。
 実は、私が試したサンプルは、doGet()とdoPost()のどちらが呼び出されても、doProcess()というメソッドを実行するように、実装しています。文章を短くするための、それを端折っていました。という訳で、この事に気がつきませんでした。
 教えているつもりだった私が逆に、教えて頂きましたねありがとうございます。orz
 あるServletから別のServeltに遷移する時に、値を引き渡すという本題の質問は、これで解決ですね♪

Q『ClassNotFoundException: org.postgresql.Driver』というエラーが出る。

CygwinにpostgreSQLをインストールして、JSPでデータベースを操作しようと考えています。

/usr/share/postgresql/java/postgresql.jarをCLASSPATHに追加し、以下に示すJSPを作成して実行したのですが、『java.lang.ClassNotFoundException: org.postgresql.Driver 』というエラーが出てデータベースにアクセスできません。
『$jar -xvf /usr/share/postgresql/java/postgresql.jar』を実行したところ、『org/postgresql/Driver.class』が抽出されましたので、ドライバクラスは間違ってはいないと思います。一体何が悪いのでしょうか。


<%@ page language="java" %>
<%@ page contentType="text/html; charset=EUC_JP" %>
<%@ page import="java.sql.*" %>
<%
Connection con = null;
Statement stmt = null;

try
{
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql:(データベース名)";
con = DriverManager.getConnection(url, "(ユーザー名)", "(パスワード)");
stmt = con.createStatement();

(途中の処理)

}
catch(Exception e)
{
out.println(e);
}
finally
{
(データベースの切断処理)
}


postgreSQLはまだ始めたばかりですので初心者同然です。なるべく分かりやすく説明してくれると嬉しいです。

OSはWindowsXP, JSPコンテナはTomcat3.3.1を使用しています。どうぞよろしくお願い致します。

CygwinにpostgreSQLをインストールして、JSPでデータベースを操作しようと考えています。

/usr/share/postgresql/java/postgresql.jarをCLASSPATHに追加し、以下に示すJSPを作成して実行したのですが、『java.lang.ClassNotFoundException: org.postgresql.Driver 』というエラーが出てデータベースにアクセスできません。
『$jar -xvf /usr/share/postgresql/java/postgresql.jar』を実行したところ、『org/postgresql/Driver.class』が抽出されましたので、ドライバクラスは間違ってはいないと思います。一...続きを読む

Aベストアンサー

> WEB-INF/libというのは、WEB-INFの中のlibというディレクトリのことですか?

WEB-INFディレクトリ配下のlibというディレクトリです。
WEBアプリケーションは以下のようなディレクトリ構造を
とるということが想定されています。

ContextRoot
 WEB-INF
  lib
  classes

ContextRootというのは、WEBアプリケーションのルート
ディレクトリです。
これは、例えばTomcatであれば、webappsディレクトリの下の各ディレクトリが
それに当たります。

このContextRootの下に、普通にアクセスできるファイル(HTMLファイルやJSPファイル)
を直接、またはディレクトリを作って置きます。
すると、http://xxxx/webアプリケーション名/xxx.htmlや
http://xxxx/webアプリケーション名/xxx/xxx.jspで
アクセスできます。

また、WEB-INFディレクトリには、webアプリケーションの
動作を記述した、web.xmlファイルと、サーブレットのクラス、サーブレットが
参照するライブラリ(各種jar)ファイル、その他、IEなどのブラウザから
直接アクセスさせたくないリソース(html、jspなど)を
置きます。

これが、一般的なWEBアプリケーションのディレクトリ構成です。
なお、これをjarファイルとして1ファイルにまとめたものが、
warファイルです。

で、このときのWEB-INF\lib ディレクトリは、サーブレット、JSPが参照する
ライブラリが置かれますが、サーブレットコンテナ(Tomcatなど)
は、自動的にこのディレクトリのファイルをCLASSPATHに追加します。
なので、このディレクトリに置いて、それでもクラスが見つからない
ようであれば、Tomcatなどの設定がおかしいか、JSPファイルなどの
置いてある位置がおかしいかのどちらかということになります。


ちなみに、これはWEBアプリケーションの実行時の話で、
実際にサーブレットクラスをコンパイルするときなどは、
Javaコンパイラはこのような認識をしないので、CLASSPATHにjarファイルなどをきちんと指定しておかないと、
コンパイルエラーになります。

> WEB-INF/libというのは、WEB-INFの中のlibというディレクトリのことですか?

WEB-INFディレクトリ配下のlibというディレクトリです。
WEBアプリケーションは以下のようなディレクトリ構造を
とるということが想定されています。

ContextRoot
 WEB-INF
  lib
  classes

ContextRootというのは、WEBアプリケーションのルート
ディレクトリです。
これは、例えばTomcatであれば、webappsディレクトリの下の各ディレクトリが
それに当たります。

このContextRootの下に、普通にアクセスでき...続きを読む

QServletが動かない

下記のようなサーブレットを作成し、web.xmlも記述して動かしてみようとしたところ下記のようなエラーが発生して動きません。(Win2000、Tomcat4.1)

~~~HelloWorldServlet.java
package test_servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorldServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {

res.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = res.getWriter();

out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
for (int i = 1; i <= 10; i++) {
out.println("Hello World" + Integer.toString(i));
}
out.println("</body>");
out.println("</html>");
}
}

~~~web.xml
<?xml version="1.0" encoding="Shift_JIS"?>

<!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>HellowWorld</servlet-name>
<servlet-class>test_servlet.HelloWorldServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HellowWorld</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
</web-app>

~~~http://localhost:8080/hello接続時のスタック
javax.servlet.ServletException: クラス test_servlet.HelloWorldServlet はサーブレットではありません

下記のようなサーブレットを作成し、web.xmlも記述して動かしてみようとしたところ下記のようなエラーが発生して動きません。(Win2000、Tomcat4.1)

~~~HelloWorldServlet.java
package test_servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorldServlet {

public void doGet(HttpServletRequest req, Http...続きを読む

Aベストアンサー

>public class HelloWorldServlet {

 サーブレットクラスは javax.servlet.http.HttpServlet の派生クラスとして定義する必要があります。

参考URL:http://www.atmarkit.co.jp/fjava/rensai/was05/was05_1.html


人気Q&Aランキング