• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Servletのエラーについて教えて下さい!】)

【Servletのエラー】HTTPのPOSTメソッドはサポートされていません!

このQ&Aのポイント
  • サーブレットをコンパイル後、実行するとHTTPのPOSTメソッドは、このURLではサポートされていません。
  • 前のJSPからはmethod='POST'にて送信しているのですが・・・
  • 接続先のデータベースでデータの更新に失敗しました。

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

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.5

えーと実はJSPならばOKなのですね。 とゆーことはJavaには問題はないと考えられます。 すると問題はSQLか 例えば存在しないカタチのIDを入力したとか。 もともと問題なかったので問題は違う状態で 発生してるのでは?

earlgyreprince
質問者

お礼

fortranxpさま 普通に動くサーブレットでもコマンドで実行すると Exception in thread "main" java.lang.NoSuchMethodError: mainが 表示されます。 なのでプログラムのせいではないと思います。 すみません。。。

earlgyreprince
質問者

補足

fortranxpさま ありがとうございます☆ IDは前のJSPから持ってきているので大丈夫かと思います。 明確な問題点が分からないので恐縮なのですが・・・ プロンプトで実行したら以下のメッセージが出ました。 Exception in thread "main" java.lang.NoSuchMethodError: main 関係ありますでしょうか?

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.4

自宅のMySQLで実験したところ もしかしたら、 String Str = request.getParameter("Str"); ↓ int Str=Integer.parseInt(request.getParameter("Str")); かつ stmt.executeUpdate("UPDATE T_Strfer SET フラグ ='1' WHERE id='"+ Str +"'"); ↓ stmt.executeUpdate("UPDATE T_Strfer SET フラグ ='1' WHERE id='+ Str +'"); でうまくいきました。 SQLの違いかも知れませんけど。

earlgyreprince
質問者

お礼

fortranxpさま 本日、テストした所("UPDATE T_Strfer SET フラグ ='1' WHERE id="+Str);の記述で実行されました。 実行はされましたがテーブルに更新された様子がないのでSQLServlerの所でまた聞いてみます。 貴重なお時間頂きまして本当にありがとうございました☆

earlgyreprince
質問者

補足

fortranxpさま ご自宅でまで試験して頂いてありがとうございます☆ 試してみましたがデータの更新に失敗しました。と表示されます。 しかし、e.printStackTrace(); を足してもデータの更新に失敗しました。と表示されました。。。 お手数ですがご教授下さい。

すると、全ての回答が全文表示されます。
noname#33813
noname#33813
回答No.3

>しかしデータの更新に失敗しましたと表示されました。 でしたらスタックトレースを出した方が良いでしょう。 原因が記述されているはずです。 } catch (SQLException e) { e.printStackTrace(); ←←これ足す out.println("データの更新に失敗しました。 "); } finally {

すると、全ての回答が全文表示されます。
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

web.xmlはWEB-INF直下に配置します。 TOMCAT4.1.xではこのように記述します。 <?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>EditingServlet</servlet-name> <servlet-class>EditingServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>EditingServlet</servlet-name> <url-pattern>/EditingServlet</url-pattern> </servlet-mapping> </web-app> TOMCATのバージョンによってはうまくいかないかもしれません。 またform actionは <form action="/コンテキストルート/EditingServlet" method="post"> のようになっていますか?

earlgyreprince
質問者

お礼

fortranxpさま 端末を再起動したら開きました! すみません。 しかしデータの更新に失敗しましたと表示されました。 SQLでおかしい部分ありますでしょうか? 度々、すみませんが宜しくお願い致します!

earlgyreprince
質問者

補足

fortranxpさん ありがとうございます。 Tomcatのバージョンは5xになります。 他のサーブレットは動くので記述は問題ないと思います。 またform actionもあっている様です。 doGetやdoPostを使うにあたって別の記述は必要なのでしょうか? 宜しくお願い致します☆

すると、全ての回答が全文表示されます。
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

web.xmlは問題ありませんか?

earlgyreprince
質問者

補足

fortranxpさん ありがとうございます。 web.xmlですか? Servlet使用の記述以外が必要なのでしょうか? すみません、ご教授下さい。

すると、全ての回答が全文表示されます。

関連するQ&A