• 締切済み

struts2 ファイル アップロード

今、ファイルのアップロードのプログラム開発を行なっておりますが アップロードのボタンを押すとHTTPステータス500のエラーで実行ができません。 詳しい方、間違っている箇所のご指摘宜しくお願い致します。 プログラムは以下の通りです。(JAVAは一部削除しています) (JSP) <%@ page contentType="text/html; charset=UTF-8" %> <%@ page pageEncoding="Windows-31J" %> <%@taglib prefix="s" uri="/struts-tags" %> <%@taglib prefix="original" uri="/original-tags" %> <%@taglib prefix="originalJK" uri="/original-JK-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> %@ include file="html-head.jsp" %> <script type="text/javascript"> </script> </head> <body onload> <%@ include file="HeaderTitle.jsp" %> <div class="navigation" align="right"> <originalJK:CommonLinkTag mode="2" /><br> </div> <br> <s:form enctype="multipart/form-data"> <table width="100%"> <tr> <td> <INPUT type=file name="upload"> </td> </tr> </table> <table width="100%"> <tr> <td> <s:submit value="EXCELアップロード" cssClass="form_button" action="tEST11A" method="doUpload" onclick="return confirm('アップロードしてよろしいですか。');"/> </td> </tr> </table> </s:form> </body> <html> (JAVA) @ParentPackage(value = "Original") @Results({ @Result(name = "success", value = "jsp/TEST11A.jsp"), @Result(name = "failure", value = "jsp/TEST11A.jsp") }) public class TEST11AAction extends SuperAction { private String aBtnUpdateMsg = ""; private File upload; private String uploadContentType; private String uploadFileName; public String execute() throws Exception { return "success"; } public String doUpload() throws Exception { try { // DBコネクションオープン vDb.open(); TEST11ADao vDao = new TEST11ADao(vDb); int vCount = 0; //データ存在チェック vCount = vDao.dbCntLine(); FileInputStream fis = new FileInputStream(upload); POIFSFileSystem fs = new POIFSFileSystem(fis); // ワークブック・オブジェクトの取得 HSSFWorkbook wb = new HSSFWorkbook(fs); // 総ワークシート数の取得 int sheets = wb.getNumberOfSheets(); // ワークシートごとに、データを取得 int idx = 0; for (int sheetIdx = 0; sheetIdx < sheets; sheetIdx++ ) { //コミット vDb.commit(); } finally { // DBクローズ vDb.close(); } return "success"; } public File getUpload() { return upload; } public void setUpload(File upload) { this.upload = upload; } public String getUploadContentType() { return uploadContentType; } public void setUploadContentType(String uploadContentType) { this.uploadContentType = uploadContentType; } public String getUploadFileName() { return uploadFileName; } public void setUploadFileName(String uploadFileName) { this.uploadFileName = uploadFileName; }

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

  • reiman
  • ベストアンサー率62% (102/163)
回答No.2

tryの中を vDb.open(); 以外コメントアウトしてみてエラーが出ないことを確認し 一行づつ順にコメントアウトを外していき エラーになった時点における直前に コメントアウトを外した行がバグの原因だと思われる。

kouchan_s
質問者

補足

早速のご回答ありがとうございます。 アップロードにつきましてはご回答者様の言われる通り 実行してみたいと思います。ありがとうございました。 このプログラムで検索の機能もつけているのですが enctype="multipart/form-dataをつけるとHTTP500のエラーが出力され enctype="multipart/form-dataをはずすとデータベースより検索ができます。またアップロードもenctype="multipart/form-dataをつけた時と つけないときでは添付の例外内容がかわっています。 これはそのようなことかわかりますでしょうか?。 宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

エラーとか例外のログは出ていませんか?

kouchan_s
質問者

補足

早速の返信ありがとうございます。 例外は添付の通りです。 宜しくお願い致します。

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

