【緊急】Strutsで困っています

このQ&Aのポイント
  • Strutsを使用した開発業務でクリティカルな遅延が発生しており、解決策を求めています。
  • 対象の画面に検索機能があり、検索結果がある場合にシステムエラーが発生しています。
  • デバッグによる原因特定が困難で、セッションや定義の確認も行いましたが解決策が見つかりません。
回答を見る
  • ベストアンサー

【緊急】Strutsで困っています

お世話になります。 この度開発業務にて解決の出来ないエラーに はまり、クリティカルな遅延を続けていて 精神的にまいってきています。 どなたか、お知恵をお貸しください! 業務の関係上資料として持ち出せるものが ほとんどありませんので、書き留めた一部のエラーで もし、あっ!と思われた方おられましたら コメントをお願い致します。 1.使用環境 言語:Java フレームワーク:Struts(バージョン不明) ローカル環境サーバー:WAS7 Eclipse3.8だったと思います 2.画面遷移 メニューリンク→今回対象の画面 3.問題点 対象の画面には検索機能があります。 検索を実施し1件以上結果があった場合、 他の画面へ遷移したり、2回目の検索をしたりすると システムエラーで落ちてしまいます。 その際にデバッグで追ってみようと試みましたが、 Actionにわたる前に落ちているようで デバッグ不可能でした。 どうも、定義なのかセッションがおかしいのかという ところでXMLなどの定義も確認してみましたが、 他画面と同様の定義で間違いが見つかりませんでした。 デプロイしたものが壊れているのかと思い、 デプロイしなおしてみましたが結果は同じでした。 1回目の検索の後セッションが切れて 画面遷移時にアクションへ渡らず落ちるといった 現象も考えられるでしょうか? 以下のようなエラーが出ております。 <エラー内容> javax.servlet.ServletException: BeanUtils.populate at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1210) (中省略) Caused by: java.lang.IllegalArgumentException: 引数タイプが一致しません at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod) (中省略) SystemException [wn is null { } ,, null] 以上です。 引数タイプが気になっていますが、 DTOやBeanを確認してもどうも検討がつきませんでした。 粘りましたが、限界です。 何卒宜しくお願い致します。

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

  • ベストアンサー
  • hue2011
  • ベストアンサー率38% (2800/7250)
回答No.1

Objectのcreateが失敗しているようですね。 newができていないクラスを引数にしていませんか

axelchk
質問者

お礼

アドバイスありがとうございました。 結果ですが、画面で使用するHiddenの変数を ラベルで宣言していたのが原因だったようです。 Stringに変えたところエラーが出なくなりました。 Strutsの定義関連のエラーはいろいろブラックボックスになりがちで はまると痛いですね。 ありがとうございました。

axelchk
質問者

補足

ご回答ありがとうございます。 宣言箇所等再度見直してみます。 調査結果を後日報告させていただきます。

