使用Oracle Lab中的SitesDemo站点作为实验基础,配置短地址进行访问。并配置Apache服务器做为转发。

1.配置WebRoots

登录后台管理界面,进入Admin UI。选择“Admin”-“WebRoots”进行配置。如下图:

1

配置的root url为http://localhost:9080/cs/demo .注意最后的demo是任意配置的,可以起一个有意义的名称。在后面我们还需要使用到这个名字(配置到filter中)。

2.配置URL的模板

可以针对某些资产设置一个URL模板,这样可以自动生成对应的短地址URL,不用一个个的进行配置,减轻了工作量。

也可以不配置模板,自行在对应的资产上配置URL。

我们现在对Page建立一个URL模板,进入“Admin”-“Asset Types”-“Page”-“URL Pattern”,如下图进行配置:

2

Pattern中设定了对应的规则。

3.配置Filter

查找WebCenter site的CS应用安装目录,修改其中的web.xml。增加名称的filter。如下图:

3

增加了demo的配置。注意这里的名字必须和在第一步配置的最后一级目录名称相同。

4.重启WebCenter Site

5.对首页的地址进行配置

登录后台管理界面,进入Contributor UI。双击Site Tree中的SitesHome,查看其中的URL配置。如下图:

4

在上图中可以看到两个地址,下方的地址: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都可以对首页进行访问。如下图:

5

注意看一下访问的地址:

8

对应的页面中代码:

7

7.Apache配置

我们的目标是使用域名直接进行访问。所以使用了Apache进行转发。

配置情况如下:

增加一台虚拟主机,将原CS应用下的SitesDemo目录复制到apache的web目录下(SitesDemo中放置了css、images、js等静态信息)。

在Host中配置了www.vhost2.com指向到本机。

9

重启Apache后,访问地址:http://www.vhost2.com:90/home.html ,看到如下的结果:

10

注意看一下调用的地址:

11

实际上没有使用Apache中的静态文件。还是使用了cs应用下的文件。

8.调整Site引用静态文件的代码

修改代码,取消了<%=request.getContextPath()%>/ ,将调用地址直接变成相对地址。如下图:

11

保存后再次访问http://www.vhost2.com:90/home.html,页面正常打开。如下图:

11

查看下方访问的地址,已经开始访问Apache下的文件。

 

12

但是当我们访问http://localhost:9080/cs/demo/home.html时,发现发生问题。如下图:

13

还是由于地址的变化引起。

解决方法:

增加一个配置文件,配置URL是否需要包装。

编写一个公共的方法。当读取到配置文件中不要包装时,还是按照原来的方式获取访问地址;如果配置文件中要求包装,则按原有方式获取访问地址后,将domain的部分截取掉。这样的话在只要在管理环境和访问环境中配置不同的配置项就好。

 

 

 

 

继续本系统文章的最后一篇,配置并运行Oracle WebCenter Sites.

[highlight dark=”no”]6. 配置Oracle WebCenter Sites[/highlight]

6.1 启动管理服务器

运行Oracle Home目录下的user_projects\domains\wc_domain\startWeblogic.cmd,启动管理服务器。

wcs63

6.2 启动Node Manager

运行Oracle Home目录下的user_projects\domains\wc_domain\startNodeManager.cmd,启动Node Manager,成功启动后显示[highlight dark=”no”]<Nov 3, 2015 8:42:22 PM PST> <INFO> <Secure socket listener started on port 5556, host localhost/127.0.0.1>[/highlight]等字眼。

wcs64

6.3 为OPSS授权

运行Oracle Home目录下的user_projects\domains\wc_domain\wcsites\bin\grant-opss-permission.bat,输入管理账户名及密码,进行OPSS授权。

wcs65

6.4 创建共享文件夹

创建名为sitesData的共享文件夹供Sites使用。

wcs66

6.5 启动sites管理服务器

访问地址http://localhost:7001/console,输入用户名及密码,登入Admin Server.

wcs67

Environment–>Servers,转到Control面板,选择wcsites_server1,点Start,启动Sites管理服务器。

wcs68

确认wcsites_server1的状态变为Running.

wcs69

6.6 进行WebCenter Sites初始化配置

访问地址[highlight dark=”no”]http://localhost:8001/sites/sitesconfigsetup[/highlight],点Begin开始进入Sites初始化设置。

wcs70

指定共享目录路径

把路径设置为之前创建的共享目录路径,点Next

wcs71

JNDI数据源

接受默认名称点Next

wcs72

Web应用参数

输入主机名与端口,点Next

wcs73

CAS部署信息

确认信息后点Next

wcs74

WebCenter Sites Administrator Accounts

输入WebCenter Sites管理员的账号与密码信息,点Next

wcs75

Sample Sites

选择所需的示例站点,Next.

wcs76

配置汇总

在配置汇总页面点Test, 确认所有配置信息正确,点Start开始处理。

wcs77

完成配置

等待WebCenter Sites配置完成,显示成功画面。

