Using OSGi requires a thorough knowledge of all the functions of OSGi, especially with regard to class behavior. You must bear in mind that OSGi really benefits your application. If you use Class.forName extensively, you will have problems. There are also many third-party libraries that are not easy to use with OSGi.
So, be sure to check out OSGi before you change anything in your code. I would recommend the OSGi book in depth and / or OSGi in action for learning and understanding OSGi.
Do not get me wrong, OSGi is a good technology, but it is much more complicated than it seems at first glance. You won't need Tomcat if your application uses OSGi completely, the OSGi container is the runtime for OSGi applications, because Tomcat Server is another runtime. If you need to communicate with Tomcat Server, you can use JMS or something similar. Take a look at the remote OSGi service
Mirco source share