2009年10月14日星期三

WebCenter_009:Portal开发指南之四:创建一个运行时可以修改的JSF Page

运行环境:JDeveloper 11.1.1.6.0 + Oracle Database 10g Express Edition 10.2.0.1。

完成《Build a JSF Page that is Editable at Runtime》。
说明:文档是针对11.1.1.3的,我是使用JDeveloper 11.1.1.6.0重新做的。

学习要点:
1. 创建WebCenter应用

2. 为页面增加Oracle Composer组件
Composer组件可以在运行时修改页面。

(1)Change Mode Link
(2)Page Customizable
该组件定义运行时可以修改的区域。
(3)Layout Customizable
该组件定义运行时可以修改的页面布局。
(4)Show Detail Frame
完成后的页面代码如下:
<f:facet name="content">
  <af:group id="g1">
    <pe:changeModeLink id="cml1"/>
    <pe:pageCustomizable id="pageCustomizable1">
      <cust:panelCustomizable id="panelCustomizable1" layout="scroll">
        <pe:layoutCustomizable id="layoutCustomizable1">
          <cust:panelCustomizable id="panelCustomizable2">
            <cust:showDetailFrame text="showDetailFrame 1" id="sdf1"/>
          </cust:panelCustomizable>
          <f:facet name="contentA">
            <cust:panelCustomizable id="panelCustomizable3">
              <cust:showDetailFrame text="showDetailFrame 2"
                                    id="sdf2">
                <af:image source="/57996_1600x1200-wallpaper-cb1344523063.jpg"
                          id="i1"/>
              </cust:showDetailFrame>
            </cust:panelCustomizable>
          </f:facet>
          <f:facet name="contentB">
            <cust:panelCustomizable id="panelCustomizable4">
              <cust:showDetailFrame text="showDetailFrame 3"
                                    id="sdf3">
                <af:richTextEditor label="" id="rte1"/>
              </cust:showDetailFrame>
            </cust:panelCustomizable>
          </f:facet>
        </pe:layoutCustomizable>
      </cust:panelCustomizable>
      <f:facet name="editor">
        <pe:pageEditorPanel id="pep1"/>
      </f:facet>
    </pe:pageCustomizable>
  </af:group>
</f:facet>


3. 运行效果



Project 下载:MyWebCenterApp(2).7z

2009年10月13日星期二

WebCenter_008:Portal开发指南之三:使用Oracle JSF Portlet Bridge将JSF Web应用发布成Portlet

运行环境:JDeveloper 11.1.1.6.0 + Oracle Database 10g Express Edition 10.2.0.1。

完成《Portletize a JSF Application Using Oracle JSF Portlet Bridge》。
说明:文档是针对11.1.1.3的,我是使用JDeveloper 11.1.1.6.0重新做的。

1. Portletize JSF Page
右键点击JSF Page,选择Create Portlet Entry。




2. 发布应用
File > New > Deployment Profiles > WAR。
设置Deployment Profile Name:如SimpleApplication。
设置Specify Java EE Web Context Root:如SimpleApplication。


右键点击ViewController Project,选择Deploy。

发布成功后,访问:http://localhost:7101/[context-root]/portlets/wsrp2?WSDL

此时,该JSF Web应用可以做一个Portlet Producer,供WebCenter 应用使用。

3. 创建Portal应用,注册Portlet
运行效果如下:



Project 下载:MyWebCenterApp_SimpleApp.7z

2009年10月12日星期一

WebCenter_007:Portal开发指南之二:创建并注册Portlets

运行环境:JDeveloper 11.1.1.6.0 + Oracle Database 10g Express Edition 10.2.0.1。

完成《Create and Register Portlets》。
说明:文档是针对11.1.1.3的,我是使用JDeveloper 11.1.1.6.0重新做的。

学习要点:
Oracle WebCenter Framework 可以帮助我们创建WebCenter applications,Oracle PDK-Java portlets,以及标准的Java portlets (JSR 168)。

1. 创建Portlet应用
在应用模版中,要选择Portlet Producer Application。



(1)创建Oracle PDK-Java Portlet
New > Web Tier > Portlets > Oracle PDK-Java Portlet。







