2017-02-07 10 views
1

Ich versuche derzeit, eine vorhandene Anwendung so anzupassen, dass Oracle Coherence verwendet wird, d. H. Ein GAR in die EAR eingebettet wird. Die Anwendung wird in Weblogic 12.1.3 bereitgestellt. Vor dem Einbetten der GAR in die EAR konnte die Anwendung problemlos implementiert werden.Weblogic 12.1.3: Fehler beim Bereitstellen der Kohärenzanwendung

auf Bereitstellung, bekomme ich diesen Fehler:

####<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) 

Offensichtlich kann die Cache-Konfigurationsdatei nicht gefunden werden, aber ich verstehe nicht, warum. Es sieht so aus, als wäre der GAR nicht richtig explodiert/entpackt worden, aber ich habe keine Ahnung warum.

EAR

Inhalt der 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> 

weblogic-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

Inhalt des GAR

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

Kohärenz-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> 

Hat jemand eine Idee, was falsch läuft?

bearbeiten

Wie ich wirklich auf diesen einen bin stecken Ich habe gerade versucht, die EAR „von Hand“ zu explodieren, dh entpacken Sie den Inhalt der EAR in ein Verzeichnis mit dem gleichen Namen und - in diesem Verzeichnis - do Das Gleiche gilt für die WAR- und GAR-Archive. Dann habe ich versucht, das zu implementieren - und es funktioniert ohne Fehler.

Ich bin jetzt noch mehr verwirrt. Was ist der Unterschied zwischen der Bereitstellung der explodierten EAR und der Bereitstellung der EAR als Archiv? Jede Hilfe oder Ideen zu diesem würde wirklich geschätzt werden.

Antwort

1

Ich habe schließlich herausgefunden, was das Problem durch Remote-Debugging der com.tangosol.net.ScopedCacheFactoryBuilder Klasse ist.

Es stellt sich heraus, dass die java.net.URL Klasse nicht in der Lage ist # Zeichen in URLs mit dem file:// Protokoll zu handhaben, weil die URL nach dem # Zeichen dann abgeschnitten wird, so

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

abgeschnitten zu

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

die in der Tat nicht existiert.

Leider der ursprüngliche IOException Grund, der besagt, dass verloren ist, so dass es nicht in den Protokollen sichtbar ist.

Der Grund für die # die EAR für den temporären Ordner verwendet wird, aufgelöst wird, ist, dass ich die WebLogic-Application-Version Eigenschaft in der MANIFEST.MF der EAR gesetzt haben.

Also die Lösung für dieses Problem ist die WebLogic-Application-Version Eigenschaft aus dem MANIFEST.MF des EAR Set entfernen.

0

Das erinnert mich an einen Fehler. Bitte gehen Sie zur Oracle Support-Website (support.oracle.com) und suchen Sie nach BUG 21966507.

Verwandte Themen