関連するQ&A

  • Struts2のファイルアップロードにて

    質問させて頂きます。 Struts2にてファイルアップロードの送信フォームを作成したところ Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location] とのエラーが発生してファイルをアップロードすることができませんでした。 ビルドパスはjarファイルを読み込むことでインポートしているのですが、 このエラー文が発生する原因はなんなのでしょうか。 -----------------jsp画面-------------- <s:form name="write" action="doUpload" method="POST" enctype="multipart/form-data"> <s:file name="upload" label="File"/> <s:submit value="アップロード" /> </s:form> ----------------サーブレット------------- public class FileUploadTest extends ActionSupport{ private File upload; private String uploadContentType; private String uploadFileName; private String fileCaption; public String execute() throws Exception { return SUCCESS; } ※各セッターとゲッターは省略 ----------------struts.xml---------------- <action name="doUpload" method="upload" class="DB.FileUploadTest"> <result name="true" >/uploadTest.jsp</result> <result name="error">/uploadForm.jsp</result> </action> と記述しております。 どうかエラー原因のご教授よろしくお願いします。

  • Java Struts ~に対するゲッターメソッドがありません

    Java Struts WindowsXp Java Struts共に初心者です。 上記を使用してログイン画面を作成しています。 エラーが発生しているのですが 「Bean LoginFrm のプロパティ id に対するゲッターメソッドがありません」 と言われます。 参考サイトはいくつもあるのですが、そもそもイテレータを使用していないとか私の状況に一致する回答を見つけることができませんでした。 (JAVA、Struts共に慣れていないためか応用がきかないみたいです) loginTop.jsp login.jsp LoginFrm.java LoginAct.java struts-config.xml のいずれかが原因だとは思うのですが、そのどこかが皆目見当もつきません。 loginTop.jsp----------------------------- <html:form action="/login"> <table border="0"> <tr><td> ログインID<html:text name="LoginFrm" property="id" size="6" maxlength="5" /> </td></tr> <tr><td> パスワード<html:password name="LoginFrm" property="pass" size="6" maxlength="5" /> </td></tr> </table> </html:form> login.jsp---------------------- <html:form action="/login"> <table border="0"> <tr><td> A:<bean:write name="LoginFrm" property="id" /> </td></tr> <tr><td> B:<bean:write name="LoginFrm" property="pass" /> </td></tr> </table> </html:form> LoginFrm.java---------------------- private String id; private String pass; public String getID() { return id; } public void setID(String id) { this.id = id; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } LoginAct.java-------------------- throws Exception { request.setCharacterEncoding("Windows-31J"); LoginFrm logFrm = (LoginFrm) form; log.info(" user = "+logFrm.getID()); log.info(" user = "+logFrm.getPass()); return mapping.findForward("login"); } struts-config.xml--------------------------- <form-beans> <form-bean name="LoginFrm" type="loginForm.LoginFrm" /> </form-beans> ~ <action attribute="LoginFrm" input="/pages/loginTop.jsp" name="LoginFrm" path="/login" type="loginAction.LoginAct" scope="request" validate="true"> <forward name="login" path="/pages/login.jsp" /> </action> 以上です。 かなり長くなり申し訳ありません。

    • ベストアンサー
    • Java
  • 一覧から選択した行の行番号を取得について

    はじめまして。 一覧を表示させて一覧の先頭の選択ボタンを押したした行の行番号の取得し、その行にシステム日付を表示させたいのですが、うまくいきません。 現在は、btn_selectにalertを入れて選択した行の番号が取得できたかどうか確認したところ、取得できず%{#stat.index}が出力されてしまいます。 どのようにすればボタンを押した行の行番号の取得及びその行のある項目にシステム日付を表示させることができますか?。 宜しくお願いします。 <%@ page contentType="text/html; charset=UTF-8" %> <%@ page pageEncoding="Windows-31J" %> <%@taglib prefix="s" uri="/struts-tags" %> <%@taglib prefix="original" uri="/original-tags" %> <%@taglib prefix="originalLY" uri="/original-LY-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <%@ include file="html-head.jsp" %> <script type="text/javascript"> function btn_select(indx) { alert (indx); } </script> </head> <body> <%@ include file="HeaderTitle.jsp" %> <s:form> <table class="table_line" > <tr> <th rowspan=2 class="form_title_list" >選択</th> <th rowspan=2 class="form_title_list" >A</th> <th rowspan=2 class="form_title_list" >B</th> <th rowspan=2 class="form_title_list" >C</th> <th colspan=2 class="form_title_list" >D</th> </tr> <s:iterator value="shinchokuList" status="stat"> <tr> <s:if test="%{#stat.index % 2 == 0}"> <td class="table_list1"><input type="button" value="選択" name="button" onclick="btn_select(%{#stat.index});"/></td> <td class="table_list1" ><s:textfield name="List[%{#stat.index}].A" size="10" maxlength="10" readonly="true" /></td> <td class="table_list1" ><s:textfield name="sist[%{#stat.index}].B" size="63" maxlength="63" readonly="true" /></td> <td class="table_list1" ><s:textfield name="List[%{#stat.index}].C" size="5" maxlength="5" readonly="true" /></td> <td class="table_list1" ><s:textfield name="List[%{#stat.index}].D" size="10" maxlength="10" readonly="true" /></td> <td class="table_list1" ><s:textfield name="List[%{#stat.index}].E" size="10" maxlength="10" readonly="false" cssStyle="%{eErr}"/></td> </s:if> </s:else> </s:iterator> </table> </td> </tr> </table> </s:form> </body> <html>

  • JSPで、PG上のstrutsオブジェクトについて

    動作環境 OS:WindowsXP Home Edition SP3 Browser:IE8 OpenSoftWare:Tomcat6.0.29 Framework:Struts2.2.1 Tool:Eclipse3.2.0 JavaPGで、out.println関数を使用して、strutsのオブジェクト書いてもブラウザ上で出力されません。 直接strutsタグで、書くとブラウザ上に正常に表示されます。 Java側で、対応されていないのでしょうか? どなたか、ご指導願います。 ■事象例 1.「a.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <% String strtest = "#{'1':'1','2':'2'}"; out.println("<s:select name=\"cbotest\" list=\"#{'1':'1','2':'2'}\"/>"); %> </s:form> </body> </html> 2.「b.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <s:select name="cbotest" list="#{'1':'1','2':'2'}"/> </s:form> </body> </html> 3.IE8上の表示(画像添付参照) 1.「a.jsp」結果 何も出力されません。 2.「b.jsp」結果 [1[▼]] [1■■] [2   ]

    • ベストアンサー
    • Java
  • 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 1 で、複数件のフィールドを更新する方法を教えてください。

    <head> <title>登録画面</title> </head> <body> <html:form action="/RegisterData"> ヘッダ:<html:text property="strHeader" /><br> <table border="0"> <logic:iterate id="objRecord" name="BIKO_FORM" property="objBikoList" indexId="intIndex"> <tr> <td>項目<%=(intIndex+1)%></td> <td><html:text name="objRecord" property="strBiko" indexed="true"/></td> </tr> </logic:iterate> <tr> <td colspan="2"><html:submit value="記録する" /></td> </tr> </table> </html:form> </body> このような JSP で、html:text に入力された値を再表示するプログラムを作ろうとしています。 表示は、 <head> <title>登録成功画面</title> </head> <body> <bean:write name="BIKO_FORM" property="strHeader" /> <table border="0"> <logic:iterate id="objRecord" name="BIKO_FORM" property="objBikoList" indexId="intIndex"> <tr> <td>項目<%=(intIndex+1)%>:<bean:write name="objRecord" property="strBiko" /></td> </tr> </logic:iterate> </table> </body> このような感じです。 ActionForm のプロパティは、 private String strHeader; private List<BikoFormDetail> objBikoList; です。 特にセッションに再登録したり、値を変更したりはしないのですが、うまく動作しないのです。iterater で表示した、html:text への画面からの入力値を参照することは、無理なのでしょうか?

    • ベストアンサー
    • Java
  • ファイルアップロードについて

    ファイルアップロードについて質問させて下さい。 ID、ファイルアップロードの機能の2つがあります。 ファイルを指定し、submitボタンを押下すると「b.php」に遷移します。 ファイルをアップロードした場合には遷移をせず ID、画像パスが入力されている場合のみ「b.php」に遷移したいのです。 入力チェックはjavascriptで行っていますが、その場合には「action=""」として javascript側で遷移するしか方法は無いのでしょうか? ---a.php---- <form enctype="multipart/form-data" action="b.php" method="post" name="a"> <input type="hidden" name="MAX_FILE_SIZE" value="50000000" /> <table> <tr> <th>ID</th> <td><input type="text" name="ID" value=""></td> </tr> <tr> <th>画像</th> <td><input type="file" name="img" value=""> <input type="submit" name="upload" value="upload"> </td> </tr> </table> <a href="#" onClick="javascript:check('a');"><img src="button.jpg"></a> </form> お手数ですが、ご教授よろしくお願い致します。

    • ベストアンサー
    • PHP
  • JSPにおける引数の受け渡し

    こんにちは. 今JSPのプログラムを作っているのですが,引数を送る場面で困っています. test2.jspにおいて,タイプはちゃんと表示されているのですが,IDとパスワードはnullになっています. もし宜しければ,どこが間違っているのかお教えいただけないでしょうか?よろしくお願いします. 【test.jsp】 ~省略~ <%String type="aaa";%> <?xml version="1.0" encoding="Shift-JIS" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> ~省略~ </head> <body> <div class="abc"> <h1>タイトル</h1> <form action="test2.jsp" method="post"> <p> <table> <tr> <td>ID</td> <td><input type="text" name="user_id" /></td> </tr> <tr> <td>パスワード</td> <td><input type="password" name="user_pass" /></td> </tr> </table> <br /> <input type="button" value="ログイン" onclick="test('test2.jsp?type=<%=type%>')" /> </p> </form> </div> <script type="text/javascript" src="test.js"></script> </body> </html> 【test2.jsp】 ~省略~ <% String type=request.getParameter("type"); String user_id=request.getParameter("user_id"); String user_pass=request.getParameter("user_pass"); %> ~省略~ <h1>タイトル2</h1> <p> <table> <tr> <td>ID</td> <td><%=user_id%></td> </tr> <tr> <td>パスワード</td> <td><%=user_pass%></td> </tr> <tr> <td>タイプ</td> <td><%=type%></td> </tr> </table> </p>

    • ベストアンサー
    • HTML
  • Struts 1.3 でbeanタグが認識されない

    Struts初心者です。 Struts1.3で以下のようなJSPを作成していますが、 "bean:write"のところで、"bean"に対応するtaglibディレクトリが存在しないかTLDファイルが見つかりません。 とエラーになります。 <%@ page contentType="text/html;charset=Windows-31J" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> ・ ・ ・ <html:html> <head> <title>○○○○○○○○</title> </head> <body> <h1>○○○○○○○○</h1> ●●●●<bean:write name="xxxx" property="id" />! </body> </html:html> "html"の方はエラーになりません。 ケアレスミスのような気がしていますので、どなたか教えていただけると嬉しいです。

  • 外部ファイルを読み込めない

    初めまして。いつも質問やその回答を読ませていただいて、参考にさせていただいてます。 javascriptで作った超簡単なプログラムが動かないんです。 どなたか、助けてください。(>_<) 以下、test.htmlとtest.jsを作って、試して見ているのですが、動かない理由が分からず苦しんでいます。 =============test.html============= <html> <head> <script type="text/javascript" language="javascript" src="./test.js" ></script> </head> <body> <table> <form name="form2" method="post" onSubmit="return check()"> <tr><td><input type="text" name="names" size="50"></td></tr> <tr><td><input type="submit" name="submit" value="予約"></td></tr> </form> </table> </body> </html> =============test.html============= =============test.js============= function check(){ names=document.form2.names; if(names.value == ""){ alert("お名前を入力してください。"); names.focus(); return false; } else return true; } =============test.js============= どちらも、同じディレクトリに入れています。safari、ieでも×です。 どなたか、教えていただけませんでしょうか。