Deploy ADF application as shared library in weblogic

Shared library – WebLogic Shared Library is an Enterprise Application Archive, a stand-alone EJB, a Web Application module, or a JAR file that is registered with Oracle WebLogic Server as a shared library. The library resources can be shared between multiple applications, alleviating the need to have duplicate copies of the resources in each application. For an example, we can all dependency as shared libraries in weblogic.

Normally in bigger application, best practice is to use common features application or dependency as shared library in weblogic. For example, taking an webcenter portal application
we are making custom taskflow and using it in webcenter portal application. We can deploy these adf taskflow as shared libraries and can reference in weblogic.xml for Portal application.

We have two option.
– Deploy adf app as jar and then deploy as shared library or wrap jar into war profile and deploy as shared library.
– We can directly deploy adf application as war shared lib in Weblogic.

Following is the process for ADF/ Webcenter Application in jdeveloper

1) Create deployment profile as war file.
2) Create an MANIFEST.MF file as META-INF/MANIFEST.MF

Manifest-Version: 1.0
Implementation-Title: ADF_Shared_Lib
Implementation-Version: 1.0
Specification-Title: ADF_Shared_Lib
Specification-Version: 1.0
Extension-Name: ADF_Shared_Lib

3) Edit war deployment profile and add MANIFEST.MF in war options.

555

4) Deploy ADF taskflow to weblogic(assuming you have made connection with weblogic in jdeveloper) to specific managed server or admin server.
5) mark option as deploy as shared library instead of application.

11

222

444

6) In master (Portal) application enter reference of your shared library as follows

ADF_Shared_Lib 1.0
1.0
true

This way you can directly deploy from the jdeveloper. Other options is to deploy as war file and find war file from specified location and go to weblogic admin console
and install as shared library

11111

Note: If you deploying shared library again, make sure, you increase implementation version every time to specify version no.

Video –

Troubleshoot :

IOException: ‘Invalid header field; with manifest
Solution – Make sure name is name is correct. There is proper spacing after colon in manifest file content.

Unresolved WebApp library references defined in weblogic.xml
Solution- Make sure you have same implementation version and specification version of shared library, If there is mismatch you will get this error.

Till then happy deployment in Weblogic with Vinay…..

Enable debugging in remote weblogic for ADF and Webcenter Applications

Hi All,

In my previous post of Debugging taskflow in webcenter spaces , I mention about setting java option in startManagedWebLogic.sh or startWeblogic.cmd .But you can do same thing in more easier way. I will tell about debug flag of weblogic today.

Best way to enable debug flag in WebLogic Server is to use weblogic console. This is done in:

Environment–>Servers–>>–>Debug
Select the required flags and click on Enable/Disable.

Enable the level of debug you need, e.g.: security, servlet, jdbc.This change does not require weblogic Server Restart.

You need Make sure the severity is set to debug in weblogic console:

Environment > Servers > MyServer > Logging >Advanced > Minimum severity to log: Debug
This change requires server restart.

You can also do by follow way as well-

Setting Up setDomainEnv.cmd
Near the top of your file add the following line to enable debugging.

echo ——————————————————————
echo Setting Debug to true
set debugFlag=true
echo ——————————————————————

Locate the following line locate further down the file and make a note of the port number.You can change the default port number as well.

rem set the port number
if “%DEBUG_PORT%”==”” (
set DEBUG_PORT=8453
)

So , if you are working on ADF and Webcenter application , follow this approach to accomplish this task.You should also make connection from jdeveloper
to remote/standalone weblogic server as well.

Following Debug flags will help you debug different issues in Oracle Weblogic Server :

Java Messaging Services

Messaging Kernel
-Dweblogic.debug.DebugMessagingKernel=true

MDB connectivity
-Dweblogic.debug.DebugEjbMdbConnection=true

JMS Wrappers
-Dweblogic.debug.DebugJMSWrappers=true

JMS SAF
Sending side:
-Dweblogic.debug.DebugJMSSAF=true
-Dweblogic.debug.DebugJMSMessagePath=true

Receiving side:
-Dweblogic.debug.DebugJMSBackEnd=true
-Dweblogic.debug.DebugJMSFrontEnd=true
-Dweblogic.debug.DebugJMSMessagePath=true

JMS Distributed Destinations
-Dweblogic.debug.DebugJMSCommon=true
-Dweblogic.debug.DebugJMSDistTopic=true
-Dweblogic.debug.DebugJMSMessagePath=true

