本文地址:http://blog.csdn.net/sushengmiyan/article/details/42940883

本文作者:sushengmiyan

------------------------------------------------------------------------------------------------------------------------------------

使用sencha cmd build app 生成的工程,我们期望只使用cmd打包好之后的那一个压缩后的js,而不用将体积庞大的所有ext代码都部署。

试了一下ext的官方例子,打包之后,我们使用build\production\yourappname 目录下的文件都可以了。将这个目录下的文件部署到tomcat下,增加WEBINFO和下面的web.xml文件。启动tomcat.

使用cmd生成默认的例子,部署了一下,发现可以正常运行。

总结一下:使用纯净的ext产生的文件,使用cmd打包之后,将所有文件都压缩了,在没有涉及到后台交互的情况下,直接将build下那个工程的文件拷贝到tomcat即可正常运行你所编写的程序,而且这样,也不会将你的源代码直接发布。

提交一个部署中遇到的问题,打包之后,发布到tomcat 启动报错,内容如下:

NetworkError: 404 Not Found - 

http://localhost:8080/extoa/.js?doc=142183145561

TypeError: c is not a constructor
return new c(a[0])

深入查看后,发现问题出在我使用了ext.define动态去创建类,但是这个类又不在我本地硬盘上有对应的js文件,cmd打包的时候又要根据这个define的路径去找我的类,结果就没有找到,于是加载 空.js 所以会报错。错误示例代码如下:

		getModelByViewModel: function(viewModelConfig) {
var me = this;
var modelClass = 'oaSystem.model.auto.' + viewModelConfig.data.modelName;
return Ext.ClassManager.get(modelClass) || Ext.define(modelClass, {
extend: 'Ext.data.Model',
idProperty: viewModelConfig.data.primaryKey, // 设置模块model的主键
nameFields: viewModelConfig.data.nameField, // 设置模块model的名称字段
identifier: viewModelConfig.data.keygenType, // 设置模块model的主键生成方式
fields: me.getModelFields(viewModelConfig.data.fields), // 设置字段
// 取得主键值
getIdValue: function () {
return this.get(this.idProperty);
}, // 取得当前记录的名字字段
getNameValue: function () {
if (this.nameFields)
return this.get(this.nameFields);
else
return null;
}
})
},

modelClass为动态获取,动态创建这个类,cmd打包之后,根据这个类名去找js文件,结果没有找到。所以报错

在不打包的情况下,这个方法是可行的...

解决方法暂时想到使用集合方式,如下:

	 dataModels: new Ext.util.MixedCollection,//键值对集合,可以集合json数据
