Errors attempting to run embedded server

Submitted by Anonymous on Mon, 2008-08-18 20:54.

I'm attempting to launch a Tigase server from within my own java application. I've written similar code to what appears in tigase.server.XMPPServer#main to start the server (as recommended in this thread.) Also, I have moved the certs directory to be under my application's working directory. All of the tigase jars are in my classpath. When I run the application, it looks ok initially, but begins throwing exceptions after it starts loading the first plugin. Here's the bottom of my output (sorry for the very long cut and paste): -------------------------- 2008-08-18 14:28:24 ConfigRepository.getProperties() CONFIG: Looking for properties for basic-conf in node. 2008-08-18 14:28:24 ConfigRepository.getSubnodes() CONFIG: Adding subnode: logging 2008-08-18 14:28:24 ConfigRepository.getProperties() CONFIG: Found keys: [demo-mode] 2008-08-18 14:28:24 ConfigRepository.getProperties() CONFIG: In node : 'logging' found keys: [.level, handlers, java.util.logging.ConsoleHandler.formatter, java.util.logging.ConsoleHandler.level, java.util.logging.FileHandler.append, java.util.logging.FileHandler.count, java.util.logging.FileHandler.formatter, java.util.logging.FileHandler.level, java.util.logging.FileHandler.limit, java.util.logging.FileHandler.pattern, tigase.useParentHandlers] 2008-08-18 14:28:24 Configurator.setupLogManager() WARNING: DONE 2008-08-18 14:28:24 Configurator.setupLogManager() WARNING: DONE Loading plugin: jabber:iq:register ... java.lang.ExceptionInInitializerError at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at tigase.util.ClassUtil.getClassesFromNames(ClassUtil.java:127) at tigase.util.ClassUtil.getClassesFromClassPath(ClassUtil.java:163) at tigase.util.ClassUtil.getClassesImplementing(ClassUtil.java:191) at tigase.xmpp.ProcessorFactory.(ProcessorFactory.java:67) at tigase.server.xmppsession.SessionManager.addPlugin(SessionManager.java:717) at tigase.server.xmppsession.SessionManager.setProperties(SessionManager.java:811) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addComponent(MessageRouter.java:343) at tigase.server.MessageRouter.addRouter(MessageRouter.java:333) at tigase.server.MessageRouter.setProperties(MessageRouter.java:435) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:326) at tigase.server.MessageRouter.setConfig(MessageRouter.java:317) at TigaseServerTest.start_server(TigaseServerTest.java:27) at TigaseServerTest.main(TigaseServerTest.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) Caused by: java.lang.NullPointerException at com.sun.deploy.net.protocol.https.Handler$1.run(Handler.java:56) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.net.protocol.https.Handler.(Handler.java:43) ... 28 more java.lang.NullPointerException at com.sun.deploy.net.protocol.https.Handler$1.run(Handler.java:56) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.net.protocol.https.Handler.(Handler.java:43) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at tigase.util.ClassUtil.getClassesFromNames(ClassUtil.java:127) at tigase.util.ClassUtil.getClassesFromClassPath(ClassUtil.java:163) at tigase.util.ClassUtil.getClassesImplementing(ClassUtil.java:191) at tigase.xmpp.ProcessorFactory.(ProcessorFactory.java:67) at tigase.server.xmppsession.SessionManager.addPlugin(SessionManager.java:717) at tigase.server.xmppsession.SessionManager.setProperties(SessionManager.java:811) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addComponent(MessageRouter.java:343) at tigase.server.MessageRouter.addRouter(MessageRouter.java:333) at tigase.server.MessageRouter.setProperties(MessageRouter.java:435) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:326) at tigase.server.MessageRouter.setConfig(MessageRouter.java:317) at TigaseServerTest.start_server(TigaseServerTest.java:27) at TigaseServerTest.main(TigaseServerTest.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) java.lang.OutOfMemoryError: PermGen space at java.lang.Class.getName0(Native Method) at java.lang.Class.getName(Class.java:552) at tigase.util.ClassComparator.compare(ClassComparator.java:56) at tigase.util.ClassComparator.compare(ClassComparator.java:41) at java.util.TreeMap.put(TreeMap.java:530) at java.util.TreeSet.add(TreeSet.java:238) at tigase.util.ClassUtil.getClassesFromNames(ClassUtil.java:128) at tigase.util.ClassUtil.getClassesFromClassPath(ClassUtil.java:163) at tigase.util.ClassUtil.getClassesImplementing(ClassUtil.java:191) at tigase.xmpp.ProcessorFactory.(ProcessorFactory.java:67) at tigase.server.xmppsession.SessionManager.addPlugin(SessionManager.java:717) at tigase.server.xmppsession.SessionManager.setProperties(SessionManager.java:811) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addComponent(MessageRouter.java:343) at tigase.server.MessageRouter.addRouter(MessageRouter.java:333) at tigase.server.MessageRouter.setProperties(MessageRouter.java:435) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:326) at tigase.server.MessageRouter.setConfig(MessageRouter.java:317) at TigaseServerTest.start_server(TigaseServerTest.java:27) at TigaseServerTest.main(TigaseServerTest.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.findBootstrapClass(Native Method) at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:891) at java.lang.ClassLoader.loadClass(ClassLoader.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at tigase.util.ClassUtil.getClassesFromNames(ClassUtil.java:127) at tigase.util.ClassUtil.getClassesFromClassPath(ClassUtil.java:163) at tigase.util.ClassUtil.getClassesImplementing(ClassUtil.java:191) at tigase.xmpp.ProcessorFactory.(ProcessorFactory.java:67) at tigase.server.xmppsession.SessionManager.addPlugin(SessionManager.java:717) at tigase.server.xmppsession.SessionManager.setProperties(SessionManager.java:811) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addComponent(MessageRouter.java:343) at tigase.server.MessageRouter.addRouter(MessageRouter.java:333) at tigase.server.MessageRouter.setProperties(MessageRouter.java:435) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:326) at tigase.server.MessageRouter.setConfig(MessageRouter.java:317) at TigaseServerTest.start_server(TigaseServerTest.java:27) at TigaseServerTest.main(TigaseServerTest.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.findBootstrapClass(Native Method) at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:891) at java.lang.ClassLoader.loadClass(ClassLoader.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at tigase.util.ClassUtil.getClassesFromNames(ClassUtil.java:127) at tigase.util.ClassUtil.getClassesFromClassPath(ClassUtil.java:163) at tigase.util.ClassUtil.getClassesImplementing(ClassUtil.java:191) at tigase.xmpp.ProcessorFactory.(ProcessorFactory.java:67) at tigase.server.xmppsession.SessionManager.addPlugin(SessionManager.java:717) at tigase.server.xmppsession.SessionManager.setProperties(SessionManager.java:811) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addComponent(MessageRouter.java:343) at tigase.server.MessageRouter.addRouter(MessageRouter.java:333) at tigase.server.MessageRouter.setProperties(MessageRouter.java:435) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:326) at tigase.server.MessageRouter.setConfig(MessageRouter.java:317) at TigaseServerTest.start_server(TigaseServerTest.java:27) at TigaseServerTest.main(TigaseServerTest.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.findBootstrapClass(Native Method) at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:891) at java.lang.ClassLoader.loadClass(ClassLoader.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at tigase.util.ClassUtil.getClassesFromNames(ClassUtil.java:127) at tigase.util.ClassUtil.getClassesFromClassPath(ClassUtil.java:163) at tigase.util.ClassUtil.getClassesImplementing(ClassUtil.java:191) at tigase.xmpp.ProcessorFactory.(ProcessorFactory.java:67) at tigase.server.xmppsession.SessionManager.addPlugin(SessionManager.java:717) at tigase.server.xmppsession.SessionManager.setProperties(SessionManager.java:811) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addComponent(MessageRouter.java:343) at tigase.server.MessageRouter.addRouter(MessageRouter.java:333) at tigase.server.MessageRouter.setProperties(MessageRouter.java:435) at tigase.conf.Configurator.setup(Configurator.java:302) at tigase.conf.Configurator.componentAdded(Configurator.java:269) at tigase.conf.Configurator.componentAdded(Configurator.java:73) at tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:58) at tigase.server.MessageRouter.addRegistrator(MessageRouter.java:326) at tigase.server.MessageRouter.setConfig(MessageRouter.java:317) at TigaseServerTest.start_server(TigaseServerTest.java:27) at TigaseServerTest.main(TigaseServerTest.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: PermGen space Any help/input would be greatly appreciated! Thanks! Richard

Trackback URL for this post:

http://www.tigase.org/en/trackback/1439
kobit's picture
Submitted by kobit on Mon, 2008-08-18 21:13.

 java.lang.OutOfMemoryError: 

I think it explains everything.

Normally the Tigase server doesn't need lots of memory for running. But if you run it within another application, both applications share assigned memory. Therefore when you set memory allowance for JVM you have to consider needs of both applications.

On top of this memory consumption in Tigase may temporarily be increased at certain point.

When the Tigase server is starting it tries to load all available plugins. To do this it scans ALL classes found in the CLASSPATH to find ALL plugin implementations. If your classpath is big and you have lots of classes then loading plugins may consume lots of memory and may take long time. After all plugins are loaded the memory is released.

Therefore I would suggest first of all to try increase memory allowance for JVM for your application and also if possible remove all jars and classes from the CLASSPATH which are not really needed and not used.

I hope it helps, please let me know if you have any problems. To be honest this setup is not recommended and not supported but I can try to help you if possible.


Submitted by Richard (not verified) on Mon, 2008-08-18 21:06.

Yikes, sorry for the lack of formatting there :( Hopefully you get the idea!

Richard

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.