Thursday, June 4, 2015

Deploy shared library without Application downtime


Recently I came across blog post from Andreas Koop who explained very well how Application downtime can be avoided if we use Shared library approach.

Refer to his post:

http://multikoop.blogspot.com/2013/06/production-redeployment-with-adf-shared.html


http://multikoop.blogspot.de/2013/06/weblogic-application-redeployment-using.html

When you want master application to refer latest shared library reference, just select the master application & click on "Update" to pick new shared library changes


On top of this, I would like to clarify when you need to make entry in weblogic.xml versus weblogic-application.xml

weblogic.xml: All your web shared library references goes into this file. If you try to refer a library that is not a web library then you will get exception as below:


Caused By: weblogic.management.DeploymentException: Error: Unresolved Webapp Library references for
"ServletContext@10447440[app:MyApp module:my-profile path:/my-app spec-version:2.5]", defined in weblogic.xml
[Extension-Name: com.adp.library, exact-match: false]
at weblogic.servlet.internal.WebAppServletContext.processWebAppLibraries(WebAppServletContext.java:2754)
at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:415)
at weblogic.servlet.internal.WebAppServletContext.<init>(WebAppServletContext.java:493)
at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:418)
at weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:972)
view raw gistfile1.java hosted with ❤ by GitHub



weblogic-application.xml: Rest all java library references goes into this file. If you try to refer a web shared library then you will get exception as below:


>
<Jun 4, 2015 11:44:23 AM CDT> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating
deploy task for application 'MyApp'.>
<Jun 4, 2015 11:44:23 AM CDT> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
weblogic.application.ModuleException: Failed to load webapp: 'adf.oracle.domain.webapp'
at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:393)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:517)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassNotFoundException: javax.faces.webapp.UIComponentELTag
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:305)
at java.lang.ClassLoader.loadClass(ClassLoader.java:246)
Truncated. see log file for complete stacktrace
view raw gistfile1.java hosted with ❤ by GitHub



Feel free to comment.

No comments:

Post a Comment