• 締切済み

Strutsで「setterメソッドが見つかりません」

Eclipse+TOMCAT環境でStrutsアプリを作っています。 とりあえずの勉強として、参考書に載ってあるサンプルを作っているのですが、会社では動いたそのサンプルを自宅で同じ手順で実行すると、「index.jsp(24,2) 属性 name のsetterメソッドが見つかりません」と表示されます。最初に表示されるはずのindex.jspファイル内に<html:form action="Lookup" name="lookupForm" type="wiley.LookupForm">と記述しており、ここの解析で出たエラーだと思われるのですが、ActionFormであるLookupFormクラスにはEclipseによるSetter/Getterメソッドの自動生成を行って記述しており、なぜエラーになるのかが分からない状態です。原因となりそうな点をお教えください。宜しくお願いします。

  • Java
  • 回答数2
  • ありがとう数2

みんなの回答

回答No.2

Struts1.1と1.2だとけっこう大きく変わってたような…。 Tomcatも4.X系と5.X系ではやはり大きく違うような… (どちらも詳細は覚えてませんが…) Strutsは下位互換?(1.1で作ったものが1.2でも動く) してたと思うので動いてもいいと思うのですが… さらにTomcatのバージョンも絡んで動かないのでしょうか… アドバイスにすらなってませんけど…。(^^;A

orclorcl
質問者

お礼

いえいえとんでもないです。どうやらバージョンによる違いが原因のようで、html:form内でnameもtypeも記述しなければ動きました。ヴァージョンアップ時に廃止になったのかなと考えております(1.2.7のstruts-html.tldにはnameもtypeも定義されてませんでした)。なぜ廃止になったのか?というのがわかりませんが、「struts-config.xml内のaction-mappingで、ActionFormのインスタンス名とクラスを指定する個所があるから、html:formタグ内で指定する必要がないからではないのか?」という声がありました。それで納得して良いのかわかりませんが、とりあえずバージョン違いに記述が対応していなかったことが原因であることは分かりましたのでホットしております。pcbeginner様、どうも有難うございました。

回答No.1

会社で動いたwarを自宅に持ってきて動かないということでしょうか? ↑だとちょっとわかりませんが…(tomcatやjavaのバージョンが違うとか…) 同じようにして作ったということなら、 >EclipseによるSetter/Getterメソッドの自動生成を行って記述しており とあっても、自動生成されていないか、名前が間違ってるんでしょう。(タイプミスなど…) できたソースの中に該当のsetterメソッドがあるか確認してみてはいかがでしょうか? (javaが「ない。」って言ってるんだから「ない」んでしょうけど…。)

orclorcl
質問者

補足

pcbeginner様、ご回答ありがとうございます。 一応、くまなくチェックしたのですが、TomcatとStrutsのヴァージョン ぐらいしか違いがないと思うのですが・・・。 Eclipseは2.1.1です。 会社でサンプルが動いていたときはTomcat4.1.24、Struts1.1でした。 自宅ではTomcat5.0.28、Struts1.2.7です。本日、会社でも同じように ヴァージョンアップしました。するとやはり動かなくなりました。

関連するQ&A

  • eclipseでのstrutsについて

    すみませんがどなたか助けてください! strutsでの開発をすることとなり、現在勉強中なのですが最初のjspにて parsingエラーとなりつまづいております。。 【現在の環境】 eclipse3.0.1 Tomcat 5.0.28 j2sdk1.4.2_08 struts1.1 主なプラグイン: lomboz.301 (EMF 2.0.2) tomcatplug-in V3 Hibernate synchoronizer 3.0.1  以上のような環境でeclipseから新規プロジェクトを Tomcatプロジェクトにて作成し、struts-blank.warを解凍したものをworkspaceにコピーしております。  struts関連の参考サイトをみながら学習しておりましたが、 まず最初の"http://localhost:8080/プロジェクト名/index.jsp"にアクセスしてもエラーとなります。 エラーログ: javax.servlet.ServletException: Missing message for key "welcome.title"~以下略 また、eclipseのindex.jspファイル上でもエラーが表示されておりまして、 <%@ taglib uri="/tags/struts-logic" prefix="logic" %>のところで 「JSP Parsing Error:"/tags/struts-logic"がみつかりません。」と表示されます。 環境設定に問題があるのでは・・と調べてはいるのですが2日悩んでおりますが未だ解決に至っておりません。  http://localhost:8080/struts-blank/にアクセスするこは確認できております。  とりわけ自信がないのはeclipseでのTomcatの設定なのですが、色々調べてみたつもりですが、 上手くいきません。 クラスパス:C:j2sdk1.4.2_08\tools.jar ブートクラスパス:C:j2sdk1.4.2_08\rt.jar          C:j2sdk1.4.2_08\charset.jar 以上の設定をしています。 eclipseでは不要とのことですが、 JAVA_HOMEやTOMCAT_HOMEなどは環境変数で 設定してみました。  やれることはやったつもりなのですが.. もう私レベルでは手詰まりとなってしまいました。 どなたかお助けください。。。

    • ベストアンサー
    • Java
  • Strutsでoptionタグの作り方

    例えばActionFormのメンバにBeanのリストがあるとして、 JSPではStrutsのhtmlタグを使ってselectボックスのoptionに ActionForm内のBeanリストをセットする方法を教えて下さい。 具体的に実現したいことは以下のような事です。 例> // アクションフォーム public sampleForm extends ActionForm {  private List<sampleBean> sampleBeanList; // getter、setterは省略 } // JSPでStrutsタグ(<html:select>とか<html:options>)を使って以下のようなセレクトボックスを作成したい! // 実現方法をご存知のかた、どうかご教示ください。 <select> <option value="sampleBeanのプロパティ">sampleBeanのプロパティ</option> <option value="sampleBeanのプロパティ">sampleBeanのプロパティ</option> <option value="sampleBeanのプロパティ">sampleBeanのプロパティ</option> <option value="sampleBeanのプロパティ">sampleBeanのプロパティ</option> </select> ちなみに環境は以下の通りです。 Java 1.6 Struts 1.3.8 Tomcat 6 以上、宜しくお願い致します。

  • Strutsの配置ができません。

    現在の環境は、次のとおりです。 Windows 7 Eclipse 4.2 Tomcat 6.0.35 jdk1.7.0_07 Struts 1.2.8 ここまでで、EclipseとTomcatとjdkのインストールと設定は成功しており、http://localhost:8080/index.htmlでApache Software Foundationの画面が表示されます。 次に、Strutsインストールと設定をしようとして、Struts 1.2.8を解凍してwebappsディレクトリ配下にあるstruts-example.warファイルを$CATALINA_HOME\webapps配下に設置しました。 次に、Tomcatを起動させ、WARファイルの展開を行い、http://localhost:8080/struts-examples/にアクセスしようとしたところ、Struts Examplesの画面が表示されなかったばかりか、次のエラー画面が表示されました。 HTTPステータス 404 - -------------------------------------------------------------------------------- type ステータスレポート メッセージ 説明 The requested resource () is not available. -------------------------------------------------------------------------------- Apache Tomcat/6.0.35 これは、一体何が悪いのでしょうか。やり方が間違っていたのでしょうか、それともバージョンが違っていたのでしょうか。

  • ActionとActionFormの記述

    strutsを使用してデータベース接続を行っています。 ActionFormにはgetter、setterのみを記述、 Actionにはデータベース接続の確立、SQL文の取得、などを記述、 ActionFormにはgetter、setter、データベース接続の確立などを記述、 ActionにはfindForwardのみを記述、 現在、上記2通りの記述方法を使用しています。 そこで疑問なのですが、このまま2通りの記述方法を 使用するか、一つにするかを考えています。 特に、使用感に問題も無いのですが少々気になりました。 好みの問題等もあるのでしょうか。 よろしくお願い致します

    • ベストアンサー
    • Java
  • 【struts】 ActionFormで別のActionFormの配列を定義時

    皆様お疲れ様です。 現在strutsのコーディングをしているのですが躓いている箇所がございましてお力をお借りしたいと思い、質問させていただきます。 ActionForm_Aの中にActionForm_Bの配列型を宣言しています。 //その他変数色々あってその下 private ActionForm_B[] af_b; getter/setterとしては public ActionForm_B[] getActionForm_B() { return af_b; } public void setActionForm_B(final ActionForm_B[] setAfb) { this.af_b = setAfb; } です。jspで表示するのは出来ますが、取得する際に 「javax.servlet.ServletException:BeanUtils.populate」 が表示されてActionForm_Bの配列型が取得出来ません。 indexedもやっていますし、IterateのindexIdも指定しています。 <logic:iterate id ="af_b" name="af_a" property="af_b" scope="request" indexId="index"> <html:hidden name="af_b" property="name1" indexed="true"/> <html:hidden name="af_b" property="name2" indexed="true"/> </logic:iterate> 表示されているhidden部のhtmlは <input type="hidden" name="af_b[0].name1" value="鬼瓦権座武朗"> となっています。 これを表示している画面からsubmitしますと javax.servlet.ServletException: BeanUtils.populate と表示され落ちてしまいます。 これらの情報からなにか気付いた事、ご指摘等がありましたら是非ご意見を頂きたいと思います。 よろしくお願いします。

    • ベストアンサー
    • Java
  • getter、setterメソッドを活用したいです

    Javaのgetter、setterメソッドをうまく使って、下記のコードを実行しようとしたのですが。 ---------------- package javatest; public class Jidosha { private int num; private double gas; public void setNum(int num) { this.num = num; } public void setGas(double gas) { this.gas = gas; } public int getNum() { return num; } public double getGas() { return gas; } public static void main(String args[]) { System.out.println("この車のナンバーは" + num + "です。"); System.out.println("この車のガソリンが入る最大量は " + gas + "です。"); } } ---------------- Eclipse上では「System.out.println・・・」のところで「非 static フィールド gas を static 参照できません」といったエラーが出てきまして。 getter、setterメソッドをうまく活用して「この車のナンバーは××××です」「この車のガソリンが入る最大量は〇〇〇〇です。」という文を出力するには、どう書けばよいでしょうか。 よろしくお願い致します。 ※OKWAVEより補足:「Webシステム開発」についての質問です。

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

    eclipseとTomcat、strutsの勉強をしているのですがjspをブラウザからhttpで実行すると 「タグ "html:errors" にタグハンドラクラス "org.apache.struts.taglib.html.ErrorsTag" をロードできません」 とエラーがでてしまいます。 html:errorsをコメントアウトして実行すると、その次に使用しているhtml:formを使用している箇所でエラーになってしまいます。 struts.jarは関連させていますし。tblも関連させていると思っています。いろいろ検索してみたのですが対処方法がわかりません。 <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> これをjspに記載していますが、WEB-INF配下にtldファイルがあれば特に問題ありませんよね?ファイル構成も大丈夫だとは思うのですが。 有識者がおりましたらご教授お願いします。情報が不足しているので指摘をお願いします。

  • strutsでフレームの分割ができません。

    strutsで、 http://struts.wasureppoi.com/taglib/03_frame.html を見ながらフレームの分割を下記のように行おうとしていますが、エラーが表示されます。 ソース ---- <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-nested" prefix="nested" %> <html:html> <head> <title>テスト</title> </head> <frameset cols="30%,*"> <html:frame page="l.jsp"/> <html:frame page="r.jsp"/> </frameset> </html:html> ---- エラーメッセージ ---- HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: Exception in JSP: /index08.jsp:13 10: <title>テスト</title> 11: </head> 12: <frameset cols="30%,*"> 13: <html:frame page="l.jsp"/> 14: <html:frame page="r.jsp"/> 15: </frameset> 16: </html:html> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451) 原因 java.lang.NullPointerException org.apache.struts.taglib.TagUtils.pageURL(TagUtils.java:1070) ---- 別のページを見ると、 <html:frame page="l.jsp" name="hidari"/> とname属性を宣言しているようですが、同様に記述してみると、スコープが無いとエラーが出てしまいます。 環境は、  WindowsXP  Eclipse3.3  Tomcat5.5  struts-1.3.8  JDK1.5 です。 どのように記述すべきか、検索してもヒットしなかったので、恥かしながらここで質問させて頂く事にしました。 どのように直すべきか、分かる方がいらっしゃいましたらご教授頂けないでしょうか?  また、オススメのStrutsの本がありましたら、こちらも教えて頂けたら幸いです。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • strutsで、JSP→アクションクラス→JSPの遷移ができない。

    Strutsを勉強中の者です。 初心者的な質問で大変恐縮ですが、どこを調べても原因が分からなかったので、最終手段としてこちらに質問させて頂く事にしました。 どなたかご存知の方がいらっしゃいましたらご教授頂けないでしょうか。 ・概要  strutsで、JSP→クラスの実行→JSPの遷移ができない。 ・環境  WindowsXP  Eclipse3.3  Tomcat5.5  GEF3.3  struts-1.3.8  JDK1.5 ・詳細  「Eclipseパーフェクトマニュアル ベストセレクション」  という本をもとに勉強しています。  ここのStrutsの例題で  (1).簡易家計簿 <メニュー画面>(index.jsp)を表示   (2).同画面のリンク(ShoppingInitEntry.do)をクリック   (3).リンク(ShoppingInitEntry.do)に関連づけられているクラス(ShoppingInitEntryAction)の実行   (4).データ入力画面(ShoppingUpdate.jsp)への遷移  という事をやっています。  実際に設定して、動かして見ましたが、  Eclipseでデバッグを貼っていると(3)まで動作しているのが分かるのですが、(4)の画面まで遷移しません。  具体的には、ShoppingInitEntry.doのリンクが  ブラウザのアドレスバーに表示され、画面が真っ白の状態になります。  (データ入力画面は表示されない)  尚、直接(4)の画面(ShoppingUpdate.jsp)を開くと、  データ入力画面がエラーも無く表示されます。 ---- struts-config.xmlの設定が悪いのかと思ったのですが、 問題は無さそうに思います。(必要と思われる部分を抜粋) <struts-config> <global-forwards> <forward name="ShoppingInitEntry" path="/ShoppingInitEntry.do"/> </global-forwards> <action-mappings> <action path="/ShoppingInitEntry" type="MoneyBooks.ShoppingInitEntryAction" input="/index.jsp"> <forward name="success" path="/ShoppingUpdate.jsp"/> </action> </action-mappings> </struts-config> ---- (3)ShoppingInitEntryActionのソースは、下記の通りです。 public class ShoppingInitEntryAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { return super.execute(mapping, form, request, response); } } 上記のreturn super.execute( ~の部分では nullを返しているようです。 Eclipseのコンソールにメッセージは表示されません。 A.原因は、struts-config.xmlでしょうか? それともクラスがnullを返している為に画面遷移しないのでしょうか?    そもそもsuper.executeのソースをjadのデコンパイルで追ったのですが、返り値としてNullしか返していない状態です。 B.また、馬鹿な質問ですが、そもそもjavaではnullを返り値で返すとオール×だと思っているのですが、この考え方は正しいでしょうか?  大変お恥ずかしい限りですが、ご存知の方がいらっしゃいましたら教えて頂きたく宜しくお願い致します。

    • ベストアンサー
    • Java
  • eclipseでjavadocコメント自動挿入の設定を教えてください。

    eclipse3.1.1でstrutsでの開発を行っています。 右クリック→ソース→GetterおよびSetterの生成 で、Getter、Setterの自動生成は出来ますが 「~を設定します」みたいなjavadocコメントが 自動で挿入されなくなってしまいまいた。 eclipseでgetter,setterを自動生成した際にjavadoc コメントを自動生成する設定を教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう