Author: rmannibucau
Date: Mon Oct  3 12:14:42 2011
New Revision: 1178381

URL: http://svn.apache.org/viewvc?rev=1178381&view=rev
Log:
avoiding a classnotfoundexception when running tomee in normal mode (the error 
comes from embedded mode)

Modified:
    
openejb/trunk/openejb/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java

Modified: 
openejb/trunk/openejb/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java?rev=1178381&r1=1178380&r2=1178381&view=diff
==============================================================================
--- 
openejb/trunk/openejb/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java
 (original)
+++ 
openejb/trunk/openejb/assembly/openejb-tomcat/openejb-tomcat-loader/src/main/java/org/apache/openejb/tomcat/loader/TomcatHelper.java
 Mon Oct  3 12:14:42 2011
@@ -19,6 +19,7 @@ package org.apache.openejb.tomcat.loader
 
 import java.io.File;
 import java.lang.management.ManagementFactory;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.security.Principal;
 
@@ -46,8 +47,18 @@ public class TomcatHelper {
        public static StandardServer getServer() {
                StandardServer server = null;
 
-        server = SystemInstance.get().getComponent(StandardServer.class);
-        if (server != null) return server;
+        Class<?> systemInstanceClass = null;
+        try {
+            // server = SystemInstance.get().getComponent(StandardServer.class)
+            systemInstanceClass = 
Thread.currentThread().getContextClassLoader().loadClass("org.apache.openejb.loader.SystemInstance");
+            Object instance = 
systemInstanceClass.getDeclaredMethod("get").invoke(null);
+            server = (StandardServer) 
systemInstanceClass.getDeclaredMethod("getComponent", 
Class.class).invoke(instance, StandardServer.class);
+        } catch (Exception classNotFoundException) {
+            // ignored
+        }
+        if (server != null) {
+            return server;
+        }
 
         // first try to use Tomcat's ServerFactory class to give us a 
reference to the server
                
@@ -56,8 +67,8 @@ public class TomcatHelper {
                        Method getServerMethod = 
tomcatServerFactory.getMethod("getServer");
                        server = (StandardServer) getServerMethod.invoke(null);
                } catch (Exception e) {
+            // ignored
                }
-               
                if (server != null) {
                        return server;
                }
@@ -67,10 +78,11 @@ public class TomcatHelper {
                        MBeanServer mbeanServer = 
ManagementFactory.getPlatformMBeanServer();
                        server = (StandardServer) mbeanServer.getAttribute(new 
ObjectName("Catalina:type=Server"), "managedResource");
                } catch (Exception e) {
+            // ignored
                }
 
                // if this still fails, that's too bad.
-               
+
                return server;
        }
        


Reply via email to