2013-11-24 28 views
0

當我使用gatein public api創建用戶頁面時,我得到了一個org.gatein.api.EntityNotFoundException異常。這裏遵循我的代碼,用於創建用戶頁面無法使用gatein public api創建用戶頁面

 

User user = PortalRequest.getInstance().getUser(); 

Portal portal = PortalRequest.getInstance().getPortal(); 

f(portal.getPage(new PageId(user, pageName))==null){ 

Page newpage = portal.createPage(new PageId(user, pageName));// Here i got the exception 

} 
 

這裏如下異常的堆棧跟蹤

 

org.gatein.api.EntityNotFoundException: Site Site.Id[type=dashboard, name=supervisor] doesn't exist 

    at org.gatein.api.PortalImpl.createPage(PortalImpl.java:271) [exo.portal.component.api-3.6.0.Final.jar:3.6.0.Final] 

    at com.radiant.cisms.view.bean.DynamicDashBoardBean.createUserSpecificPage(DynamicDashBoardBean.java:146) 

    at com.radiant.cisms.view.bean.DynamicDashBoardBean.saveNewPortlets(DynamicDashBoardBean.java:115) 

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_45] 

    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.7.0_45] 

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.7.0_45] 

    at java.lang.reflect.Method.invoke(Unknown Source) [rt.jar:1.7.0_45] 

    at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132) 

    ... 121 more 
 

而且我在這裏附上我的門戶configuration.xml文件以供參考

 

<?xml version="1.0" encoding="UTF-8"?> 
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd http://www.exoplaform.org/xml/ns/kernel_1_0.xsd" 
    xmlns="http://www.exoplaform.org/xml/ns/kernel_1_0.xsd"> 

    <external-component-plugins> 
     <!-- The full qualified name of the UserPortalConfigService --> 
     <target-component>org.exoplatform.portal.config.UserPortalConfigService 
     </target-component> 
     <component-plugin> 
      <name>new.portal.config.user.listener</name> 
      <set-method>initListener</set-method> 
      <type>org.exoplatform.portal.config.NewPortalConfigListener</type> 
      <description>this listener init the portal configuration 
      </description> 
      <init-params> 
       <value-param> 
        <name>default.portal</name> 
        <description>The default portal for checking db is empty or not 
        </description> 
        <value>MPortal</value> 
       </value-param> 
       <value-param> < 
        <name>override</name> 
        <description>The flag parameter to decide if portal metadata is overriden on restarting server</description> 
        <value>true</value> 
       </value-param> 
       <object-param> 
        <name>portal.configuration</name> 
        <description>description</description> 
        <object type="org.exoplatform.portal.config.NewPortalConfig"> 
         <field name="predefinedOwner"> 
          <collection type="java.util.HashSet"> 
           <value> 
            <string>classic</string> 
           </value> 
           <value> 
            <string>MPortal1</string> 
           </value> 
           <value> 
            <string>MPortalForgotPassword</string> 
           </value> 
           <value> 
            <string>MPortalWizard</string> 
           </value> 
           <value> 
            <string>MPortalEndUser</string> 
           </value> 
          </collection> 
         </field> 
         <field name="ownerType"> 
          <string>portal</string> 
         </field> 
         <field name="templateLocation"> 
          <string>war:/conf/gtec/</string> 
         </field> 
         <field name="importMode"> 
          <string>overwrite</string> 
         </field> 
        </object> 
       </object-param> 
      </init-params> 
     </component-plugin> 
    </external-component-plugins> 

</configuration> 
 

燦你幫我給出一個關於這個問題的理由?

+0

我想你使用GateIn 3.6?我在一個基本的portlet中測試了代碼片段,並且我的頁面已經成功創建。你可以嘗試一個新的GateIn?您是否添加了一些可能影響用戶頁面的自定義配置? – Thomas

+0

@Thomas我正在使用新鮮的GateIn。但我在自己的門戶應用中做到了。但我可以創建頁面時,'SiteKey'而不是'user'就像下面的'portal.createPage(new PageId(「newPortal」,「myPage」));' –

+0

異常說明您的用戶的儀表板尚未創建。儀表板是在用戶創建時通過在文件portal.war/WEB-INF/conf/portal/portal-configuration.xml中聲明的偵聽器org.exoplatform.portal.config.UserPortalConfigListener創建的。您是否刪除/覆蓋此配置? – Thomas

回答

3

錯誤表示您的用戶的儀表板不存在。由於在文件portal.war/WEB-INF/conf/portal/portal-configuration.xml中聲明的監聽器org.exoplatform.portal.config.UserPortalConfigListener,創建用戶時會自動創建儀表板。 所以我想在你的情況下,當用戶被創建時,監聽器沒有被觸發。

如果以編程方式創建用戶,必須通過將createUser方法的第二個參數設置爲true來確保廣播選項已啓用(這將觸發偵聽器):orgService.getUserHandler()。createUser(用戶,真);

相關問題