JMS Boot
-Dweblogic.debug.DebugJMSBoot=true
-Dweblogic.debug.DebugMessagingKernelBoot=true
-Dweblogic.debug.DebugStoreIOLogicalBoot=true

JMS store
Logical IO:
-Dweblogic.debug.DebugJMSStoreIOLogical=true
-Dweblogic.debug.DebugJMSStoreIOLogicalBoot=true

Physical IO:
-Dweblogic.debug.DebugStoreIOPhysical=true
-Dweblogic.debug.DebugStoreIOPhysicalVerbose=true

Store XA:
-Dweblogic.debug.DebugStoreXA=true
-Dweblogic.debug.DebugStoreXAVerbose=true

JMS CDS
-Dweblogic.debug.DebugJMSCDS=true

JMS Backend
-Dweblogic.debug.DebugJMSBackEnd=true

JMS Frontend
-Dweblogic.debug.DebugJMSFrontEnd=true

JMS Dispatcher
-Dweblogic.debug.DebugJMSDispatcher=true

Messaging Bridge :
-Dweblogic.debug.DebugMessagingBridgeRuntime=true
-Dweblogic.debug.DebugMessagingBridgeRuntimeVerbose=true
-Dweblogic.debug.DebugMessagingBridgeStartup=true

Clustering

-Dweblogic.diagnostics.debug.DebugLogger.DISABLED=false & one or all of the following
-Dweblogic.debug.DebugClusterAnnouncements=true
-Dweblogic.debug.DebugCluster=true
-Dweblogic.debug.DebugClusterFragments=true
-Dweblogic.debug.DebugJTAMigration=true
-Dweblogic.debug.DebugAsyncQueue=true
-Dweblogic.debug.DebugReplication=true
-Dweblogic.debug.DebugReplicationDetails=true
-Dweblogic.debug.DebugServerMigration=true
-Dweblogic.debug.DebugSingletonServices=true
-Dweblogic.debug.DebugConsensusLeasing=true
-Dweblogic.debug.DebugUnicastMessaging=true
-Dweblogic.cluster.leasing.ClusterFormation=true
-Dweblogic.cluster.leasing.ClusterGroupView=true
-Dweblogic.cluster.leasing.ClusterLeader=true
-Dweblogic.cluster.leasing.ClusterLeaderService=true
-Dweblogic.cluster.leasing.ClusterMember=true
-Dweblogic.cluster.leasing.ClusterMessaging=true
-Dweblogic.cluster.leasing.LeaseClient=true
-Dweblogic.cluster.leasing.LeaseServer=true
-Dweblogic.cluster.leasing.LeaseView=true
-Dweblogic.cluster.leasing.MachineState=true
-Dweblogic.cluster.leasing.DiscoveryService=true
-Dweblogic.cluster.leasing.DisconnectMonitor=true
-Dweblogic.cluster.leasing.MessageEndPoint=true
-Dweblogic.cluster.leasing.MessageSender=true
-Dweblogic.cluster.leasing.SRMResult=true
-Dweblogic.cluster.leasing.FailureDetector=true
-Dweblogic.cluster.leasing.SRMService

RMI & IIOP

-Dweblogic.diagnostics.debug.DebugLogger.DISABLED=false & one or all of the following
-Dweblogic.debug.DebugCorbaClientHttp=true
-Dweblogic.debug.DebugCorbaClientIIOP=true
-Dweblogic.debug.DebugIIOPNaming=true
-Dweblogic.iiop.naming=true
-Dweblogic.debug.DebugIIOPOTS=true
-Dweblogic.iiop.ots=true
-Dweblogic.debug.DebugIIOPTransport=true
-Dweblogic.iiop.transport=true
-Dweblogic.debug.DebugIIOPTunneling=true
-Dweblogic.iiop.http.tunnelLogin=true
-Dweblogic.iiop.http.tunnelRecv=true
-Dweblogic.iiop.http.tunnelSend=true
-Dweblogic.debug.client.dgc=true, to enable debug for dgc
-Dweblogic.rmi.extensions.server.ServerHelper.DebugExportObject=true
-Dweblogic.debug.DebugDGCEnrollment=true
-Dweblogic.debug.ForceGCEachDGCPeriod=true
-Dweblogic.debug.LogDGCStatistics=true
-Dweblogic.debug.DebugMessaging=true
-Dweblogic.debug.DebugGenericMethodDescriptor=true
-Dweblogic.debug.DebugIIOPDetail=true
-Dweblogic.debug.DebugIIOPMarshal=true
-Dweblogic.debug.DebugIIOPTransport=true
-Dweblogic.debug.DebugIIOPSecurity=true
-Dweblogic.debug.DebugIIOPStartup=true
-Dweblogic.debug.DebugIIOPRepalcer=true
-Dweblogic.debug.DebugIIOPConnection=true
-Dweblogic.debug.DebugIIOPDetail=true
-Dweblogic.debug.DebugIIOPDetail=true
-Dweblogic.iiop.marshal=true
-Dweblogic.iiop.transport=true
-Dweblogic.iiop.security=true
-Dweblogic.iiop.startup=true
-Dweblogic.iiop.replacer=true
-Dweblogic.iiop.connection=true