wcs78

[highlight dark=”no”]7. 测试Oracle WebCenter Sites[/highlight]

7.1 重新启动wcsites_server1

停止重新启动wcsites_server1.

wcs68

7.2 访问WebCenter Sites

访问地址http://localhost:8001/sites,显示sites登录页面,用 fwadmin/xceladmin或者firstsite/firstsite登录系统。

wcs79

选择站点及喜欢的界面,进入系统。

wcs80

 

至此,完成了Oracle WebCenter Sites的安装及初始化配置。吐槽一把可恶的IE,居然无法正常显示Sites的界面,只好重新装个FF来测试。

 

 

 

 

 

 

[highlight dark=”no”]4. 运行RCU,创建数据库[/highlight]

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,开始创建向导

wcs30

4.2 创建Repository

选择Create Repository–>System Load and Product Load, 点Next.

wcs31

4.3 数据库连接信息

输入Oracle数据库的连接信息,点击Next.

wcs32

wcs33

[highlight dark=”no”]注意如果使用XE的话,数据库检查会报错,只要点击忽略就可以继续。[/highlight]

4.4 选择安装组件

勾选WebCenter Sites,其它所需组件会自动先上,确认后点击Next.

wcs34

通过先决条件检查后点OK确认。

wcs35

4.5 设置Schema的密码

输入并确认Schema的密码后点Next.

wcs36

4.6 表空间信息确认并创建表空间

确认表空间信息无误,点击Next.

wcs37

检查后点击OK。

wcs38

开始创建不存在的表空间,完成后点OK,再点Next。

wcs39

4.7 RCU汇总并创建所需的表

确认信息无误后点Create,创建WebCenter Sites所需的表。

wcs40

开始创建所需的组件。

wcs41

4.8 完成RCU安装

完成RCU安装,点Close.

wcs42

[highlight dark=”no”]5. 创建Oracle WebCenter Sites域[/highlight]

5.1 运行config.cmd,开始域创建向导

运行Oracle Home目录下的oracle_common\common\bin\config.cmd。

wcs43

选择创建新Domain,Next.

wcs44

5.2 选择域使用的模板

选择Oracle WebCenter Sites with Examples, Oracle WebCenter Sites – Visitor Services, Oracle Enterprise Manager,点Next.

wcs45

5.3 应用位置

点Next.

wcs46

5.4 设置域管理员账号密码

输入域管理员的账号密码,点Next.

wcs47

5.5 Domain模式和JDK

选择所需模式及JDK后点Next.

wcs48

5.6 数据库连接配置

输入数据库密码后点击Get RCU Configuration,测试数据库连接没问题后点Next.

wcs49

5.7 组件数据源连接设置

输入组件数据源的数据库连接信息,点击Next。

wcs50

5.8 JDBC测试

JDBC测试成功后点Next.

wcs51

5.9 Advanced Configuration

Advanced Configuration选择Administration Server, Node Manager和Managed Servers, Clusters and Coherence.

wcs52

Administration Server

默认7001端口,Next.

wcs53

Node Manager

选择Node Manager的类型,输入Node Manager的用户名及密码。

wcs54

Managed Servers

设定管理服务器的名称及端口,点Next.

wcs55

Clusters

直接Next

wcs56

Coherence Clusters

直接Next

wcs57

5.10 Machines

输入主机名,点Next.

wcs58

5.11 指定管理服务器给主机

为所有的管理服务器指定给上一步设定的主机名,点Next

wcs59

5.12 配置汇总

直接点Create,开始Domain创建。

wcs60

5.13 进行Domain创建

完成配置后点Next

wcs61

5.14 完成域配置

点击Finish,完成Domain的创建及配置。

wcs62

 

至此,我们完成了Oracle WebCenter Sites所需Domain及Managed Server的创建,下一步是进一步配置并真正把WebCenter Sites运行起来。

[highlight dark=”no”]未完待续,To be continued……[/highlight]

 

Oracle WebCenter Sites 12c的安装与之前的版本有较大不同,加上目前官方的文档还不是很详细,导致很多时候安装不成功。特意写下自己的安装过程,供Tongfu的同事参考。

0.安装所需的软件wcs29

准备好所需软件后,即可开始安装。Oracle数据库与JDK的安装就直接跳下,下面从Weblogic Server的安装开始。

[highlight dark=”no”]1.安装Oracle Weblogic Server 12c[/highlight]

1.1 运行Weblogic Server 安装程序

[highlight dark=”no”]Z:\Oinstall\12C>”c:\Program Files\Java\jdk1.8.0_65\bin\java.exe” -jar fmw_12.2.1.0.0_wls.jar[/highlight]

wcs1

运行下载的jar包,启动weblogic安装程序。

wcs2

 

wcs3

1.2 Auto Updates设置

跳过自动更新设定

wcs4

1.3 选择安装路径

wcs5

1.4 选择安装类型

wcs6