(2)创建Standards-based Java Portlet (JSR 168)
New > Web Tier > Portlets > Standards-based Java Portlet (JSR 168)。
选择Enable users to edit portlet content 和 Enable inter-portlet communication using Oracle WSRP V2 extensions。






2. 创建WebCenter 应用
前面已经创建了Portlet 应用,创建了2个Portlets,它们作为"Portlet Provider "。下面要创建WebCenter 应用,作为"Portlet Consumer "。
要想在Portal应用中使用portlet,必须先将该Portlet发布,然后在应用中注册该Portlet。
Standards-based Java Portlet (JSR 168) 发布到Oracle's portlet container后,将自动以WSRP的方式暴露。
(1)注册 Oracle PDK-Java Portlet Producer
JDeveloper中自带的WLS包含一些已经发布的Oracle PDK-Java Portlet Producer:http://localhost:7101/jpdk/providers

New > Web Tier > Portlets > Oracle PDK-Java Producer Registration。



注册成功后,在JDeveloper中可以看到:




(2)注册 WSRP Portlet Producer
Oracle WebCenter 支持Web Services for Remote Portlets (WSRP) 1.0 和 2.0。
JDeveloper中自带的WLS包含一些已经发布的WSRP Portlet Producer:
http://localhost:7101/portletapp/portlets/wsrp2?WSDL
New > Web Tier > Portlets > WSRP Portlet Producer 。



注册成功后,在JDeveloper中可以看到:


有关更多自带的WLS的信息,可以点击Help > WebCenter Preconfigured Server Readme 获得。

3. 为JSF Page增加Portlets
(1)拖放Lottery Portlet到页面上
(2)拖放Parameter Form Portlet到页面上
(3)拖放Parameter Display Portlet到页面上


4. 运行效果
(1)内置的Portlet

(2)自己创建的Portlet


Project 下载:MyWebCenterApp_PortletApp.7z

参考文献:
1. http://www.ibm.com/developerworks/cn/webservices/ws-wsrp/
2. http://dev2dev.weblogicfans.net/techdoc/2005060804.html
3. http://baike.baidu.com/view/1089531.html?fromTaglist
4. http://www.ibm.com/developerworks/cn/websphere/library/techarticles/yangjiang/0402_jsr168/jsr168portlet.html

2009年10月11日星期日

WebCenter_006:Portal开发指南之一:在JSF中管理文档

运行环境:JDeveloper 11.1.1.6.0 + Oracle Database 10g Express Edition 10.2.0.1。

完成《Add Content to a JSF Page》。
说明:文档是针对11.1.1.3的,我是使用JDeveloper 11.1.1.6.0重新做的。

学习要点:
(1)创建Content Repository Connection
使用Content Repository Connection可以连接到:Oracle Portal,Oracle Content Server,File System repository。
(2)创建Content Repository Data Control
拖放Content Repository Data Control就可以生成页面组件,比如Table,显示Content Repository中的内容。
(3)使用Documents service task flows

1. 创建Portal 应用
(1)选择WebCenter Portal Application模板。

(2)该模板将为你的Portal应用添加很多WebCenter特性,如Oracle Composer,Resource Palette,task flows,content integration,WebCenter Services。

(3)勾上“Configure Portal”选项(默认是选中的)。


2. 创建 Content Repository 连接。
(1)File > New > General > Connections > Content Repository Connection。

(2)支持连接Oracle Portal,Oracle Content Server,File System。

其它说明:
勾上“Set as Primary”选项。
Identity Propagation 选项:选中的话将会把应用中的用户身份传播到 repository 中,作为repository中的用户,这样就不用再验证了。
如果当前用户身份不能直接传播给repository,可以使用External Application method。参数设置如下:
  • URL of the external application:http://myexternalapp.mycompany.com:8888/mycontent/ws。

  • user name and password。

  • shared credentials that can be used at design time and runtime。

  • public credentials that can be used at design time and runtime.


3. 创建Content Repository Data Control
(1)File > New > Business Tier > Content Repository > Content Repository Data Control。
或者直接右键Content Repository Connection,选择“Create Data Control”:

