- 締切済み
あるコード(JSP)のエラー
htmlからフォームで、JSPのファイルにsubmitする、という流れを実装しているのですが、JSPのコンパイルのところ(?)で、下記のようなエラーが出てしまいます。フォームに入力させた、文字をXMLファイルに書き込むという処理です。 org.apache.jasper.JasperException: Exception in JSP: /day01-1/add.jsp:9 コードは以下のとおりです。 <%@ page contentType="text/html;charset=Windows-31J" import="java.io.*, javax.xml.parsers.*,javax.xml.transform.*,javax.xml.transform.dom.*, javax.xml.transform.stream.*,org.w3c.dom.*"%> <% request.setCharacterEncoding("Windows-31J"); //String[] string="meigen"; DocumentBuilderFactory objDbf = DocumentBuilderFactory.newInstance(); DocumentBuilder objDb = objDbf.newDocumentBuilder(); Document objDoc = objDb.parse(application.getRealPath("jsp10/day01-1/meigenuser.xml"));//解析するXML指定 Element elmmeigen = objDoc.createElement("meigen");//meigen要素 Text txt = objDoc.createTextNode(request.getParameter("meigen"));//htmlから送られてくる名言を格納 elmmeigen.appendChild(txt);//名言要素に、↑の名言テキストを挿入 //***属性挿入 Attr atr_id = objDoc.createAttribute("id");//属性 Attr atr_name = objDoc.createAttribute("name");//たち Attr atr_syutten = objDoc.createAttribute("syutten"); atr_id.setValue("1");//本当は1じゃ困るけど… atr_name.setValue(request.getParameter("name")); atr_syutten.setValue(request.getParameter("syutten")); elmmeigen.setAttributeNode(atr_id); elmmeigen.setAttributeNode(atr_name); elmmeigen.setAttributeNode(atr_syutten); objDoc.getDocumentElement().appendChild(elmmeigen);//最後にelmmeigenをルートノード配下に配置 //***出力 TransformerFactory fac = TransformerFactory.newInstance(); Transformer tran = fac.newTransformer(); StreamResult result = new StreamResult(new FileOutputStream(application.getRealPath("jsp10/day01-1/meigenuser.xml"))); tran.transform(new DOMSource(objDoc.getDocumentElement()),result); response.sendRedirect("meigen.html"); //xmlの構造は //<meigen id = "ID" name = "ハンドルネーム" syutten = "出展作品など">とする %> よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- auty
- ベストアンサー率58% (284/486)
Document objDoc = objDb.parse(application .getRealPath("jsp10/day01-1/meigenuser.xml"));//解析するXML指定 のあたりでエラーが出ているようです。 メソッドgetRealPath()の引数は、仮想パスを記述します。 もし、jsp10がコンテキストパス(アプリケーション名)の場合、引数は、 "/day01-1/meigenuser.xml" または "day01-1/meigenuser.xml" となります。
お礼
回答ありがとうございます。 直してみたのですが、動きませんでした…。 謎です。。。