Monday, June 11, 2012

Unresolved Web App Library References when Deploying Portlets

When you try to deploy your portlets to clustered environment and you get the following error message:

[06:06:17 PM] ----  Deployment started.  ----
[06:06:17 PM] Target platform is (Weblogic 10.3).
[06:06:17 PM] Retrieving existing application information
[06:06:17 PM] Running dependency analysis...
[06:06:17 PM] Building...
[06:06:19 PM] Deploying 2 profiles...
[06:06:19 PM] Creating portlet producer application for deployment.
[06:06:20 PM] Deploying a WSRP producer.
[06:06:21 PM] Wrote Web Application Module to C:\Oracle\mywork\BaPoCPortlets\Portlets\deploy\portletwebapp1.war
[06:06:21 PM] Wrote Enterprise Application Module to C:\Oracle\mywork\BaPoCPortlets\deploy\portletapplication1.ear
[06:06:21 PM] Deploying Application...
[06:06:22 PM] [Deployer:149191]Operation 'deploy' on application 'portletapplication1' is initializing on 'WC_PortletProducer2'
[06:06:22 PM] [Deployer:149193]Operation 'deploy' on application 'portletapplication1' has failed on 'WC_PortletProducer2'
[06:06:22 PM] [Deployer:149034]An exception occurred for task [Deployer:149026]deploy application portletapplication1 on WC_PortletProducer2.: Failed to load webapp: 'baportletcontext'.
[06:06:22 PM] Weblogic Server Exception: weblogic.application.ModuleException: Failed to load webapp: 'baportletcontext'
[06:06:22 PM] Caused by: Error: Unresolved Webapp Library references for "ServletContext@474257908[app:portletapplication1 module:baportletcontext path:/baportletcontext spec-version:2.5]", defined in weblogic.xml [Extension-Name: jstl, exact-match: false]
[06:06:22 PM] See server logs or server console for more details.
[06:06:22 PM] weblogic.application.ModuleException: Failed to load webapp: 'baportletcontext'
[06:06:22 PM] #### Deployment incomplete. ####
[06:06:22 PM] Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer)



… then the reason mostly could be that you are missing references to your portlet cluster. The problem could also be caused when you even properly created your managed servers but on some point later attached them to the cluster. If the needed libraries are not targeted to the cluster, then you will get the message above.

To target shared library to the cluster you can do this by using the WLS Administration Console. You select the shared library from the deployment and then from the tabs select the target, there you can then select the cluster target or managed servers.

Which libraries are needed or used by standard JSR-286 Portlet developed with JDeveloper:

  • wlp-wsrp-producer-core-web-lib
  • wlp-producer-full-web-lib
  • wlp-light-core-web-lib
  • wlp-framework-common-web-lib
  • wc-producer-web-lib
  • oracle.portlet-producer.wsrp
  • jstl
  • jsf

Of course you may need also another libraries depending you which technology scopes you used when you develop your portlet application. The above libraries are the minimum for the standard JSR-286 Portlet.

No comments:

Post a Comment