| # Reference Documentation Felix RootCause |
| |
| Finding the root cause of problems with OSGi declarative services components. |
| |
| ## Requirements: |
| |
| * Configuration Admin Service |
| * Service Component Runtime |
| |
| See below for a hands on example in Apache Karaf. |
| |
| ## Root cause command |
| |
| For quickly checking for a root cause of a problem with a declarative services component there is also a handy command. |
| |
| `rootcause <ds-compoment-name>` |
| |
| It prints the top level status of a DS component as well as the tree of DS unsatisfied components it depends on together with their status. |
| |
| This is a sample output from the DSRootCause tests. It shows the cause of a component that depends on some other components. The root cause of CompWithMissingRef2 not being satisfied is that CompWithMissingConfig is missing its mandatory config. |
| |
| ``` |
| Component CompWithMissingRef2 unsatisfied references |
| ref other interface CompWithMissingRef |
| Component CompWithMissingRef unsatisfied references |
| ref other interface CompWithMissingConfig |
| Component CompWithMissingConfig missing config on pid [CompWithMissingConfig] |
| ``` |
| |
| ## Example of using the system ready service framework in Apache Karaf |
| |
| Download, install and run Apache Karaf 4.1.x. Inside the karaf shell execute this: |
| |
| ``` |
| feature:install scr http-whiteboard |
| config:property-set --pid ServicesCheck services.list org.osgi.service.log.LogService |
| config:property-set --pid SystemReadyServlet osgi.http.whiteboard.context.select "(osgi.http.whiteboard.context.name=default)" |
| install -s mvn:org.apache.felix/org.apache.felix.systemready/0.1.0-SNAPSHOT |
| ``` |
| |
| Point your browser to http://localhost:8181/system/console/ready . |
| |
| Check the status of a DS component: |
| |
| ``` |
| rootcause SystemReadyMonitor |
| Component SystemReadyMonitor statisfied |
| ``` |
| |
| Try this with some of your own components. |