Deployment debugs

-Dweblogic.debug.DebugDeployment=true
-Dweblogic.debug.DebugDeploymentServiceInternal=true
-Dweblogic.debug.DebugDeploymentServiceTransport=true
-Dweblogic.debug.DebugDeploymentServiceTransportHttp=true
-Dweblogic.debug.DebugDeploymentServiceStatusUpdates=true
If you have problem in edit lock, system resource deployment or configuration updates, you may also turn on configure debug flag:
-Dweblogic.debug.DebugConfigurationEdit=true

HTTP Debugs

-Dweblogic.debug.DebugURLResolution=true
-Dweblogic.debug.DebugHttp=true
-Dweblogic.debug.httpd=true
-Dweblogic.debug.httpd.log=true
-Dweblogic.debug.httpd.servlet=true

JTA

-Dweblogic.debug.DebugJTAPropagate=true
-Dweblogic.debug.DebugJTAGateway=true
-Dweblogic.debug.DebugJTAXA=true
-Dweblogic.debug.DebugJTA2PC=true
-Dweblogic.debug.DebugJTAJDBC=true
-Dweblogic.debug.DebugJDBCSQL=true

JNDI

-Dweblogic.debug.DebugJNDI =true
-Dweblogic.debug.DebugJNDIResolution =true
-Dweblogic.debug.DebugJNDIFactories =true
-Dweblogic.debug.DebugJNDIAppVersion =true

Workmanager

-Dweblogic.workmanager=true
-Dweblogic.StuckThreadHandling=true
-Dweblogic.IncrementAdvisor=true
-Dweblogic.MinThreadsConstraint=true
-Dweblogic.responsetimerequestclass=true
-Dweblogic.workmanagerservice=true

Server Life Cycle

-Dweblogic.slc=true
-Dweblogic.slcruntime=true
-Dweblogic.debug.DebugServerLifeCycle=true

Classloaders

-Dweblogic.utils.classloaders.GenericClassLoader.Verbose=true
-Dweblogic.utils.classloaders.ChangeAwareClassLoader.Verbose=true
-Dweblogic.utils.classloaders.ClasspathClassFinder=true
-Dweblogic.utils.classloaders.DefaultFilteringClassLoader.Verbose=true
-Dweblogic.utils.classloaders.FilteringClassLoader.Verbose=true
-Dweblogic.utils.classloaders.FilteringClassLoader.ResourceDump=true
-Dweblogic.utils.classloaders.URLClassFinder.Verbose=true

WebService

-Dweblogic.wsee.verbose=*

Security

SAML:
-Dweblogic.debug.DebugSecuritySAMLService=true
-Dweblogic.debug.DebugSecuritySAMLCredMap=true
-Dweblogic.debug.DebugSecuritySAMLAtn=true
-Dweblogic.debug.DebugSecuritySAMLLib=true
-Dweblogic.debug.DebugSecuritySAML2Service=true
-Dweblogic.debug.DebugSecuritySAML2CredMap=true
-Dweblogic.debug.DebugSecuritySAML2Atn=true
-Dweblogic.debug.DebugSecuritySAML2Lib=true
-Dweblogic.debug.DebugSecurityCredMap=true

WebService Security
-Dweblogic.xml.crypto.wss.debug=true
-Dweblogic.xml.crypto.wss.verbose=true
-Dweblogic.xml.crypto.keyinfo.debug=true
-Dweblogic.xml.crypto.keyinfo.verbose=true
-Dweblogic.xml.crypto.dsig.debug=true
-Dweblogic.xml.crypto.dsig.verbose=true
-Dweblogic.xml.crypto.encrypt.debug=true
-Dweblogic.xml.crypto.encrypt.verbose=true

Oracle open world 2014 summary

Oracle open world 2014 went few days back.It held in 28 September to 3rd October 2014. OpenWorld 2014 was dominated by jet lag. Apart from jet lag, main focus on this OOW is cloud. Every one talking about the cloud.Talking about updates from OOW.I will more focus on OOW on ADF/webcenter side.

