2017-02-07 3 views
1

현재 Oracle Coherence를 사용하도록 EAR에 GAR을 포함하도록 기존 애플리케이션을 조정하려고합니다. 응용 프로그램은 Weblogic 12.1.3에 배포됩니다. EAR에 GAR을 임베드하기 전에 응용 프로그램을 아무 문제없이 배포 할 수 있습니다.Weblogic 12.1.3 : 일관성 애플리케이션 배포 중 오류가 발생했습니다.

배포, 나는이 오류를 얻을 :

####<Feb 7, 2017 8:28:46 AM CET> <Error> <Deployer> <7fff0f95b4b8> <AdminServer> <[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1486452526709> <BEA-149265> <Failure occurred in the execution of deployment request with ID "6725384329688" for task "1". Error is: "weblogic.application.ModuleException: (Wrapped) Could not load cache configuration resource file:/home/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/myapp#1.0.0-SNAPSHOT/rmzguy/META-INF/coherence-cache-config.xml" 
weblogic.application.ModuleException: (Wrapped) Could not load cache configuration resource file:/home/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/myapp#1.0.0-SNAPSHOT/rmzguy/META-INF/coherence-cache-config.xml 
     at weblogic.coherence.container.server.CoherenceModule.activate(CoherenceModule.java:237) 
     at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:114) 
     at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:195) 
     at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:190) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
     at weblogic.application.internal.flow.ModuleStateDriver.activate(ModuleStateDriver.java:61) 
     at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:145) 
     at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:729) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
     at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258) 
     at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:61) 
     at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) 
     at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) 
     at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:587) 
     at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150) 
     at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116) 
     at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:339) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:846) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1275) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:442) 
     at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:176) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68) 
     at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:553) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) 
Caused By: java.io.IOException: Could not load cache configuration resource file:/home/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/myapp#1.0.0-SNAPSHOT/rmzguy/META-INF/coherence-cache-config.xml 
     at com.tangosol.net.ScopedCacheFactoryBuilder.loadConfigFromURI(ScopedCacheFactoryBuilder.java:351) 
     at com.tangosol.application.ContainerAdapter$ContainerCacheFactoryBuilder.buildFactory(ContainerAdapter.java:735) 
     at com.tangosol.net.ScopedCacheFactoryBuilder.getFactory(ScopedCacheFactoryBuilder.java:267) 
     at com.tangosol.net.ScopedCacheFactoryBuilder.getConfigurableCacheFactory(ScopedCacheFactoryBuilder.java:127) 
     at com.tangosol.application.ContainerAdapter.activate(ContainerAdapter.java:155) 
     at weblogic.coherence.container.server.CoherenceModule.activate(CoherenceModule.java:216) 
     at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:114) 
     at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:195) 
     at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:190) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
     at weblogic.application.internal.flow.ModuleStateDriver.activate(ModuleStateDriver.java:61) 
     at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:145) 
     at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:729) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
     at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258) 
     at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:61) 
     at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) 
     at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80) 
     at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:587) 
     at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150) 
     at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116) 
     at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:339) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:846) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1275) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:442) 
     at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:176) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68) 
     at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:553) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) 

물론, 캐시 구성 파일을 찾을 수없는,하지만 그 이유를 이해하지 않습니다. GAR이 제대로 분해/압축이 풀리지 않은 것처럼 보입니다. 그러나 그 이유를 알지 못합니다. 귀

EAR

내용량