関連するQ&A

  • struts java ログインのセッション情報を確認するには?

    struts java ログインのセッション情報を確認するには? Login.jspからログインボタンを押下(この時にセッション情報を取得)して、画面遷移をしてB.jspに行きます。 この時にBAction.javaでセッション情報をB.jspが表示される前に取得したいのですがどうすればいいのでしょうか? B.jsp画面が表示される前に、セッション情報を取得してセッション情報があるかないかの判定を行いあればB.jspを表示してなければログイン画面を表示しようと考えています。 BAction.javaに記述したい処理です。 HttpSession session = request.getSession(false); if ( session.getAttribute("sessionInformation") != null ) { System.out.println("セッション有効") ; return mapping.findForward("success"); } else { //論理名"error"に該当するページへ移動(struts-config.xmlを参照) return mapping.findForward("errorSession"); } この処理をActionクラスにどのように記述すればいいのでしょうか? struts-config.xmlファイルの内容 <action <forward name="errorSession" path="/Login.jsp" /> <forward name="success" path="/B.jsp" /> </action> です。 URL直打ちをしてB.jspにアクセスしようとしたときに、セッション情報をもっていない為、上記のelseになり、ログイン画面に遷移しようと考えております。 かなりネットで調べましたが全く分かりませんでした。

    • ベストアンサー
    • Java
  • struts1からstruts2へとフレームワークのバージョンアップし

    struts1からstruts2へとフレームワークのバージョンアップしています。 そこで、セッションタイムアウトについて困っています。 struts1のときでは、SessionFilterを使って各アクションでセッションタイムアウトのチェックを行い、タイムアウトした場合は、エラー画面を表示するようにしていました。 struts2でもSessionFilterを使って、実装しようとしましたが挙動がおかしくなります。 struts2では、SessionFilterは使えないのでしょうか? struts2での書き方が分からず困っています。 アドバイスをお願いいたします。

    • ベストアンサー
    • Java
  • struts2 例外時にエラー画面に遷移しない

    struts2でStruts.xmlに例外が発生した場合はError.JSPに遷移するように指定しました。 Actionクラス上で発生した例外はError.JSPに遷移するようになりましたが interceptorで発生した例外はTomcatのエラー画面に遷移してしまいます。 これは仕様なのでしょうか?

  • JSP内で、アクションによってセッションをクリアする方法

    はじめまして。 Java(struts)とJavaScriptを使用し、プログラムを作成しています。 サーバー側の処理で、セッション領域に必要な情報をセットし、その情報を画面表示の際に使用しています。 ひとつの画面から、複数のアクションを飛ばす画面で それぞれは、JavaScriptによって分岐しアクションを選択する形になっています。 表示された画面から、指定したアクション以外のアクションで、別の画面に遷移しようとした際に、 セッション領域をクリアする処理が必要なため、色々と探しているんですが、なかなか思うように情報が集まりません。 JavaScriptでセッションを操作する。 又は、指定された画面以外に遷移する場合に、 セッション内容をクリアする方法、どうかご教授お願いいたします。 環境: Java1.4.2_09 struts 1.2.7 tomcat 4.1.33

    • ベストアンサー
    • 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
  • Struts の画面遷移について

    現在Struts1.1で開発しております。 Strutsどころか、Javaもほぼ初めてなのでテンパってます。 言葉で説明するのはとても難しいく、分かりにくいと思いますが、 何かアドバイスをお願い致します。 【質問】 A画面、B画面、共通検索画面があり A→共通→A B→共通→B の画面遷移をします。 このとき、AまたはBで選択された値を共通画面のtextフィールドに反映します。 遷移後の共通検索画面で対象データ検索し、選択された値を呼び元(AまたはB)に返します。 さらにAまたはBでは遷移前の情報は保持しなければいけません。 どうして作ったら良いか分かりません。 非常に困ってます。。。

    • ベストアンサー
    • Java
  • Java struts Formを分ける

    Java Struts1.3.10 1jspにつき1Formとし、A.jspからB.jspへ遷移させようと思っています。 しかしA.jspは正常に表示されるのですが、遷移後エラーが発生します。 Bean AForm のプロパティ AList に対するゲッターメソッドがありません 遷移後に見てほしいのはBFormなのですが、AFormを見てしまっています。 どのようにすればBFormを参照することができますでしょうか? struts-config.xml <action attribute="AForm" input="/pages/A.jsp" name="AForm" path="/Result" type="jp.co.elephan.rental.action.Aaction" scope="session" validate="true" parameter="insert"> <forward name="Result" path="/pages/B.jsp" /> <forward name="Return" path="/pages/A.jsp" /> </action> <!-- --> <action attribute="BForm" input="/pages/B.jsp" name="BForm" path="/Return" type="jp.co.elephan.rental.action.Baction" scope="session" validate="true" parameter="yes,no"> <forward name="Result" path="/pages/A.jsp" /> <forward name="Return" path="/pages/B.jsp" /> </action> 以上です。

    • ベストアンサー
    • Java
  • Strutsで画面遷移させない。

    Strutsでwebアプリを作成しているのですが、jsp上のボタンを押下時、sessionに持ってる変数を書き換えたいのですが、画面遷移はさせたくないのです。それって可能ですか? どなたかご教授ください。

    • ベストアンサー
    • Java
  • strutsで例外発生

    Strutsを使用してWebアプリケーションの開発を行っていますが、例外発生時の振る舞いについて教えてください。 あるメソッドで例外が発生した場合に、catchでnullを返して、 呼び元では戻り値がnullかどうかをチェックするという方法をとっています。 nullを返す場合はシステムエラーである為、そのままExceptionを返してエラー画面に遷移させればいいのにと思うのですが、一般的にnullを返すというやり方が正しいのでしょうか? ちなみに、呼んだメソッドがnullの場合に特別な処理はしていません。

    • ベストアンサー
    • Java
  • strutsのactionタグinput

    strutsのvalidatorを使用するため 「struts-config」のactionタグに以下の修正を入れると思います。  ・validate = true  ・input  = "エラー時に遷移するページ" 上記の修正後、実行すると 画面の初期表示時に、どうやらinputで指定した画面に遷移してしまいます。 エラー時に遷移するための指定かと思ったのですが 画面初期表示時にも読み込まれるのでしょうか? 画面表示で分割して表示している所為でしょうか? ・validatorでのエラーはポップアップで表示したいと思っています。 ・該当する1画面表示に対しての配置は以下になります。  (1)Menue.html   -(2)Top.jsp※共通なヘッダ部分   -(3)Main.html     -(4)Init.jsp※検索結果表示部分     -(5)Search.html       -(6)Search_Up.html※上部の表示部分       -(7)Sarch_In.jsp※検索条件入力部分 ※初期表示は(1)の画面で、validatorを使用するのは(7)の画面です。 (7)の画面には以下を追加しました。  追加⇒<html:javascript formName="対象Form名"/>   <html:form action="actionのpath名.do?   action=search" method="post" target="view"  追加⇒onsubmit="return validate対象Form名(this)"> 1つの画面に対して細かく資産を分けてしまうと validatorを利用する際にうまく画面遷移が出来ないのでしょうか?

専門家に質問してみよう