基于的sotower项目移植
基于的sotower项目移植
一. 新建模块项目
创建SGUAP容器IAS及模块项目IAS。
(一)
新建IAS容器
A. 安装UAP 。 B. 启动sguap-service
单独使用一个tomcat将http端口设置为8888(其他端口不能与UAP默认tomcat冲突即可,这个看个人电脑环境自行配置),将在tomcat中启动。启动结果如下无异常:
C. 新建UAP项目
填写项目名称,直接下一步:
D. 增加数据库连接
E. 去除统一权限
在配置文件中,
F. 添加模块项目
打开:
设置path(模块项目存放的工作空间目录), 设置module(模块项目名称)
(该配置可以在新建模块项目后回来修改,或者直接先定好模块项目名再去创建)
G. 在UAP中引入sguap-server
设置Location: Reload加载包到UAP中,保存地址到IAS中:
H. Jar包引入
在IAS中添加如下3个包:
将包添加到Target Platform
(二) 新建IAS模块项目
A. 新建模块项目
填写模块项目名称:
默认直接完成:
B. 去除统一权限
将统一权限的两个引用包Remove掉:
C. 引入jar包
将之前添加进Target Platform的包引入,如下两个:
二. 将项目移植到模块项目
(一)
整体目录迁移
在上重新建立的模块项目,将原的目录原封不动拷贝进来就可以了,如果个别包报错,稍做调整.
(二) Flex前台移植
主要是修改上下文文件:
.flexProperties文件修改如下(只修改黄色部分):
重新编译flex文件,将编译后的文件拷贝到模块项目上的face下,移植完后如下:三. 将sotower项目迁移到模块项目
(一)
整体目录迁移
将sotower项目下src、javatest、javasrc、html-template直接复制到uap模块项目
根目录中。
将sotower项目下WebContent中除WEB-INF外全部复制到uap模块项目下的face
中。
将sotower项目下WEB-INF中的conf复制到uap模块项目下的config中。 将sotower项目下的所有的spring配置文件,复制到uap模块项目下的config下。 将sotower项目下libs里的swc文件复制到uap模块项目下的libs中。
将sotower项目下WebContent\\WEB-INF\\lib里的jar包复制到uap模块项目下的libs
中。
将sotower项目下WebContent\\WEB-INF中的flex目录复制到uap模块项目下的face
中。
sotower项目目录结构图与迁移后的uap模块项目目录结构图如下:
(二) 配置文件新增与修改
A. 修改项目的文件
修改之前sotower项目的文件,在模块项目的在config下新增,修改之前项目的Servlet、Listener,注意标签头,具体格式如下:
URLAccessReport xmlns:xsi=\"\" xmlns:module=\"\" xsi:schemaLocation=\" \"> MessageBrokerServlet /flex/ /URLAccessReport FileExport /
UiDesignerUploadServlet/UiDesignerUploadServlet
ExcelUploadServlet/ExcelUploadServlet
ExcelDownloadServlet/ExcelDownloadServlet
exportImg/exportImg
CommonIOServlet/common-io/*
exportXLS
/exportXLS
exportPDF/exportPDF
reportPageServlet/json/reportPage
FileDownLoadUds/FileDownLoadUds
WordExportServlet/
EhCacheServlet/
uploadImg/uploadImg
ImageServlet /ImageServlet zipServlet /ZipAction udsUploadServlet /udsUploadServlet A. 修改config下的xml文件 所有singleton=\"true\" 修改为:scope=\"singleton\" 所有singleton=\"false\" 修改为:scope=\"prototype\" B. 创建configs文件夹部分文件发布后无法找到目录,所以需要创建这样一个目录
查找到所有classpath后的文件,修改路径, 将这些文件存放到新建的configs目录中
(三) 缓存的修改
Sotower使用的eache的缓存,我们要将项目移植到uap就必须使用uap的缓存,现在我们来修改缓存的引用了的java文件:
修改使用uap缓存文件,如下图
修改了uap的缓存,也要修改对应的java代码如下:
修改相应的缓存配置文件:
(四) 修改项目中应用sotower包的java代码
A. commandFactory的修改方式
B. 包引用的解决方法
将sotower这个包的源码拷贝出来放在项目中,后续修改
(五) 配置文件修改
基于sotower的项目,引用了较多sotower的东西,尤其要注意配置文件,以本项目为例子,要将, , ,的配置文件都注释掉.
(六) jar包调整
将lib中如下包删除(这些包与sguap-server中Reload到项目中的包冲突):
注:如果项目运行中有提示jar包冲突,查看是否libs中是否有包与sguap-server中Reload到项目中的包重复,如果重复就把libs中的删掉。或者有些包不兼容UAP,需要重新在UAP中引入。UAP平台集成的第三方jar包路径如下(uap的安装目
录)sguap-server\\WEB-INF\\repository\\platform\\程序启动前,需要将自带jar包(libs下的包)引入UAP中,如下操作:
(七) 配置.springBeans文件
使用Navigator视图,查看项目的.springBeans 文件:
将移植的配置文件配置进该文件,如下:
(八)
前端移植
将前端文件(如:jsp、html等)移植到UAP模块项目的face下,如下:
进行必要调错修改
四. 集成Flex
(一) Jar包添加
将BlazeDS所需要相关Jar包放置在模块项目的lib目录下:
(二) 配置模块依赖关系
在文件的Classpath部分,将这些Jar添加到模块的类路径中:
在文件的Required Plug-ins部分,添加对,模块的依赖。
(三) Spring配置文件
在config目录下增加一个Spring配置文件,如,通过模块化标签配置与BlazeDS相关的Servlet、Listener。注:该配置文件的内容与BlazeDS配置在传统Web应用中的内容相对应,如下示例:
MessageBrokerServlet /messagebroker/* /flex_xml/
注:messageBrokerServlet中要配置加载文件,路径要正确。
(四) Flex配置文件
将BlazeDS配置文件放置在模块项目face目录下:
修改文件中channels标签体的内容,在endpoint的URL属性中加上模块上下文。 修改为: 注:黄色字体部分为当前应用的应用上下文路径和模块上下文路径。在BlazeDS远程调用时会访问该URL。在文件中的配置属于全局配置,如果全局配置不生效,可以在swf源文件mxml程序的RemoteObject标签里配置endpoint属性(属于局部配置,局部配置的优先级高于全局配置),如下:
(五) Flex程序文件
首先将Flex项目文件导入到Eclipse里面,修改.actionScriptProperties以及.flexProperties文件.
.actionScriptProperties主要是让Flex编译之后的文件在WebRoot下修改如下:
.flexProperties文件修改上下文的路径serverContextRoot(这里的IAS-UAP是UAP容器,IAS_MODULE是模块化的项目),还有servroot的路径(这里是eclipse下的WebRoot路径),以及serverRootURL是发布的uap的路径,具体修改如下: 重新编译Eclipse下的Flex项目,确保文件都编译到了WebROOT下 最后将除了WEB-INF这个文件夹,其他的WebRoot下的文件全部拷贝到uap模块项
目的face目录下;
注意:如果项目还是出错起不来, 必须重写这个
到uap模块项目中,并在模块项目中添加如下配置文件:
SpringFactory.java文件,将这个文件导入
五. 项目移植总结
到这里项目已经基本移植完成了,还有些java代码报错的需要自己调整,本项目移植的过程中最主要还是得注意以下几点问题:
A. jar包的冲突,uap底层使用spring,hibernate在项目集成的时候,要注意是
否会冲突;
B. 在flex集成的时候,出现无法访问servler的方法,在这里要修改这个方法
获取bean的方式;
C. 原项目的一些项目级的servlet,listen配置文件必须按照uap的格式来改
造,具体见二(二)A的修改方式;
D. 集成flex的时候必须注意,flex的上下问路径必须重写修改(可根据需求来
修改),即重新编译flex项目,将对于的swf文件拷贝到模块项目的face目录下;
E. 最后的注意一些项目的配置文件的加载路径是否正确;