[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 应用服务中间件 Linux
在阿里云服务器上部署Tomcat详细图文详解
本文介绍了在阿里云服务器上安装和配置JDK和Tomcat的步骤。首先,需要注册阿里云账号并进行实名认证,然后购买并设置服务器。接着,通过File Zilla连接服务器,创建Java和Tomcat的安装目录,并将JDK和Tomcat的tar.gz文件上传到服务器,解压并重命名。之后,配置JDK的环境变量,将catalina.sh复制到/etc/init.d/目录下,并修改相关配置。最后,启动Tomcat并配置安全组规则,确保可以通过公网访问。
|
5天前
|
弹性计算 Java Linux
阿里云服务器搭建部署宝塔详细流程
该内容是一个阿里云服务器和域名的配置指南。首先,需注册阿里云账号并进行企业实名认证。接着,选购服务器如2核2G1兆的Linux系统,并购买域名。完成域名备案后,进行域名解析和ICP备案。然后,通过远程连接登录服务器,重置密码,安装宝塔面板。在安全组中开启宝塔面板随机生成的端口。最后,登录宝塔面板安装LNMP环境,配置数据库如MySQL和Redis,部署JDK、Tomcat,上传前端和后端项目以实现上线。
|
6天前
|
弹性计算 JavaScript Java
阿里云服务器搭建部署宝塔详细流程
以下是内容的摘要: 本文主要介绍了在阿里云上创建和配置服务器环境的步骤,包括注册阿里云账号、实名认证、购买和设置服务器、域名的获取与备案、以及使用宝塔面板安装和配置环境。首先,用户需要注册阿里云账号并进行实名认证,选择合适的服务器配置。接着,购买服务器后,要准备并备案域名,以便通过友好的网址访问网站。在服务器上安装宝塔面板,可以方便地管理和配置LAMP/LNMP/Tomcat/Node.js等应用环境。完成这些步骤后,用户还需要在宝塔面板中安装MySQL、Redis等数据库,部署Java或Vue项目,并配置相关端口。最后,将前端项目打包上传至服务器,并设置站点,即可实现网站的上线。
|
6天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
8天前
|
NoSQL 关系型数据库 MySQL
阿里云服务器部署项目流程
本文主要讲解阿里云服务器的部署,如何选择配置等
|
8天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
20 0
|
应用服务中间件 网络安全 Windows
Tomcat 如何部署多个工程并指向不同的域名
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxdeng/article/details/77802275 Tomcat 如何...
1226 0
|
1月前
|
XML 应用服务中间件 Apache
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
|
14天前
|
前端开发 Java 应用服务中间件
Springboot对MVC、tomcat扩展配置
Springboot对MVC、tomcat扩展配置
|
4月前
|
Java 应用服务中间件 容器
SpringBoot配置外部Tomcat并打war包
SpringBoot配置外部Tomcat并打war包
68 0