我正在为基本应用程序开发定制应用程序。
例如,基本应用程序包含 -
Databindingsbase.cpx
BoundedTF.xml - Which contains jsff page (Details.jsff)
Details.jsff - Contains Button with label as 'Show Employee Details' with action 'ok'.
UnboundedTF.xml - Contains jsf (Home.jsf) page to call the bounded task flow.
Home.jsf - Contains Bounded Task flow.
我在基础应用程序中包含了另一个应用程序(RemoteApplication)作为库。
它包含 :
DatabindingsRemote.cpx
RemoteBoundedTF.xml - It contains Channels.jsff page.
Channels.jsff - It contains table view object on the page (Employee table with EmpId and EmpName column).
我已经为 RemoteApplication 生成了 jar 文件,并将其作为库包含在 Base Application 中。
我在基础应用程序中包含了 SiteCC 自定义类。
定制角色的目的:
Open BoundedTF.xml of base application,Which already contains Details.jsff with view icon.
Open web-inf folder of RemoteApplication library jar.
Drag and drop RemoteBoundedTF.xml to BoundedTF.xml.
Provide Control flow from Details.jsff to RemoteBoundedTF.xml with action 'ok'.
由于所有这些更改都是在自定义角色中完成的,因此所有更改都将在 BoundedTF.xml.xml 中更新。
我已经生成了视图控制器 WAR 文件 - webapp1.war。
我已经生成了 MAR 文件,用于将最新更改作为新的自定义层合并到基础应用程序中。
我已经生成了 EAR 文件,其中包含 WAR 和 MAR 文件。EAR 文件将成功部署在服务器上。
但是一旦我将尝试在部署后通过 EAR 中提供的路径运行我的 Home.jsf 页面。
我会得到以下异常
oracle.jbo.NoXMLFileException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-26001. Error message parameters are {0=/view/DataBindingsBase.cpx}
at oracle.jbo.mom.MOMParserMDS.parse(MOMParserMDS.java:256)
at oracle.jbo.mom.MOMParserNonMDS.readAndParse(MOMParserNonMDS.java:71)
at oracle.jbo.mom.DefinitionContextStandard.readAndParse(DefinitionContextStandard.java:279)
at oracle.jbo.mom.DefinitionManager.loadProjectDefinition(DefinitionManager.java:2901)
at oracle.jbo.mom.DefinitionManager.loadProjectDefinitionInSession(DefinitionManager.java:2846)
at oracle.jbo.uicli.mom.JUMetaObjectManager.findCpx(JUMetaObjectManager.java:739)
at oracle.jbo.uicli.mom.JUMetaObjectManager.loadCpx(JUMetaObjectManager.java:882)
at oracle.adf.model.BindingContext.initialize(BindingContext.java:464)
at oracle.adf.model.BindingRequestHandler.beginRequest(BindingRequestHandler.java:272)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:192)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:105)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:529)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:529)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:354)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:232)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:166)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:141)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:649)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:124)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:232)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:94)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:224)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:32)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3654)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3620)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196)
at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2423)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2280)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2258)
at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1626)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1586)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)
at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)
Caused By: oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object "/view/DataBindingsBase.cpx"
MDS-00201: PDocument not found in MetadataStore : [store- type=DBMetadataStore app-name=EAR66 repository-name=mds-CustomPortalDBDS partition-name=EAR66]
at oracle.mds.core.MetadataObject.getBaseMO(MetadataObject.java:1677)
at oracle.mds.core.MDSSession.getBaseMO(MDSSession.java:4473)
at oracle.mds.core.MDSSession.getMetadataObject(MDSSession.java:1787)
at oracle.mds.core.MDSSession.getMetadataObject(MDSSession.java:1717)
at oracle.jbo.mom.MOMParserMDS.parse(MOMParserMDS.java:222)
at oracle.jbo.mom.MOMParserNonMDS.readAndParse(MOMParserNonMDS.java:71)
at oracle.jbo.mom.DefinitionContextStandard.readAndParse(DefinitionContextStandard.java:279)
at oracle.jbo.mom.DefinitionManager.loadProjectDefinition(DefinitionManager.java:2901)
at oracle.jbo.mom.DefinitionManager.loadProjectDefinitionInSession(DefinitionManager.java:2846)
at oracle.jbo.uicli.mom.JUMetaObjectManager.findCpx(JUMetaObjectManager.java:739)
at oracle.jbo.uicli.mom.JUMetaObjectManager.loadCpx(JUMetaObjectManager.java:882)
at oracle.adf.model.BindingContext.initialize(BindingContext.java:464)
at oracle.adf.model.BindingRequestHandler.beginRequest(BindingRequestHandler.java:272)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:192)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:105)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:529)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:529)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:354)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:232)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:166)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:141)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:649)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:124)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:232)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:94)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:224)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:32)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3654)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3620)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196)
at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2423)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2280)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2258)
at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1626)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1586)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)
at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:617)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:397)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)
我已经尝试了给定链接的解决方案。
http://docs.oracle.com/cd/E48434_01/doc.1118/e25450/mds_trouble.htm
http://adfwebcentermoments.blogspot.in/2015/11/oracle-adf-maven-build-and-deploy-issues.html
我只使用默认构建工具,而不是 Maven。所以我无法确定这个异常的原因。
我通过再次将 dataBindingsBase.cpx 和 dataBindingsRemote.cpx 设置为 dataBindings.cpx 解决了异常。现在我将有 2 个重复的 dataBindings.cpx。一个在基本应用程序中,另一个在我已包含在基本应用程序中的远程应用程序 jar 文件中。
因此,我得到了重复的 dataBindings.cpx 异常。所以我从远程 JAR 文件中删除了这个 dataBindings.cpx。
在自定义角色中,我做了一些更改并为更改生成了 MAR 文件。我已经在 weblogic 服务器的 EAR 中部署了这个 MAR 文件。但它无法反映变化。我没有找到我要去的地方。请就此向我提出建议。