チェンジセット 331

差分発生行の前後
無視リスト:
コミット日時:
2008/10/01 18:33:27 (14 年前)
コミッタ:
shinomiya
ログメッセージ:

#554 XMLDocumentおよびXMLParserオブジェクトで発生したJavaの例外をプロパティとして取得可能にする

  • あわせて、WebコンテナでJSSPを起動していない場合でも、JsspUnit?テストを実行可能にしました。
    • im-jssp/src/test/java/Main.java を Eclipse上から実行すると テスト結果が以下に出力されます。
      • im-jssp/target/JsspUnitTestResult/result_for_jsspUnitTestExecute.xml
        • 整形された状態でテスト結果を表示するには、xsl/jsunit/im_jsunit.xsl やJsUnit?関連の画像が必要です。。。
        • 出力先を変更したい場合は、im-jssp/src/test/js/jsspUnitTestExecute.jsの変数「resultDirName」と「resultFileName」を直接書き換えればOK。
ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • trunk/im-jssp/src/main/java/org/intra_mart/jssp/script/api/dom/XMLDocumentObject.java

    r70 r331  
    6363public class XMLDocumentObject extends DOMNodeObject implements Serializable{ 
    6464 
     65        private static final String PROP_NAME_4_JAVA_EXCEPTION = "javaException"; 
    6566        private Document document; 
    6667        private boolean error = false; 
    67  
     68        private String errorMessage = null; 
     69 
     70         
    6871        /** 
    6972         * @param src 
     
    7881                } 
    7982                catch(SAXException saxe){ 
     83                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, saxe); 
    8084                        this.error = true; 
     85                        this.errorMessage = saxe.getMessage(); 
    8186                } 
    8287                catch(IOException ioe){ 
     88                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, ioe); 
    8389                        this.error = true; 
    84                 } 
    85                 catch(NullPointerException npe){ 
     90                        this.errorMessage = ioe.getMessage(); 
     91                } 
     92                catch(NullPointerException npe){ 
     93                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, npe); 
    8694                        this.error = true; 
     95                        this.errorMessage = npe.getMessage(); 
    8796                } 
    8897                catch(Exception e){ 
     98                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, e); 
    8999                        this.error = true; 
     100                        this.errorMessage = e.getMessage(); 
    90101                } 
    91102        } 
     
    149160                return outputStream.toString(); 
    150161        } catch (TransformerConfigurationException e) { 
     162                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, e); 
    151163            return null; 
    152164        } catch (TransformerException e) { 
     165                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, e); 
    153166            return null; 
    154167        } 
     
    187200                } 
    188201                catch(NullPointerException npe){ 
     202                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, npe); 
    189203                        return null; 
    190204                } 
     
    211225                } 
    212226                catch(NullPointerException npe){ 
     227                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, npe); 
    213228                        return null; 
    214229                } 
     
    227242                } 
    228243                catch(DOMException dome){ 
    229                         return null; 
    230                 } 
    231                 catch(NullPointerException npe){ 
     244                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, dome); 
     245                        return null; 
     246                } 
     247                catch(NullPointerException npe){ 
     248                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, npe); 
    232249                        return null; 
    233250                } 
     
    246263                } 
    247264                catch(NullPointerException npe){ 
     265                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, npe); 
    248266                        return null; 
    249267                } 
     
    261279                } 
    262280                catch(NullPointerException npe){ 
     281                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, npe); 
    263282                        return null; 
    264283                } 
     
    275294                return this.error; 
    276295        } 
    277          
     296 
     297        /** 
     298         * エラーメッセージの取得を行います。<br/> 
     299         * <br/> 
     300         * XML ソースを解析中にエラーが発生していた場合、そのエラーメッセージを返します。<br/> 
     301         *  
     302         * @scope public 
     303         * @return String エラーメッセージ 
     304         */ 
     305        public String jsFunction_getErrorMessage(){ 
     306                return this.errorMessage; 
     307        } 
     308 
    278309} 
  • trunk/im-jssp/src/main/java/org/intra_mart/jssp/script/api/dom/XMLParserObject.java

    r56 r331  
    3030public class XMLParserObject extends ScriptableObject implements Serializable{ 
    3131 
     32        private static final String PROP_NAME_4_JAVA_EXCEPTION = "javaException"; 
    3233        private boolean error = true; 
    3334        private String errorMessage = null; 
     
    122123                }  
    123124                catch(SAXException saxe){ 
     125                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, saxe); 
     126 
    124127                        this.error = true; 
    125128                        this.errorMessage = saxe.getMessage(); 
     
    127130                }  
    128131                catch(IOException ioe){ 
     132                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, ioe); 
     133                         
    129134                        this.error = true; 
    130135                        this.errorMessage = ioe.getMessage(); 
     
    132137                }  
    133138                catch (ParserConfigurationException pce) { 
     139                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, pce); 
     140                         
    134141                        this.error = true; 
    135142                        this.errorMessage = pce.getMessage(); 
     
    137144                } 
    138145                catch(NullPointerException npe){ 
     146                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, npe); 
     147                         
    139148                        this.error = true; 
    140149                        this.errorMessage = npe.getClass().getName() + " : " + npe.getMessage(); 
     
    142151                }  
    143152                catch(Exception e){ 
     153                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, e); 
     154                         
    144155                        this.error = true; 
    145156                        this.errorMessage = e.getClass().getName() + " : " + e.getMessage(); 
     
    231242                }  
    232243                catch(SAXException saxe){ 
     244                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, saxe); 
     245                         
    233246                        this.error = true; 
    234247                        this.errorMessage = saxe.getMessage(); 
     
    236249                }  
    237250                catch(IOException ioe){ 
     251                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, ioe); 
     252                         
    238253                        this.error = true; 
    239254                        this.errorMessage = ioe.getMessage(); 
     
    241256                }  
    242257                catch (ParserConfigurationException pce) { 
     258                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, pce); 
     259                         
    243260                        this.error = true; 
    244261                        this.errorMessage = pce.getMessage(); 
     
    246263                } 
    247264                catch(NullPointerException npe){ 
     265                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, npe); 
     266                         
    248267                        this.error = true; 
    249268                        this.errorMessage = npe.getClass().getName() + " : " + npe.getMessage(); 
     
    251270                }  
    252271                catch(Exception e){ 
     272                        this.put(PROP_NAME_4_JAVA_EXCEPTION, this, e); 
     273                         
    253274                        this.error = true; 
    254275                        this.errorMessage = e.getClass().getName() + " : " + e.getMessage(); 
  • trunk/im-jssp/src/test/js/JsUnitを利用したテストに関する注意点.txt

    r313 r331  
    1616テスト実行時には、「im-jssp/src/test/js」ディレクトリをJSSPのソースディレクトリとして登録してください。 
    1717 
    18 上記ディレクトリを imart.xmlの 
    19 「intra-mart/platform/service/resource/jssp/source-path/general/directory」タグに追加してください。 
     18上記ディレクトリを WEB-INF/classes/conf/jssp-config.xmlの 
     19「intra-mart/jssp/source-path/general/directory」タグに追加してください。 
    2020 
    2121- jssp-config-XXXX.xmlの設定例 
  • trunk/im-jssp/src/test/js/jsspUnitTestExecute.js

    r313 r331  
     1var resultDirName  = "target/JsspUnitTestResult/"; 
     2var resultFileName = "result_for_jsspUnitTestExecute.xml"; 
     3 
     4var logger = Logger.getLogger(); 
     5 
    16function init(request){ 
    2         Debug.print("テストを開始します")
     7        var testSrc = "jsspUnitTestExecute"
    38         
    4         var result = JsUnit.execute("jsspUnitTestExecute", "xsl/jsunit/im_jsunit.xsl"); 
     9        logger.info("テスト開始: {}", testSrc); 
     10        var testResult = JsUnit.execute(testSrc, "xsl/jsunit/im_jsunit.xsl"); 
    511 
    6         var response = Web.getHTTPResponse(); 
    7         response.setContentType("text/xml; charset=utf-8"); 
    8         response.sendMessageBodyString(result); 
     12        try{ 
     13                var response = Web.getHTTPResponse(); 
     14                response.setContentType("text/xml; charset=utf-8"); 
     15                response.sendMessageBodyString(testResult); 
     16        } 
     17        catch(ex){ 
     18                logger.trace("WebコンテナからJSSPを起動していない(=JVMだけで起動している)", ex); 
     19                 
     20                var dir = new File(resultDirName); 
     21                dir.makeDirectories(); 
     22                 
     23                var file = new File(dir.path(), resultFileName); 
     24                var result = file.write(testResult); 
     25                 
     26                if(result){ 
     27                        logger.info("テスト結果を出力しました: {}", file.path()); 
     28                } 
     29                else{ 
     30                        logger.info("テスト結果の出力に失敗しました: {}", file.path()); 
     31                } 
     32                 
     33        } 
    934} 
    1035 
    1136function defineTestSuite() { 
    1237        var suite = new JsTestSuite("All Test"); 
    13  
    14         suite.addTest("サーバサイドのImJSONテスト","jssp/script/api/im_json_test"); 
    15  
     38        suite.addTest("サーバサイドのImJSONテスト",      "jssp/script/api/im_json_test"); 
     39        suite.addTest("URLオブジェクトのテスト",         "jssp/script/api/URLTest"); 
     40        suite.addTest("XMLDocumentオブジェクトのテスト", "jssp/script/api/XMLDocumentTest"); 
     41        suite.addTest("XMLParserオブジェクトのテスト",   "jssp/script/api/XMLParserTest"); 
    1642        return suite; 
    1743} 
  • trunk/im-jssp/src/test/resources/conf/jssp-config-temp.xml

    r310 r331  
    4646                        <application> 
    4747                                <initializer-script>setup</initializer-script> 
     48                                <initializer-script>jsspUnitTestExecute</initializer-script> 
     49                                <!--   
    4850                                <initializer-script>sample/web_service/invoke_sample</initializer-script> 
     51                                --> 
    4952                        </application> 
    5053                </initializer>