1.5 先决条件检查

wcs7

1.6 跳过安全更新设置

wcs8

1.7 安装选择汇总

页面显示安装选择汇总,点击Install按钮开始安装。

 

wcs9

 

1.8 正式安装Weblogic Server

wcs10

1.9 完成Weblogic Server安装

wcs11

[highlight dark=”no”]2.安装Oracle Fusion Middleware Infrastructure[/highlight]

2.1 运行安装命令,启动Oracle Fusion Middleware Infrastructure安装向导

运行安装命令,[highlight dark=”no”]Z:\Oinstall>”c:\Program Files\Java\jdk1.8.0_65\bin\java.exe” -jar fmw_12.2.1.0.0_infrastructure.jar[/highlight],欢迎窗口点击Next.

 

wcs12

 

wcs13

 

2.2 跳过自动更新设定

wcs14

2.3 安装路径

选择Weblogic Server安装选择的Oracle Home位置。

wcs15

2.4 选择安装类型

wcs16

2.5 先决条件检查

wcs17

2.6 安装选择汇总

wcs18

点击Install开始进行安装。

2.7 进行Oracle Fusion Middleware Infrastructure的安装

wcs19

2.8 完成Oracle Fusion Middleware Infrastructure的安装

wcs20

[highlight dark=”no”]3. 安装Oracle WebCenter Sites 12c[/highlight]

3.1 运行命令,WebCenter Sites 12c安装向导

运行命令[highlight dark=”no”]Z:\Oinstall\12C>”c:\Program Files\Java\jdk1.8.0_65\bin\java.exe” -jar fmw_12.2.1.0.0_wcsites_generic.jar[/highlight],进入安装向导。

wcs21

 

wcs22

3.2 跳过自动更新

wcs23

3.3 安装位置

选择之前Weblogic Server安装的Oracle Home路径。

wcs24

3.4 安装类型

选择WebCenter Sites和示例网站。

 

wcs25

3.5 先决条件检查

wcs26

3.6 安装汇总

确认所需的功能模块均已选择,点击Install开始进行WebCenter Sites安装。

wcs27

3.7 正式安装WebCenter Sites

正式安装WebCenter Sites

正式安装WebCenter Sites

3.8 完成WebCenter Sites的安装

完成WebCenter Sites的安装

完成WebCenter Sites的安装

 

至此,我们完成了所需软件的安装,下一步是开始进行WebCenter运行所需环境的配置。To be continued……

友好的URL访问:

再也不用去写复杂的URL封装器解装器了

Mobile的支持

Segment界面的美化

与Webcenter Content的集成


安装论坛模块与gadgets更简单的安装

前言:

一个站点完美的用户体验往往体现在各种细节当,友好的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)

0 评论/通过:

问题描述:

在使用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属性为同一值,这样的话就可以做到,编辑一处,全局改变。提高工作效率。

0 评论/通过:

有个客户很羡慕传说中WebCenter Site的功能,准备在一项目在使用这产品。为了能评估工作量加上不被各色人等忽悠,只能自己装一次评估。在eDelivery上下载了安装程序,真坑爹,一点都不象以前O记的产品,居然安装说明的文档都没有。在Weblogic上安装,以手工部署的方式很顺利就完成了应用的安装,但在升级到7.6时就卡住了,测试时出现以下错误:

HelloCS has failed.
Ping DB has failed.
DB Permissions has failed. 

在服务器启动时报Caused By: java.lang.IllegalAccessError: tried to access field
org.slf4j.impl.StaticLoggerBinder.SINGLETON from class

org.slf4j.LoggerFactory

 的错。折腾了老半天,鬼就出在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

  • Some of the basic changes within the implementation requires quite a lot of work. A good example is vanity URLs. Most of the clients now a days have this basic requirement especially around blobs but there is none out of the box URL assembler available
  • Deployment is one of the most painful area. Even with CSDT, which is just the recent addition to product, there are many area’s which it lacks. The basic use cases are not covered by CSDT
  • With CS 761, there are headless installs which is welcome change through if you are upgrading to CS 761 from version below CS 75 there is no other way apart from GUI based installers
  • Product customisation is one of the pain area’s. There is no concept of extending the existing elements into your project elements and apply changes. Which means each time you run an upgrade, there is an activity to reapply all the changes again which makes upgrades sooo much error prone and time consuming
  • CS Engage, for providing personalised content, has never been an easy product to work with and get your head around it
  • There are number of modules on top of core content server but its been utilised scarcely across the globe and tough to find a single case study when in need
  • Rollbacks are still is old 90′s fashion way of taking file system and database dump and restoring them back. Cold dumps needs to be taken to get an exact snapshot of the system at that point in time
  • Lots of documentation is there but they cover basic information and for anything beyond basic changes require folow-up on yahoo groups or through support
  • Support centre has not been supportive. It sometimes feel, just to meet their SLA’s, there are responses which doesn’t even relate back to the actual query
  • etc. etc.