CAT – Classloader Analysis Tool
Why use CAT
User applications are getting larger as they include multiple frameworks for their functionality. These frameworks can come from open source, commercial sources, or developed in-house. Applications can arrange these dependencies in one or more of the following ways:
- Framework JARs bundled directly in the applications or modules
- MANIFEST classpath references to other JARs
- WebLogic Server application and JAR libraries
- WebLogic Server system classpath
The MANIFEST classpath references can get very complex when each dependent JAR in turn depends on other JARs. As the application classpath grows, it gets cumbersome for application developers to understand which class is getting loaded from which source. Sometimes applications bundle different versions of JARs than those in the system classpath. Application developers employing WebLogic Server classloaders’ filtering facility also have to configure the filter packages.
CAT is a small Web application that is designed to help application developers understand, analyze, and resolve classloading issues in their applications. CAT has a simple Web GUI through which it is possible to browse through deployed applications and analyze various classloaders. CAT will report potential problems and also present solutions for resolving those issues.
CAT is automatically deployed when the server is configured for development mode. CAT is not recommended in production mode. However, if you want to analyze your applications in production, you can manually deploy the CAT Web application to the server on which you want to analyze the classloaders. The CAT Web application is located at:
http://wls-host:port/wls-cat/and enter your Console login credentials.
The CAT navigation pane displays a tree of all the deployed applications and modules. You can select an application in the navigation pane that you want to analyze. Once you have selected an application for further analysis, a brief description of the application will be shown in the right-hand pane. All actions that you perform will be executed in the context of the selected application. For example, if you select to analyze the application for conflicts, the analysis would be executed on the currently selected application.
The result of each action you select can either be shown in a basic view or a detailed view. For many applications, the detailed view can be a bit overwhelming so unless explicitly selected, the result of an action will be shown in the basic view.
The following are some of the tasks which you can perform using CAT:
- Display basic information about the application
- Analyze conflicts in the application and receive suggestions for configuring a package filter
- Display the classloader hierarchy and the entire classpath for each classloader
- Search for a class (or a resource) on a classloader
Note that CAT will seem sluggish as larger applications are being investigated. This is normal as CAT does significant analysis on the fly.
For more information on CAT, see “Using the Classloader Analysis Tool” documentation in “Developing Applications for Oracle WebLogic Server”.
Example DEV Environment:
Click on the Test Point. You will see the following page.
Click on a specific application on Left to see the class loaders for that application,
Example – detailed view for wls-management-services.war app listed on the left hand.