(2)选择前面创建好的Content Repository Connection

(3)Content Repository Data Control 符合Java Content Repository (JCR 170) 标准,包括如下功能: publish content,links,tables,files,folders,search,advanced search。


4. 创建JSF页面,以表格的形式展现Repository Content。
(1)拖放 MyFSDC data control > getItems > Return,选择生成ADF Read-only Table。

(2)设置参数值: path=/


5. 增加Document Manager Task Flow。
Documents service可以让你浏览和管理Repository Content。
(1)选择Document- Document Manager

(2)设置参数ConnectionName


6. 最终页面运行效果如下:


Project 下载:MyWebCenterApp.7z

2009年10月5日星期一

WebCenter_005:为WebCenter 11gR1配置E2.0 服务

首先需要安装完成WebCenter Suite 11g,请参考《图解安装 WebCenter Suite 11gR1
这里介绍如何配置以下E2.0服务:UCM、Discussions、Wiki&Blog、OOTB Portlets。

1. 配置UCM
(1)安装UCM,请参考《图解安装 Oracle UCM 10.1.3.5.1
(2)启动AdminServer和WLS_Spaces
(3)登录EM Console:http://localhost:7001/em
(4)如图选择Service Configuration

(5)选择Content Repository,点击Add,设置如下: 重启WebCenter Spaces,并访问:http://localhost:8888/webcenter,点击 Recent Documents。
2. 配置Discussions
WebCenter Spaces 登录要求验证,Discussions 登录也要求验证,为了合二为一,故须如下设置。
2.1 为WebCenter创建Keystore
在[java_home]\bin目录下执行
(1)创建WebCenter密钥库
keytool -genkey -dname "cn=spaces,dc=cn,dc=oracle,dc=com" -alias orakey -keypass welcome1 -keystore webcenter.jks -storepass welcome1 -keyalg RSA
(2)导出WebCenter的数字证书
keytool -exportcert -v -alias orakey -keystore webcenter.jks -storepass welcome1 -rfc -file orakey.cer

2.2在EM中为WebCenter配置Keystore
(1)拷贝webcenter.jks 到[webcenter_domain]\config\fmwconfig目录下。
(2)
选择Keystore,点击Configure
把./default-keystore.jks改成./webcenter.jks,
2.3 把WebCenter数字证书导入到owc_discussions.jks中
keytool -importcert -alias df_orakey_public -file orakey.cer -keystore owc_discussions.jks -storepass welcome1
2.4 配置 owc_discussions
(1)在[webcenter_domain]目录下创建keystore目录,并把 owc_discussions.jks 拷贝到这里。
(2)在keystore目录下创建keystore.properties ,内容如下:
keystoreorg.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=welcome1
org.apache.ws.security.crypto.merlin.keystore.alias=df_orakey_public
org.apache.ws.security.crypto.merlin.file=C:/Oracle/Middleware/user_projects/domains/webcenter_domain/keystore/owc_discussions.jks
(3)创建jar 文件
在keystore目录下执行jar cvf jive_crypto_props.jar keystore.properties 。
把 jive_crypto_props.jar 拷贝到[webcenter_domain]\lib中。
(4)修改 owc_discussions 系统属性
访问http://localhost:8888/owc_discussions/admin
Forum System->System Properties
把属性webservices.soap.custom.crypto.fileName从crypto.properties改成keystore.properties 。
2.5 在EM中注册 owc_discussions

重启WebCenter Spaces,并访问:http://localhost:8888/webcenter,点击 Discussion Forums。
3. 配置Wiki and Blog
点击Create Map,Map Name = owc_wiki;选择owc_wiki map,点击Create Key
Key = wsPasscode
Type = Password
User Name = weblogic
Password = welcome1

4. 配置OOTB Portlets
在C:\Oracle\Middleware\Oracle_WC1\common\bin\目录下运行:wlst
connect( 'weblogic','welcome1','pmma-cn.cn.oracle.com:7001')
registerOOTBProducers(producerHost='pmma-cn.cn.oracle.com', producerPort=8888, appName='webcenter')
进入EM Console,你应该看到