• 締切済み

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メソッドの自動生成を行って記述しており、なぜエラーになるのかが分からない状態です。原因となりそうな点をお教えください。宜しくお願いします。

みんなの回答

回答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

専門家に質問してみよう