//1. 通过data中fields配置生成一个DataModel
getModelByViewModel: function(viewModelConfig) {
console.log('11111 im here come to catche me!');
var me = this;
if (viewModelConfig)
{
}else
viewModelConfig = this.viewModelConfig; var modelClass = 'oaSystem.model.auto.' + viewModelConfig.data.modelName;
//var modelClassAlias = viewModelConfig.data.modelName;
//debugger;
if (this.dataModels.get(modelClass)){
return this.dataModels.get(modelClass)
}else{
console.log('ccc im here come to catche me!');
var abc = Ext.widget('modeldatamodel', {
idProperty: viewModelConfig.data.primaryKey, // 设置模块model的主键
nameFields: viewModelConfig.data.nameField, // 设置模块model的名称字段
identifier: viewModelConfig.data.keygenType, // 设置模块model的主键生成方式
fields: me.getModelFields(viewModelConfig.data.fields) // 设置字段 });
this.dataModels.add(modelClass,abc);
return abc;
}
},

这样cmd再打包就不会出错了,先定义一个oaSystem.model.DataModel这个基类。然后判断是否存在再生成。

[ExtJS5学习笔记]第三十一节 sencha extjs 5使用cmd生成的工程部署到tomcat服务器的更多相关文章

  1. [ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/42240531 本文作者:sushengmiyan ------------------ ...

  2. [ExtJS5学习笔记]第三十三节 sencha extjs 5 grid表格导出excel

    使用extjs肯定少不了使用表格控件,用到表格,领导们(一般)还是惯于使用excel看数据,所以用到extjs表格的技术猿们肯定也会有导出表格excel这一个需求,本文主要针对如何在用extjs将gr ...

  3. [ExtJS5学习笔记]第三十五条 sencha extjs 5 组件查询方法

    一UI前部组件势必更加,我们通常习惯性使用ID获取部件操作的需要.但是,这种方法是extjs推荐么?你有吗extjs利用它来获取组件的推荐方法? 夹 文件夹 extjs的查询组件的API 查询实例 主 ...

  4. [extjs5学习笔记]第三十七节 Extjs6预览版都有神马新东西

    本文在微信公众号文章地址:微信公众号文章地址 本文地址:http://blog.csdn.net/sushengmiyan/article/details/45190485 [TOC] 在Ext JS ...

  5. [ExtJS5学习笔记]第二十九节 sencha ext js 5.1.0中动态更换皮肤主题

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/42016107 本文作者:sushengmiyan ------------------ ...

  6. [extjs5学习笔记]第三十八节 sencha CMD 6.0.0.220版本安装

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/46740381 简介 sencha cmd 6安装过程不需要UAC控制了对于widnow ...

  7. [ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/43487751 本文作者:sushengmiyan ------------------ ...

  8. [ExtJS5学习笔记]第十四节 Extjs5中data数据源store和datapanel学习

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39031383 sencha官方API:http://docs.sencha.com/e ...

  9. Dynamic CRM 2013学习笔记(三十一)自定义用excel批量导入实体数据

    有一个实体的子表数据量太大,于是客户想用execel来导入实体数据.首先想到的是用系统自带的Import Data,客户嫌太麻烦,比如lookup字段要做map等. 下面是具体的实现步骤: 一.定义e ...

随机推荐

  1. [JSOI2008]Blue Mary开公司

    Description Input 第一行 :一个整数N ,表示方案和询问的总数.  接下来N行,每行开头一个单词“Query”或“Project”.  若单词为Query,则后接一个整数T,表示Bl ...

  2. 51nod 1204 Parity(并查集应用)

    1204 Parity 题目来源: Ural 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   你的朋友写下一串包含1和0的串让你猜,你可以从中选择一个连续的子串 ...

  3. POJ 1486二分图的必要边

    题意:有n个大小不等透明的幻灯片(只有轮廓和上面的数字可见)A.B.C.D.E…按顺序叠放在一起,现在知道每个幻灯片大小,由于幻灯片是透明的,所以能看到幻灯片上的数字(给出了每个数字的坐标,但不知道这 ...

  4. 2015多校联赛 ——HDU5288(数学)

    OO’s Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  5. 【USACO12JAN】视频游戏的连击Video Game Combos

    题目描述 Bessie is playing a video game! In the game, the three letters 'A', 'B', and 'C' are the only v ...

  6. solr6.6初探之查询篇

    关于搜索与查询,首先我们来看一张图: 这张图说明了solr查询原理: 1.当通过solr发起查询的时候,引擎会选择一个RequestHandler(从字面意思上来说就是请求处理器)来进行查询处理 2. ...

  7. Python【第二课】 字符串,列表,字典,集合,文件操作

    本篇内容 字符串操作 列表,元组操作 字典操作 集合操作 文件操作 其他 1.字符串操作 1.1 字符串定义 特性:不可修改 字符串是 Python 中最常用的数据类型.我们可以使用引号('或&quo ...

  8. JFinal实现伪静态

    JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所有优势的同时再拥有ru ...

  9. Struts2 之 modelDriven & prepare 拦截器详解

    struts2 ModelDriven & Prepareable 拦截器 前面对于 Struts2 的开发环境的搭建.配置文件以及 Struts2 的值栈都已经进行过叙述了!这次博文我们讲解 ...

  10. npm下载包很慢和node-sass编译错误的解决办法

    最近研究一个ionic cordova angular2的前端项目 发现npm install下载包非常慢的问题 最近整理了一些解决这些问题的方法. 1.通过config命令修改https为http ...