First day (Sunday) – Day started with Larry Ellison key not.The following important updated for each day

Day for ADF EMG
– Alexi Lopes on ADF essential tips and tricks.
– Advance ADF binding by Sten Vesteri
– Create Stunning UI with Oracle ADF faces and SASS by Amr Gawish (I liked this session)
– Real-World Oracle ADF Performance Tuning
– In the evening , I attended Oracle ACE dinner with several ACEs and ACE director.It was really amazing to meeting some awesome people.

10700279_10152405599643947_5194484225458279944_o

10633348_10152405599958947_8025393707779395310_o

Second day (Monday)
– Developing Applications with the Core Oracle ADF Stack by Peter Koletzke.
– Using Oracle Cloud to Power Your Application Development Lifecycle
– Scalability and High-Availability Offerings in Oracle ADF by Jobinesh Purushothaman
– Visited booths of various companies in exhibition hall.
– ADF EMG developer meeting .Met with many ADF developer.Enjoyed..

Third day (Tuesday)
– Oracle WebCenter Sites Strategy and Vision
– Delivering Oracle ADF Projects: Modern Techniques
– Oracle ADF Enterprise Architects Birds-of-a-Feather Meeting by Frank and Chris

Fourth day (Wednesday)
– Modern UI Design: Implementing Oracle’s Best Practices in Your Applications
– The Picture That Paints a Thousand Words: Data Visualization on Web and Mobile
– Guide to Team Development in the Cloud with Oracle Developer Cloud Service
– Oracle ADF Development and Deployment to Oracle Cloud by Andrejus Baranovskis
– Programming Steps in Oracle ADF: Beyond Drag and Drop By Grant Roland

– In the evening Oracle launch Oracle Appreciation event in treasure Island.Its a great party. Aerosmith had performed. Below are few clicks

10517931_10152405600203947_5772367527251482396_o

10379724_10152405599353947_8774964800141703707_o

Fifth day (last)
– Oracle ADF Business Components REST Services with Oracle Mobile Application Framework
– Provisioning Oracle Fusion Middleware Environments with Chef and Puppet by Edwin Biemond
– A Hybrid of Responsive and Adaptive Designin webcenter portal
– Bootcamp on Developing Web and Mobile Dashboards with Oracle ADF by Frank

Its an great event to meet oracle champs in ADF/webcenter/SOA.As usual, it was fun to catch up with the members of my Oracle developer community, my ODTUG buddies and fellow ACEs. Cloud was definitely the hot topic on everyone’s mind this year, especially because Oracle announced their upcoming Oracle Mobile Cloud Services and released their Oracle Developer Cloud Service to production a few weeks before the conference.

The most interesting topic for me was the upcoming Oracle Mobile Cloud Service. This solution includes everything a development team will need to build mobile backends from any datasource or enterprise system. The Mobile Cloud Service can insulate Mobile Developers from complex infrastructure while allowing them to focus on creating killer apps. Oracle Mobile Cloud Service provides built-ins for push notifications, object storage, user management, analytics and an API designer and catalog.

Another cool thing released by Oracle was the Atla UI. These are a set of pre-built design patterns for building modern applications for multiple channels with a focus on user experience not only user interface. With mobile becoming everyone’s primary way of accessing information users are beginning to demand better user interfaces. In response to this, Oracle developed Alta UI to allow developers to create simple and modern UIs across web-based and mobile applications. Alta UI includes a new skin and samples to demonstrate how to make UIs like the ones Oracle has created for their own modern cloud based interfaces. You can see an example of the Oracle Atla UI style in this demo of Forms running on from an Oracle Mobile Framework with Alta UI Style:

macBk-HelpCenter-homepage

Even with all this cool technology, I think the highlight for me had to be the ADF EMG / MAF / Oracle Forms developers meet-up on Tuesday night sponsored by ODTUG.There were attendees from all over the world and it was amazing to see many new faces .

I’d like to give big THANK YOU to the Oracle ACE program for ACE dinner.I hope everyone enjoyed as much I did.Hopefully I can attend next year too.

Overall

ADF- New version can come mid of next year with some more amazing features. This year they launch new Alta UI.Saw demo with product team.Look really good.
Webcenter Portal – Real support for Webcenter content folders. No big update as , I was expecting.New version can expect next year with more responsiveness in Webcenter portal with really amazing new features.
Webcenter content– Oracle Documents Cloud Service is the future.

Cheers
Vinay

Happy learning with Vinay & techartifact