[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这个基类。然后判断是否存在再生成。
相关文章
|
18天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
98 26
|
3月前
|
监控 Java 应用服务中间件
部署tomcat部署实战案例
本文是关于Tomcat部署实战案例的教程,包括通过yum和二进制方式部署Tomcat的详细步骤,以及如何监控Tomcat服务。
215 84
部署tomcat部署实战案例
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
177 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
188 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
3月前
|
应用服务中间件 Docker 容器
docker应用部署---Tomcat的部署配置
这篇文章介绍了如何使用Docker部署Tomcat服务器,包括搜索和拉取Tomcat镜像、创建容器并设置端口映射和目录映射,以及如何创建一个HTML页面并使用外部机器访问Tomcat服务器。
docker应用部署---Tomcat的部署配置
|
2月前
|
Python
Flask学习笔记(二):基于Flask框架上传图片到服务器端并原名保存
关于如何使用Flask框架上传图片到服务器端并以其原名保存的教程。
97 1
|
2月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
35 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
|
3月前
|
Java 应用服务中间件 Windows
windows服务器重装系统之后,Tomcat服务如何恢复?
windows服务器重装系统之后,Tomcat服务如何恢复?
68 10
|
2月前
|
Java 应用服务中间件 Linux
tomcat学习二:tomcat部署多个项目:不修改端口和修改端口 两种方式详解
这篇文章详细介绍了在Tomcat服务器上部署多个项目的方法,包括不修改端口和修改端口两种方式。
176 0
|
2月前
|
安全 Java 应用服务中间件
【服务器知识】Tomcat简单入门
【服务器知识】Tomcat简单入门