使用Oracle Lab中的SitesDemo站点作为实验基础,配置短地址进行访问。并配置Apache服务器做为转发。
1.配置WebRoots
登录后台管理界面,进入Admin UI。选择“Admin”-“WebRoots”进行配置。如下图:
配置的root url为http://localhost:9080/cs/demo .注意最后的demo是任意配置的,可以起一个有意义的名称。在后面我们还需要使用到这个名字(配置到filter中)。
2.配置URL的模板
可以针对某些资产设置一个URL模板,这样可以自动生成对应的短地址URL,不用一个个的进行配置,减轻了工作量。
也可以不配置模板,自行在对应的资产上配置URL。
我们现在对Page建立一个URL模板,进入“Admin”-“Asset Types”-“Page”-“URL Pattern”,如下图进行配置:
Pattern中设定了对应的规则。
3.配置Filter
查找WebCenter site的CS应用安装目录,修改其中的web.xml。增加名称的filter。如下图:
增加了demo的配置。注意这里的名字必须和在第一步配置的最后一级目录名称相同。
4.重启WebCenter Site
5.对首页的地址进行配置
登录后台管理界面,进入Contributor UI。双击Site Tree中的SitesHome,查看其中的URL配置。如下图:
在上图中可以看到两个地址,下方的地址:http://localhost:9080/cs/demo/siteshome.html是根据前面配置的Pattern的自动生成的地址。
同时也可以另行配置自定义的地址,上方的地址:http://localhost:9080/cs/demo/home.html就是自行配置的地址。
一个Page可以配置多个地址。
6.页面访问
在地址栏输入:http://localhost:9080/cs/demo/home.html或http://localhost:9080/cs/demo/siteshome.html都可以对首页进行访问。如下图:
注意看一下访问的地址:
对应的页面中代码:
7.Apache配置
我们的目标是使用域名直接进行访问。所以使用了Apache进行转发。
配置情况如下:
增加一台虚拟主机,将原CS应用下的SitesDemo目录复制到apache的web目录下(SitesDemo中放置了css、images、js等静态信息)。
在Host中配置了www.vhost2.com指向到本机。
重启Apache后,访问地址:http://www.vhost2.com:90/home.html ,看到如下的结果:
注意看一下调用的地址:
实际上没有使用Apache中的静态文件。还是使用了cs应用下的文件。
8.调整Site引用静态文件的代码
修改代码,取消了<%=request.getContextPath()%>/ ,将调用地址直接变成相对地址。如下图:
保存后再次访问http://www.vhost2.com:90/home.html,页面正常打开。如下图:
查看下方访问的地址,已经开始访问Apache下的文件。
但是当我们访问http://localhost:9080/cs/demo/home.html时,发现发生问题。如下图:
还是由于地址的变化引起。
解决方法:
增加一个配置文件,配置URL是否需要包装。
编写一个公共的方法。当读取到配置文件中不要包装时,还是按照原来的方式获取访问地址;如果配置文件中要求包装,则按原有方式获取访问地址后,将domain的部分截取掉。这样的话在只要在管理环境和访问环境中配置不同的配置项就好。
继续本系统文章的最后一篇,配置并运行Oracle WebCenter Sites.
6. 配置Oracle WebCenter Sites
6.1 启动管理服务器
运行Oracle Home目录下的user_projects\domains\wc_domain\startWeblogic.cmd,启动管理服务器。
6.2 启动Node Manager
运行Oracle Home目录下的user_projects\domains\wc_domain\startNodeManager.cmd,启动Node Manager,成功启动后显示<Nov 3, 2015 8:42:22 PM PST> <INFO> <Secure socket listener started on port 5556, host localhost/127.0.0.1>等字眼。
6.3 为OPSS授权
运行Oracle Home目录下的user_projects\domains\wc_domain\wcsites\bin\grant-opss-permission.bat,输入管理账户名及密码,进行OPSS授权。
6.4 创建共享文件夹
创建名为sitesData的共享文件夹供Sites使用。
6.5 启动sites管理服务器
访问地址http://localhost:7001/console,输入用户名及密码,登入Admin Server.
Environment–>Servers,转到Control面板,选择wcsites_server1,点Start,启动Sites管理服务器。
确认wcsites_server1的状态变为Running.
6.6 进行WebCenter Sites初始化配置
访问地址http://localhost:8001/sites/sitesconfigsetup,点Begin开始进入Sites初始化设置。
指定共享目录路径
把路径设置为之前创建的共享目录路径,点Next
JNDI数据源
接受默认名称点Next
Web应用参数
输入主机名与端口,点Next
CAS部署信息
确认信息后点Next
WebCenter Sites Administrator Accounts
输入WebCenter Sites管理员的账号与密码信息,点Next
Sample Sites
选择所需的示例站点,Next.
配置汇总
在配置汇总页面点Test, 确认所有配置信息正确,点Start开始处理。
完成配置
等待WebCenter Sites配置完成,显示成功画面。
7. 测试Oracle WebCenter Sites
7.1 重新启动wcsites_server1
停止重新启动wcsites_server1.
7.2 访问WebCenter Sites
访问地址http://localhost:8001/sites,显示sites登录页面,用 fwadmin/xceladmin或者firstsite/firstsite登录系统。
选择站点及喜欢的界面,进入系统。
至此,完成了Oracle WebCenter Sites的安装及初始化配置。吐槽一把可恶的IE,居然无法正常显示Sites的界面,只好重新装个FF来测试。
RCU是FMW 12c系列与之前版本最大的区别,在新的版本中,RCU已集成在Oracle Fusion Middleware Infrastructure中,所以只需安装Oracle Fusion Middleware Infrastructure,就可以开始配置FMW应用所需的数据库。
在Oracle Home的oracle_common\bin目录下,运行rcu.bat,开始创建WebCenter Sites所需的表空间。
4.1 运行RCU,开始创建向导
4.2 创建Repository
选择Create Repository–>System Load and Product Load, 点Next.
4.3 数据库连接信息
输入Oracle数据库的连接信息,点击Next.
注意如果使用XE的话,数据库检查会报错,只要点击忽略就可以继续。4.4 选择安装组件
勾选WebCenter Sites,其它所需组件会自动先上,确认后点击Next.
通过先决条件检查后点OK确认。
4.5 设置Schema的密码
输入并确认Schema的密码后点Next.
4.6 表空间信息确认并创建表空间
确认表空间信息无误,点击Next.
检查后点击OK。
开始创建不存在的表空间,完成后点OK,再点Next。
4.7 RCU汇总并创建所需的表
确认信息无误后点Create,创建WebCenter Sites所需的表。
开始创建所需的组件。
4.8 完成RCU安装
完成RCU安装,点Close.
5. 创建Oracle WebCenter Sites域5.1 运行config.cmd,开始域创建向导
运行Oracle Home目录下的oracle_common\common\bin\config.cmd。
选择创建新Domain,Next.
5.2 选择域使用的模板
选择Oracle WebCenter Sites with Examples, Oracle WebCenter Sites – Visitor Services, Oracle Enterprise Manager,点Next.
5.3 应用位置
点Next.
5.4 设置域管理员账号密码
输入域管理员的账号密码,点Next.
5.5 Domain模式和JDK
选择所需模式及JDK后点Next.
5.6 数据库连接配置
输入数据库密码后点击Get RCU Configuration,测试数据库连接没问题后点Next.
5.7 组件数据源连接设置
输入组件数据源的数据库连接信息,点击Next。
5.8 JDBC测试
JDBC测试成功后点Next.
5.9 Advanced Configuration
Advanced Configuration选择Administration Server, Node Manager和Managed Servers, Clusters and Coherence.
Administration Server
默认7001端口,Next.
Node Manager
选择Node Manager的类型,输入Node Manager的用户名及密码。
Managed Servers
设定管理服务器的名称及端口,点Next.
Clusters
直接Next
Coherence Clusters
直接Next
5.10 Machines
输入主机名,点Next.
5.11 指定管理服务器给主机
为所有的管理服务器指定给上一步设定的主机名,点Next
5.12 配置汇总
直接点Create,开始Domain创建。
5.13 进行Domain创建
完成配置后点Next
5.14 完成域配置
点击Finish,完成Domain的创建及配置。
至此,我们完成了Oracle WebCenter Sites所需Domain及Managed Server的创建,下一步是进一步配置并真正把WebCenter Sites运行起来。
未完待续,To be continued……
Oracle WebCenter Sites 12c的安装与之前的版本有较大不同,加上目前官方的文档还不是很详细,导致很多时候安装不成功。特意写下自己的安装过程,供Tongfu的同事参考。
准备好所需软件后,即可开始安装。Oracle数据库与JDK的安装就直接跳下,下面从Weblogic Server的安装开始。
1.安装Oracle Weblogic Server 12c
1.1 运行Weblogic Server 安装程序
Z:\Oinstall\12C>”c:\Program Files\Java\jdk1.8.0_65\bin\java.exe” -jar fmw_12.2.1.0.0_wls.jar运行下载的jar包,启动weblogic安装程序。
1.2 Auto Updates设置
跳过自动更新设定
1.3 选择安装路径
1.4 选择安装类型
1.5 先决条件检查
1.6 跳过安全更新设置
1.7 安装选择汇总
页面显示安装选择汇总,点击Install按钮开始安装。
1.8 正式安装Weblogic Server
1.9 完成Weblogic Server安装
2.安装Oracle Fusion Middleware Infrastructure
2.1 运行安装命令,启动Oracle Fusion Middleware Infrastructure安装向导
运行安装命令,Z:\Oinstall>”c:\Program Files\Java\jdk1.8.0_65\bin\java.exe” -jar fmw_12.2.1.0.0_infrastructure.jar,欢迎窗口点击Next.
2.2 跳过自动更新设定
2.3 安装路径
选择Weblogic Server安装选择的Oracle Home位置。
2.4 选择安装类型
2.5 先决条件检查
2.6 安装选择汇总
点击Install开始进行安装。
2.7 进行Oracle Fusion Middleware Infrastructure的安装
2.8 完成Oracle Fusion Middleware Infrastructure的安装
3. 安装Oracle WebCenter Sites 12c
3.1 运行命令,WebCenter Sites 12c安装向导
运行命令Z:\Oinstall\12C>”c:\Program Files\Java\jdk1.8.0_65\bin\java.exe” -jar fmw_12.2.1.0.0_wcsites_generic.jar,进入安装向导。
3.2 跳过自动更新
3.3 安装位置
选择之前Weblogic Server安装的Oracle Home路径。
3.4 安装类型
选择WebCenter Sites和示例网站。
3.5 先决条件检查
3.6 安装汇总
确认所需的功能模块均已选择,点击Install开始进行WebCenter Sites安装。
3.7 正式安装WebCenter Sites
3.8 完成WebCenter Sites的安装
至此,我们完成了所需软件的安装,下一步是开始进行WebCenter运行所需环境的配置。To be continued……
一个站点完美的用户体验往往体现在各种细节当,友好的URL也是增强用户体验的一个小细节,Webcenter sites也提供了URL美化的解决方案。
跟其它sites中的功能一样,URL美化的解决方案也在FirstSiteII站点中给出了相应的例子,
在webcenter sites安装CD(即安装包)中的如下目录下找到FSIIAssembler.java文件:
/ContentServer/FirstSiteII/PrettyURL/src/com/
fatwire/firstsite/uri/FSIIAssembler.java
默认此URL装配器是配制上的,如果你访问FirstSiteII站点的话,则会调用此过滤器,当然需要满足过滤器条件规则的URL才能够正常触发。在domainCSWEB-INFclasses目录下找到ServletRequest.properties文件,使用propeditor打开文件:
你自己定制的装配器配制在红框中的两个属性中。当然,FirstSiteII站点默认的装配器就是配制在这里的。
我们如果在firestSiteII站点中,使用如下规则访问站点:
…ContentServer/[site]/[sitepfx]/[cid]
则会触发FSIIAssembler.java java类,你可以通过远程debug的方式来跟踪此类来具体了解URL装配器是如何工作的。
原理举例说明:
下面以用户通过 URL 访问站点页面来说明下sites的封装器。
用户输入URL访问站点页面
调用解装方法,将URI path进行解析,然后将解析后得到的参数放入sites的上下文中
在页面渲染的时候,对页面中使用render:getpageurl标签的地方则会调用装配器的装配方法,根据我们定制的规则将页面上的链接装配好给用户点击使用。
主要工作的方法有两个,即解装跟装配两个方法:
解装方法:protected DisassemblyContext getDisassemblyContext(URI uri)
装配方法:getAssemblyContext(Definition def)
在使用sites Mirror to server发布内容方式时,发现有一些资产处于暂挂状态,于是点进资产去重新批准,一般出现这种情况是因为当前资产有相关联的子资产未进行审批造成的,此时只要将相关的子资产审批通过后,就可以将当前资产脱离暂挂状态,则可批准成功。
但是,我在使用发布过程中遇到如下问题,明明已经将关联的资产全部发布过去了,但是需要发布的资产还是暂挂状态,并且如下图显示的详细信息。
英文版:
Approved, but approval for publish to destination was based on versions of the child assets that no longer exist
点击批准,却得出批准失败状态。
知识背景:
在flex asset中,一般以Attribute结尾的表中存的是此种flex asset中定义的所有Attribute,_Mungo结尾的表中存放的则是一个flex asset资产实例中对应flex asset Attribute 的值。
造成原因:
原PageDefinition中引用了一个PageAttribute,PageAttribute为asset类型,后因种种原因,将此PageAttribute从PageDefinition移除并将它删除。
并且发现,批准失败的资产都是基于曾经对被删除的PageAttribute引用过的PageDefinition。
在sites中,flex asset都是多表关联的结构,所以,一个flex asset的实例是存放在多个表中的,如果我们删除了flex asset引用的Attribute,sites只会删除相应资产以Attribute结尾的表中的记录,并不会去删除以_Mungo结尾的表中实例对该属性的引用,而审批系统则会去根据这里的信息去查找需要被审批的资产,所以会造成如上发布失败的情况。
解决方案:
找到相应flex assets的_Mungo表:
点击cs_attrid属性,将数据排序,这里存放的是当前flex asset实例引用的flex attribute的ID,如果这里的ID值不存在在该资产以Attribute(例:PageAttribute)表中,则将该数据删除,这样,之前不能批准的资产就可以批准成功了。
最近项目中遇到了这样的情况,需要将Sites的编辑环境绑定域名外网访问,由于之前安装时配制好编辑环境中content server 端口号已经配制完端口号为8001,所以在配制域名时将端口号8001也一半放入域名中。这样则会导致访问WEM应用时跳转链接出现问题:
环境描述:
原编辑环境地址:http://host:8001/servlet/
现编辑环境地址:http://host/servlet/
原CAS 地址:http://host:8001/cas/
现CAS 地址:http://host/cas/
配制前,如果访问原编辑环境地址sites则会跳转至
原CAS地址:http://host:8001/cas/
配制后发现,如果访问http://host/servlet/,URL依旧还是跳转至原CAS地址。
遇到这种情况时就应该去sites部署应用的目录下:
CS/WEB-INFO/找到文件SSOConfig.xml,将如下两个属性做相应修改:
我们此处只需要将casUrl属性改成无端口号的则可。
当使用CSDT编辑Template时,如果我们指定了合法参数(Argument)属性,新增了几个参数及参数所允许的合法值,当我们在填入合法参数或者值时,如果输入中文:
这时候如果在CSDT中编辑该Template,再次(注:是保存了两次)保存后,则会导致该Template所对应的元数据描述文件(xxx.main.xml)就会出现乱码。
解决办法,将合法参数中的所写的中文全部改成英文。
CSDT Session 失效问题(严重影响开发效率)
产生场景:
当开启CSDT一段时间后,如果去创建Template及CsElements有的时候会出现如下问题:
解决思路:
之前一直以为是CSDT的BUG,但是后面发现UserBean是sites中存放用户信息的java类,于是尝试改了sites的Session失效时间,改成-1,这个问题再也没有出现过了。
解决办法:
到sites安装目录找到futuretense.ini文件,将如下键值对修改:
cs.timeout=-1
Webcenter sites insite:calltemplate 标签之slotname 属性
在使用Webcenter sites在线编辑功能时,我们会常用到insite编辑页面中某一区块的内容布局(选择Pagelet Templates),如下图所示:
但是保存后,不知道大家有没有留意,Pagelet Templates与Page Templates之间,是如何保存起了关联关系呢?
经过实践发现,关联关系在slotname属性指定后,则是通过slotname属性关联起来的,如果没有指定slotname属性,则需要指定tname属性。
灵活运用:如果有多个页面的小区块的Pagelet Templates模板是需要同步的,我们则指定slotname属性为同一值,这样的话就可以做到,编辑一处,全局改变。提高工作效率。
有个客户很羡慕传说中WebCenter Site的功能,准备在一项目在使用这产品。为了能评估工作量加上不被各色人等忽悠,只能自己装一次评估。在eDelivery上下载了安装程序,真坑爹,一点都不象以前O记的产品,居然安装说明的文档都没有。在Weblogic上安装,以手工部署的方式很顺利就完成了应用的安装,但在升级到7.6时就卡住了,测试时出现以下错误:
在服务器启动时报Caused By: java.lang.IllegalAccessError: tried to access field
org.slf4j.impl.StaticLoggerBinder.SINGLETON from class
的错。折腾了老半天,鬼就出在slf4j-api-1.5.8.jar和slf4j-jdk14-1.5.8.jar两个文件上,干掉后继续安装成功。
两天的试用,觉得O记要完全实现Fatwire与Webcenter Content整合明显需要一段时间。拿这玩意来做外网应用的还是值得探讨的。
比较赞同这篇文章上的话:http://shishank.info/pcm/wordpress/2011/11/10/oracle-web-centre-fatwire-is-it-an-old-generation-cms/
Not so good
近期评论