myapp-1.0.0-SNAPSHOT.ear 
`-- META-INF 
    |-- application.xml 
    |-- weblogic-application.xml 
|-- myapp-webapp-1.0.0-SNAPSHOT.war 
|-- forward-webapp-1.0.0-SNAPSHOT.war 
|-- mygar-1.0.0-SNAPSHOT.gar 

application.xml을

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE application PUBLIC 
    "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" 
    "http://java.sun.com/dtd/application_1_3.dtd"> 
<application> 
    <display-name>myapp</display-name> 
    <module> 
    <web> 
     <web-uri>myapp-webapp-1.0.0-SNAPSHOT.war</web-uri> 
     <context-root>/my/myapp-webapp</context-root> 
    </web> 
    </module> 
    <module> 
    <web> 
     <web-uri>forward-webapp-1.0.0-SNAPSHOT.war</web-uri> 
     <context-root>/my</context-root> 
    </web> 
    </module> 
</application> 

로직-application.xml을

<?xml version="1.0" encoding="UTF-8"?> 
<wls:weblogic-application 
    xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5.xsd http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.6/weblogic-application.xsd"> 
    <wls:application-param> 
     <wls:param-name>webapp.encoding.default</wls:param-name> 
     <wls:param-value>UTF-8</wls:param-value> 
    </wls:application-param> 
    <wls:module> 
     <wls:name>mygar</wls:name> 
     <wls:type>GAR</wls:type> 
     <wls:path>mygar-1.0.0-SNAPSHOT.gar</wls:path> 
    </wls:module> 
    <wls:prefer-application-packages> 
     <wls:package-name>org.slf4j.*</wls:package-name> 
     <wls:package-name>org.apache.log4j.*</wls:package-name> 
    </wls:prefer-application-packages> 
    <wls:prefer-application-resources> 
     <wls:resource-name>org.slf4j.*</wls:resource-name> 
     <wls:resource-name>org.apache.log4j.*</wls:resource-name> 
    </wls:prefer-application-resources> 
</wls:weblogic-application> 

GAR GAR

mygar-1.0.0-SNAPSHOT.gar 
`-- META-INF 
    |-- coherence-application.xml 
    |-- coherence-cache-config.xml 
`-- lib 
    |-- jar1.jar 
    |-- jar2.jar 
    |-- ... 
    |-- jarx.jar 

일관성-application.xml을의

내용

<?xml version="1.0"?> 
<coherence-application 
    xmlns="http://xmlns.oracle.com/coherence/coherence-application"> 
    <cache-configuration-ref>META-INF/coherence-cache-config.xml</cache-configuration-ref> 
</coherence-application> 

누군가가 잘못 무슨 생각을 가지고 있습니까?

편집 정말 난 그냥 "수동", 즉 같은 이름의 디렉토리에 EAR의 내용을 압축 해제하고 EAR을 폭발 노력이 하나 붙어있어으로

- 그 디렉토리 내 - 할 일 WAR 및 GAR 아카이브와 동일합니다. 그런 다음 배포하려고했는데 오류없이 작동합니다.

저는 더 혼란 스럽습니다. 폭발 된 EAR을 배포하는 것과 EAR을 아카이브로 배포하는 것의 차이점은 무엇입니까? 이것에 대한 도움이나 아이디어는 정말 감사하겠습니다.

답변

1

com.tangosol.net.ScopedCacheFactoryBuilder 클래스의 원격 디버깅을 통해 마침내 문제점을 발견했습니다.

이 URL이 # 로그인 후 다음 리기 때문에 java.net.URL 클래스

잘립니다 때문에,

file:/home/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/myapp#1.0.0-SNAPSHOT/rmzguy/META-INF/coherence-cache-config.xml

file:// 프로토콜을 사용하여 URL에 # 표지판을 처리 할 수 ​​없다는 것을 밝혀

file:/home/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/myapp

실제로 존재하지 않습니다.

불행히도 원본 IOException은 손실되어 로그에 표시되지 않는다고 표시하는 이유가 있습니다.

EAR의 임시 폴더로 #을 사용하는 이유는 EAR의 MANIFEST.MF에 설정된 WebLogic-Application-Version 속성을 가지고 있기 때문입니다.

그래서이 문제에 대한 해결책은 EAR의 MANIFEST.MF에서 WebLogic-Application-Version 속성 집합을 제거하는 것입니다.

0

이것은 저에게 버그를 기억합니다. Oracle Support 사이트 (support.oracle.com)로 이동하여 BUG 21966507을 찾으십시오.