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

简介:

本文作者: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这个基类。然后判断是否存在再生成。
相关文章
|
5月前
|
Java 应用服务中间件 Apache
Maven程序 tomcat插件安装与web工程启动
Maven程序 tomcat插件安装与web工程启动
59 0
|
2月前
|
Java 应用服务中间件 Windows
windows服务器重装系统之后,Tomcat服务如何恢复?
windows服务器重装系统之后,Tomcat服务如何恢复?
53 10
|
21天前
|
安全 Java 应用服务中间件
【服务器知识】Tomcat简单入门
【服务器知识】Tomcat简单入门
|
3月前
|
应用服务中间件 Docker 容器
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
这篇文章介绍了在Docker中安装Tomcat的过程,包括搜索Tomcat镜像、拉取镜像、目录挂载的准备、创建并挂载容器,以及如何进入容器和进行测试。文中还说明了如何将WAR包部署到Tomcat服务器并访问部署的应用。
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
|
3月前
|
网络协议 Java 应用服务中间件
Tomcat源码分析 (一)----- 手撕Java Web服务器需要准备哪些工作
本文探讨了后端开发中Web服务器的重要性,特别是Tomcat框架的地位与作用。通过解析Tomcat的内部机制,文章引导读者理解其复杂性,并提出了一种实践方式——手工构建简易Web服务器,以此加深对Web服务器运作原理的认识。文章还详细介绍了HTTP协议的工作流程,包括请求与响应的具体格式,并通过Socket编程在Java中的应用实例,展示了客户端与服务器间的数据交换过程。最后,通过一个简单的Java Web服务器实现案例,说明了如何处理HTTP请求及响应,强调虽然构建基本的Web服务器相对直接,但诸如Tomcat这样的成熟框架提供了更为丰富和必要的功能。
|
3月前
|
Java 应用服务中间件 Apache
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
在 Debian 服务器上安装和配置 Apache Tomcat 的方法
45 0
|
5月前
|
Java 关系型数据库 MySQL
杨校老师课堂之Java项目部署到云端服务器之安装MySQL、Jdk、Tomcat
杨校老师课堂之Java项目部署到云端服务器之安装MySQL、Jdk、Tomcat
56 0
杨校老师课堂之Java项目部署到云端服务器之安装MySQL、Jdk、Tomcat
|
应用服务中间件 网络安全 Windows
Tomcat 如何部署多个工程并指向不同的域名
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxdeng/article/details/77802275 Tomcat 如何...
1255 0
|
27天前
|
安全 应用服务中间件 网络安全
Tomcat如何配置PFX证书?
【10月更文挑战第2天】Tomcat如何配置PFX证书?
141 7
|
27天前
|
存储 算法 应用服务中间件
Tomcat如何配置JKS证书?
【10月更文挑战第2天】Tomcat如何配置JKS证书?
203 4