チェンジセット 295

差分発生行の前後
無視リスト:
コミット日時:
2008/05/19 17:18:45 (14 年前)
コミッタ:
shinomiya
ログメッセージ:
  • SOAPレスポンスが複数要素で構成されている場合の対応。
    • 単一要素の場合、その要素をJS形式に変換して返却。
    • 複数要素の場合、それぞれの要素をプロパティとして格納したJSオブジェクトを返却。
ファイル:

凡例:

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

    r294 r295  
    395395                                                                                                                  String portName, 
    396396                                                                                                                  String serviceName) { 
    397                 try { 
    398                         // エンジン生成 
     397                try{ 
    399398                        CodeGenerationEngine engine = getCachedCodeGenEngine(wsdlLocationURI, outputLocation, portName, serviceName); 
    400399                        CodeGenConfiguration codeGenConfiguration = engine.getConfiguration(); 
    401                          
    402400                        return codeGenConfiguration; 
    403401                } 
    404                 catch (Exception e) { 
    405                         throw Context.throwAsScriptRuntimeEx(e); 
    406                 } 
    407         } 
    408  
     402                catch (CodeGenerationException cge) { 
     403                        throw Context.throwAsScriptRuntimeEx(cge); 
     404                } 
     405        } 
     406 
     407         
    409408        /** 
    410409         * CodeGenerationEngineの取得。(キャッシュあり) 
     
    418417         */ 
    419418        private CodeGenerationEngine getCachedCodeGenEngine(String wsdlLocationURI,  
    420                                                                                                   File outputLocation, 
    421                                                                                                   String portName, 
    422                                                                                                   String serviceName ) throws CodeGenerationException { 
     419                                                                                                               File outputLocation, 
     420                                                                                                               String portName, 
     421                                                                                                               String serviceName ) throws CodeGenerationException { 
    423422                 
    424423                CodeGenerationEngine engine = cache4codeGenEngine.get(wsdlLocationURI); 
     
    478477                return args; 
    479478        } 
    480  
     479         
    481480        private String getStubClassName(CodeGenConfiguration codeGenConfiguration) { 
    482481                 
     
    640639                        args[1] = "-c"; 
    641640                        args[2] = unix.toString(); 
    642                 _logger.debug("Compile Command(UNIX) -> {} {} {}", (Object[])args); 
     641                _logger.debug("Compile Command(UNIX) -> {} {} {}", (Object[]) args); 
    643642                } 
    644643                else{ 
     
    998997 
    999998                        if(returnType.equals(void.class)){ 
     999                                // 引数が存在する場合 
    10001000                                if(operationParamTypes.length != 0){ 
    10011001                                        source.append("        this.stub." + operatinoName + "(operationParam);")                                                               .append(LINE_SEP); 
    10021002                                } 
     1003                                // 引数がない場合 
    10031004                                else{ 
    10041005                                        source.append("        this.stub." + operatinoName + "();")                                                                                             .append(LINE_SEP); 
     
    10071008                        } 
    10081009                        else{ 
    1009                                 String getterName = "get_return"; 
     1010                                List<String> getterNameList = new ArrayList<String>(); 
     1011                                 
    10101012                                Map<String, PropertyDescriptor> returnTypeProp = JavaScriptUtility.getBeanPropertyMap(returnType); 
    10111013                                Iterator<PropertyDescriptor> propDescIt = returnTypeProp.values().iterator(); 
     
    10151017                                        // setterが無いプロパティは除外 (例:「class」プロパティ) 
    10161018                                        if(propDesc.getReadMethod() != null && propDesc.getWriteMethod() != null){ 
    1017                                                 getterName = propDesc.getReadMethod().getName(); 
    1018                                                 break; 
     1019                                                getterNameList.add(propDesc.getReadMethod().getName()); 
    10191020                                        } 
    10201021                                } 
    10211022                                 
     1023                                // 引数が存在する場合 
    10221024                                if(operationParamTypes.length != 0){ 
    10231025                                        source.append("        var javaResult = this.stub." + operatinoName + "(operationParam);")                              .append(LINE_SEP); 
    10241026                                } 
     1027                                // 引数がない場合 
    10251028                                else{ 
    10261029                                        source.append("        var javaResult = this.stub." + operatinoName + "();")                                                    .append(LINE_SEP); 
    10271030                                } 
     1031                                 
     1032                                // 戻り値が単一の場合  
     1033                                if(getterNameList.size() == 1){ 
     1034                                        String getterName = getterNameList.get(0); 
    10281035                                        source.append("        var jsResult   = " + name4JavaScriptUtility + ".javaBeanToJS"); 
    10291036                                        source.append(                                                          "(javaResult." + getterName + "());")                                           .append(LINE_SEP); 
     1037                                } 
     1038                                // 戻り値が複数の場合 
     1039                                else{ 
     1040                                        source.append("        var jsResult   = " + name4JavaScriptUtility + ".javaBeanToJS(javaResult);")              .append(LINE_SEP); 
     1041                                } 
    10301042 
    10311043                                        source.append("            jsResult   = normalize(jsResult);")                                                                                  .append(LINE_SEP); 
     
    10821094         * @throws ClassNotFoundException 
    10831095         */ 
    1084         protected void executeStubJS(String stubClassName, File srcDir, String targetEndpoint) throws JavaScriptException, FileNotFoundException, InstantiationException, IllegalAccessException, IOException, ClassNotFoundException { 
     1096        protected void executeStubJS(String stubClassName, File srcDir, String targetEndpoint)  
     1097                                                throws JavaScriptException, FileNotFoundException,  
     1098                                                           InstantiationException, IllegalAccessException,  
     1099                                                           IOException, ClassNotFoundException { 
    10851100                ScriptScope scope = getScriptScope(stubClassName, srcDir); 
    10861101                this.setPrototype(scope); 
     
    12941309                Never 
    12951310        } 
    1296  
    12971311}