ADF Jar包循环引用会出问题

举例有两个ADF应用app1和app2,app1中taskflow1,app2中有taskflow2。打包app2.jar,taskflow1调用taskflow2,然后打j包app1.jar,将app1.jar加入到应用app2中,此时报错DataBinding.cpx重复错误。  原因是引入的jar包app1.jar中有app2.jar,app2.jar包中有DataBinding.cpx文件,它会和app2应用中的DataBinding.cpx冲突。

报错如下:

Error 500--Internal Server Error

oracle.jbo.JboException: JBO-34010: "hmw/hr/view/DataBindings.cpx" 描述符在应用程序类路径中多次出现:
  - jar:file:C:/Users/lee/AppData/Roaming/JDeveloper/system11.1.1.5.37.60.13/DefaultDomain/servers/DefaultServer/tmp/_WL_user/HrMaintainApp/n6bgfc/war/WEB-INF/lib/adflibHrMaintainViewController.jar!/hmw/hr/view/DataBindings.cpx
  - file:/C:/Users/lee/AppData/Roaming/JDeveloper/system11.1.1.5.37.60.13/o.j2ee/drs/HrMaintainApp/HrMaintainViewControllerWebApp.war/WEB-INF/classes/hmw/hr/view/DataBindings.cpx
	at oracle.jbo.uicli.mom.CpxUtils$Visitor.visit(CpxUtils.java:227)
	at oracle.adf.share.common.rc.util.impl.MetadataRegistryImpl.visitRegistryPaths(MetadataRegistryImpl.java:171)
	at oracle.adf.share.common.rc.util.impl.MetadataRegistryImpl.visitRegistryPaths(MetadataRegistryImpl.java:118)
	at oracle.jbo.uicli.mom.CpxUtils.getCpxListFromMetadata(CpxUtils.java:461)
	at oracle.jbo.uicli.mom.JUMetaObjectManager.loadCpx(JUMetaObjectManager.java:662)
	at oracle.adf.model.BindingContext.initialize(BindingContext.java:399)
	at oracle.adf.model.BindingRequestHandler.beginRequest(BindingRequestHandler.java:226)
	at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:203)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
	at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
	at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
	at java.security.AccessController.doPrivileged(Native Method)
	at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
	at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
	at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
	at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
	at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

你可能感兴趣的:(ADF Jar包循环引用会出问题)