Я пытаюсь создать экземпляр AppModule программно
но я получаю classCastException
что DefaultContext подходит для этого использования. Утечки памяти и / или непредвиденное поведение могут возникнуть, если автоматическая инициализация
выполняется неправильно. Это сообщение можно избежать, выполнив
initADFContext перед использованием getCurrent ().>
java.lang.ClassCastException: com.oracle.ocs.adaa.model.AppModuleImpl не может быть приведен к com.oracle.ocs.adaa.model.AppModuleImpl
в com.oracle.ocs.adaa.services.TreeTraverse.postTree (TreeTraverse.java:53)
на com.oracle.ocs.adaa.restwebservice.Client.postStrategyTree (Client.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
в java.lang.reflect.Method.invoke (Method.java:498)
в org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory $ 1.invoke (ResourceMethodInvocationHandlerFactory.java:81)
на org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher $ 1.run (AbstractJavaResourceMethodDispatcher.java:144)
в org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke (AbstractJavaResourceMethodDispatcher.java:161)
в org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider $ ResponseOutInvoker.doDispatch (JavaResourceMethodDispatcherProvider.java:160)
в org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch (AbstractJavaResourceMethodDispatcher.java:99)
на org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke (ResourceMethodInvoker.java:389)
на org.glassfish.jersey.server.model.ResourceMethodInvoker.apply (ResourceMethodInvoker.java:347)
на org.glassfish.jersey.server.model.ResourceMethodInvoker.apply (ResourceMethodInvoker.java:102)
на org.glassfish.jersey.server.ServerRuntime $ 2.run (ServerRuntime.java:326)
на org.glassfish.jersey.internal.Errors $ 1.call (Errors.java:271)
на org.glassfish.jersey.internal.Errors $ 1.call (Errors.java:267)
на org.glassfish.jersey.internal.Errors.process (Errors.java:315)
на org.glassfish.jersey.internal.Errors.process (Errors.java:297)
на org.glassfish.jersey.internal.Errors.process (Errors.java:267)
на org.glassfish.jersey.process.internal.RequestScope.runInScope (RequestScope.java:317)
на org.glassfish.jersey.server.ServerRuntime.process (ServerRuntime.java:305)
на org.glassfish.jersey.server.ApplicationHandler.handle (ApplicationHandler.java:1154)
на org.glassfish.jersey.servlet.WebComponent.serviceImpl (WebComponent.java:473)
на org.glassfish.jersey.servlet.WebComponent.service (WebComponent.java:427)
на org.glassfish.jersey.servlet.ServletContainer.service (ServletContainer.java:388)
на org.glassfish.jersey.servlet.ServletContainer.service (ServletContainer.java:341)
на org.glassfish.jersey.servlet.ServletContainer.service (ServletContainer.java:228)
at weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run (StubSecurityHelper.java:286)
at weblogic.servlet.internal.StubSecurityHelper $ ServletServiceAction.run (StubSecurityHelper.java:260)
на weblogic.servlet.internal.StubSecurityHelper.invokeServlet (StubSecurityHelper.java:137)
на weblogic.servlet.internal.ServletStubImpl.execute (ServletStubImpl.java:350)
на weblogic.servlet.internal.TailFilter.doFilter (TailFilter.java:25)на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:78)
на com.thetransactioncompany.cors.CORSFilter.doFilter (CORSFilter.java:198)
на com.thetransactioncompany.cors.CORSFilter.doFilter (CORSFilter.java:244)
на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:78)
в oracle.security.jps.ee.http.JpsAbsFilter $ 3.run (JpsAbsFilter.java:174)
at java.security.AccessController.doPrivileged (собственный метод)
в oracle.security.jps.util.JpsSubject.doAsPrivileged (JpsSubject.java:315)
в oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode (JpsPlatformUtil.java:650)
в oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode (JpsAbsFilter.java:112)
в oracle.security.jps.ee.http.JpsAbsFilter.doFilterInternal (JpsAbsFilter.java:292)
в oracle.security.jps.ee.http.JpsAbsFilter.doFilter (JpsAbsFilter.java:149)
в oracle.security.jps.ee.http.JpsFilter.doFilter (JpsFilter.java:94)
на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:78)
в oracle.security.wls.filter.SSOSessionSynchronizationFilter.doFilter (SSOSessionSynchronizationFilter.java:294)
на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:78)
в oracle.dms.servlet.DMSServletFilter.doFilter (DMSServletFilter.java:248)
на weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:78)
в weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.wrapRun (WebAppServletContext.java:3706)
at weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.run (WebAppServletContext.java:3672)
в weblogic.security.acl.internal.AuthenticatedSubject.doAs (AuthenticatedSubject.java:328)
в weblogic.security.service.SecurityManager.runAsForUserCode (SecurityManager.java:197)
at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode (WlsSecurityProvider.java:203)
на weblogic.servlet.provider.WlsSubjectHandle.run (WlsSubjectHandle.java:71)
на weblogic.servlet.internal.WebAppServletContext.doSecuredExecute (WebAppServletContext.java:2443)
на weblogic.servlet.internal.WebAppServletContext.securedExecute (WebAppServletContext.java:2291)
на weblogic.servlet.internal.WebAppServletContext.execute (WebAppServletContext.java:2269)
на weblogic.servlet.internal.ServletRequestImpl.runInternal (ServletRequestImpl.java:1705)
на weblogic.servlet.internal.ServletRequestImpl.run (ServletRequestImpl.java:1665)
at weblogic.servlet.provider.ContainerSupportProviderImpl $ WlsRequestExecutor.run (ContainerSupportProviderImpl.java:272)
at weblogic.invocation.ComponentInvocationContextManager._runAs (ComponentInvocationContextManager.java:352)
at weblogic.invocation.ComponentInvocationContextManager.runAs (ComponentInvocationContextManager.java:337)
на weblogic.work.LivePartitionUtility.doRunWorkUnderContext (LivePartitionUtility.java:57)
на weblogic.work.PartitionUtility.runWorkUnderContext (PartitionUtility.java:41)
на weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext (SelfTuningWorkManagerImpl.java:652)
на weblogic.work.ExecuteThread.execute (ExecuteThread.java:420)
at weblogic.work.ExecuteThread.run (ExecuteThread.java:360)
и это код
private static AppModuleImpl am = null;
private static final String AM_CONFIG_NAME = "AppModuleLocal";
private static final String AM_DEF_NAME = "com.oracle.ocs.adaa.model.AppModule";
public static void postTree(JSONObject json) throws Exception{
am = (AppModuleImpl) Configuration.createRootApplicationModule(AM_DEF_NAME, AM_CONFIG_NAME);
}
ОБНОВЛЕНИЕ № 1:
Когда Google это исключение, он сказал, потому что один и тот же класс был загружен много раз различными загрузчиками классов во время выполнения
и моя структура приложения выглядит следующим образом:
1 модельный проект
а также
Проект 1, в котором выходные данные model.jpr являются зависимостями //у проекта 2 также есть выход model.jpr в виде зависимости
, а Ear для приложения содержит файл войны для проекта 1 и проект войны 2, внутри каждой войны есть файл .jar для модели
Я не уверен, является ли это причиной (имея много раз jar модели), но есть ли способ сделать общий jar для обоих проектов ??