std.setTemplateName(st.getTemplateName());
     std.setVendor(st.getVendor());
     std.setVersion(st.getVersion());
-    std.setCsarId(st.getCsarid());
+    std.setCsarId(st.getCsarId());
     std.setType(st.getType());
     std.setDownloadUri(st.getDownloadUri());
     Parameters parameters = new Parameters(st.getInputs(), st.getOutputs());
 
   
   private String version;
   
-  private String csarid;
+  private String csarId;
   
   private String type;
   
 
     st.setTemplateName(result.getMetadata().get("template_name"));
     st.setVendor(result.getMetadata().get("template_author"));
     st.setVersion(result.getMetadata().get("template_version"));
-    st.setCsarid(packageId);
+    st.setCsarId(packageId);
     st.setDownloadUri(downloadUri);
     st.setInputs(parseInputs(result));
     st.setOutputs(parseOutputs(result));
 
     st.setTemplateName(result.getMetadata().get(EnumYamlServiceTemplateInfo.ID.getName()));
     st.setVendor(result.getMetadata().get(EnumYamlServiceTemplateInfo.PROVIDER.getName()));
     st.setVersion(result.getMetadata().get(EnumYamlServiceTemplateInfo.VERSION.getName()));
-    st.setCsarid(packageId);
+    st.setCsarId(packageId);
     st.setDownloadUri(stDownloadUri);
     st.setInputs(parseInputs(result));
     st.setOutputs(parseOutputs(result));
 
    * @return Response
    */
   public Response queryPackageById(String csarId) {
-    ArrayList<PackageData> dbResult = new ArrayList<PackageData>();
-    ArrayList<PackageMeta> result = new ArrayList<PackageMeta>();
+    PackageData dbResult = new PackageData();
+    PackageMeta result = new PackageMeta();
     dbResult = PackageWrapperUtil.getPackageInfoById(csarId);
-    result = PackageWrapperUtil.packageDataList2PackageMetaList(dbResult);
+    result = PackageWrapperUtil.packageData2PackageMeta(dbResult);
     return Response.ok(result).build();
   }
 
       new Thread(thread).start();
       return Response.noContent().build();
     } catch (Exception e1) {
-      LOG.error("delete fail.", e1);
+      LOG.error("delete fail." + e1.getMessage());
       return RestUtil.getRestException(e1.getMessage());
     }
   }
           delCsarData(csarid);
         }
       } catch (Exception e1) {
-        LOG.error("del instance csar fail.", e1);
+        LOG.error("del instance csar fail."+ e1.getMessage());
         updatePackageStatus(csarid, null, null, null, CommonConstant.PACKAGE_STATUS_DELETE_FAIL,
             null);
         // publishDelFinishCometdMessage(csarid, "false");
    * @return Response
    */
   public Response downloadCsarPackagesById(String csarId) {
-    ArrayList<PackageData> packageList = PackageWrapperUtil.getPackageInfoById(csarId);
+    PackageData packageData = PackageWrapperUtil.getPackageInfoById(csarId);
     String packageName = null;
-    if (null != packageList && packageList.size() > 0) {
-      packageName = packageList.get(0).getName();
-    }
+    packageName = packageData.getName();
     String path = ToolUtil.getCatalogueCsarPath() + File.separator + packageName;
     File csarFile = new File(path);
     if (!csarFile.exists()) {
 
    * @param csarId package id
    * @return package detail
    */
-  public static ArrayList<PackageData> getPackageInfoById(String csarId) {
-    ArrayList<PackageData> result = new ArrayList<PackageData>();
+  public static PackageData getPackageInfoById(String csarId) {
+    PackageData result = new PackageData();
+    ArrayList<PackageData> packageDataList = new ArrayList<PackageData>();
     try {
-      result = PackageManager.getInstance().queryPackageByCsarId(csarId);
+      packageDataList = PackageManager.getInstance().queryPackageByCsarId(csarId);
+      if (packageDataList != null && packageDataList.size() > 0) {
+        result = PackageManager.getInstance().queryPackageByCsarId(csarId).get(0);
+      }
     } catch (CatalogResourceException e1) {
       LOG.error("query package by csarId from db error ! " + e1.getMessage());
     }
     }
   }
 
-  private static PackageMeta packageData2PackageMeta(PackageData packageData) {
+  public static PackageMeta packageData2PackageMeta(PackageData packageData) {
     PackageMeta meta = new PackageMeta();
     meta.setCsarId(packageData.getCsarId());
     meta.setCreateTime(packageData.getCreateTime());
 
 
   @Test
   public void testQueryPackageById() throws Exception {
-    ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
-    metas = getPackageMetaList();
+    PackageMeta metas = new PackageMeta();
+    metas = getPackageMeta();
 
     Response result = PackageWrapper.getInstance().queryPackageById("123456");
     assertEquals(200, result.getStatus());
   }
 
   private ArrayList<PackageMeta> getPackageMetaList() {
+    PackageMeta meta = new PackageMeta();
+    meta = getPackageMeta();
+    ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
+    metas.add(meta);
+    return metas;
+  }
+  
+  private PackageMeta getPackageMeta() {
     PackageMeta meta = new PackageMeta();
     meta.setCreateTime("2016-06-29 03:33:15");
     meta.setCsarId("123456");
     meta.setVersion("V1.0");
     meta.setOnBoardState(EnumOnboardState.nonOnBoarded.getValue());
     meta.setProcessState(EnumProcessState.valueOf("normal"));
-    ArrayList<PackageMeta> metas = new ArrayList<PackageMeta>();
-    metas.add(meta);
-    return metas;
+    return meta;
   }
   
   private String getDownloadUriHead() {
 
   
   private ServiceTemplate getExpectServiceTemplate() {
     ServiceTemplate serviceTemplate = new ServiceTemplate();
-    serviceTemplate.setCsarid("123456");
+    serviceTemplate.setCsarId("123456");
     serviceTemplate.setDownloadUri(MsbAddrConfig.getMsbAddress() 
         + "/files/catalog-http/NSAR/ZTE/NanocellGW/v1.0/NanocellGW/Definitions/segw.yml");
     InputParameter[] inputs = getServiceTemplateInputs();