SAPUI5 (37)
来源:互联网 发布:股东人数 软件 编辑:程序博客网 时间:2024/06/03 05:08
上一篇介绍使用 SAP Web IDE 代理来解决 Cross-origin 问题。如果使用 Eclipse 作为开发工具,可以使用 Simple proxy servlet 来测试,作为 cross-origin 的代理。但 SAP Web IDE 编写的代码,并不能在不做任何修改的情况下运行。为了能较好地实现代码移植,另外一个比较好的方法是使用 Grunt。Grunt 是基于 JavaScript 的自动化工具,可以用于 OpenUI5 的测试运行,实现跨域代理。
环境准备
- 安装
Node.js
- 使用 npm 工具 ( Node.js 的包管理器 ) 安装
grunt-cli
,安装的命令如下:
npm install -g grunt-cli
在 Windows 下,应该以管理员权限来运行该命令。上述命令执行完后,grunt 命令就被加入到你的系统路径中了,以后就可以在任何目录下执行此命令了。
安装 grunt-cli 并不等于安装了 Grunt!Grunt CLI 的任务很简单:调用与 Gruntfile 在同一目录中 Grunt。这样带来的好处是,允许你在同一个系统上同时安装多个版本的 Grunt。
Grunt 工具搭建
Grunt 需要将如下两个文件放置在项目的根目录下面。
- package.json: 这个文件告知
grunt-cli
需要安装的依赖。 - Gruntfile: 此文件被命名为 Gruntfile.js 或 Gruntfile.coffee,用来配置或定义任务(task)并加载 Grunt 插件
package.json 文件的内容如下:
{ "name": "scn-demo-gw-sample", "version": "0.0.1", "devDependencies": { "grunt": "^1.0.1", "grunt-connect-proxy": "^0.2.0", "grunt-contrib-connect": "^1.0.2", "grunt-contrib-watch": "^1.0.0", "jit-grunt": "^0.10.0" }}
Gruntfile.js 文件内容如下:
module.exports = function (grunt) { 'use strict'; // load grunt plugins require('jit-grunt')(grunt, { configureProxies: 'grunt-connect-proxy' }); // create config grunt.initConfig({ settings: { connect: { host: 'localhost', port: '9555' }, proxy: { host: 'dph01.nodomain', port: '8180' } }, connect: { options: { hostname: '<%= settings.connect.host %>', port: '<%= settings.connect.port %>', livereload: 35729, middleware: function (connect, options, defaultMiddleware) { var aMiddlewares = []; aMiddlewares.push(require('grunt-connect-proxy/lib/utils').proxyRequest); aMiddlewares.push(defaultMiddleware); return aMiddlewares; } }, connectWebapp: { options: { base: ['webapp'], open: true } }, proxies: [ { context: '/resources', host: '<%= settings.proxy.host %>', port: '<%= settings.proxy.port %>', https: false, rewrite: { '/resources': '/sap/public/bc/ui5_ui5/resources' } }, { context: '/sap/opu/odata', host: '<%= settings.proxy.host %>', port: '<%= settings.proxy.port %>', https: false } ] }, watch: { options: { livereload: true }, watchWebapp: { files: ['webapp/**/*'] } } }); // register serve task grunt.registerTask('serve', ['configureProxies:server', 'connect:connectWebapp', 'watch:watchWebapp']); // register default task grunt.registerTask('default', ['serve']);}
grunt.initConfig 需要根据 SAP 服务器的对外提供 OData service 的 domain 进行修改:
grunt.initConfig({ settings: { connect: { host: 'localhost', port: '9555' }, proxy: { host: 'dph01.nodomain', port: '8180' } },
然后在项目根目录下运行如下命令:
npm install
npm 根据 package.json 文件的依赖,在本地安装相关的插件。
测试 Grunt 服务
在项目根目录下,运行 grunt serve
命令,grunt 在本地创建 Web 服务,并代理连接到后端 SAP 系统。
参考资料
- Using Grunt to test your UI5 app locally against SAP Gateway OData Services
阅读全文
0 0
- SAPUI5 (37)
- SAPUI5
- SAPUI5-Button
- SAPUI5-HTML
- SAPUI5 Theme
- SAPUI5-List
- SAPUI5-Routing
- SAPUI5 Table
- SAPUI5 - Component
- SAPUI5 (21)
- SAPUI5 (22)
- SAPUI5 (23)
- SAPUI5 (24)
- SAPUI5 (25)
- SAPUI5 (26)
- SAPUI5 (27)
- SAPUI5 (29)
- SAPUI5 (30)
- 链接:SIP
- 如鹏java学习进程 二维数组打印
- 修改Chrome的安装位置
- TCP报文首部中URG和PSH的作用
- css3基础3D小盒子笔记
- SAPUI5 (37)
- 《java多线程编程技术核心》读书笔记8
- 利用rsyslog创建syslog center
- 使用eval函数把 JSON 文本转换为 JavaScript 对象
- java字符数组和字符串,StringBuilder和字符串转换
- Android开发(一、初窥安卓--3.构建用户界面)
- 计算机视觉学习之CVPR系列文章
- spring aop相关注解
- Spark SQL 本地开发环境搭建和案例分析