IBM Liberty18.0.0.1:LinkageError类装入器问题Cxf

IBM Liberty18.0.0.1:LinkageError类装入器问题Cxf,cxf,classloader,websphere-liberty,Cxf,Classloader,Websphere Liberty,目标:尝试部署两个都使用cxf for WebServices的应用程序a App1:ejbws.ear:ejb带有@WebService注释。Liberty使用容器中已有的cxf总线将其公开为webservice App2:myapp.war。具有一些soap服务的springboot webapp 观察1:如果我单独“删除”App1,则其中的soap服务可以工作。如果我单独下载App2,其中的soap服务就会工作 观察结果2:如果我同时输入这两个选项,取决于哪一个选项拾取得更快,则其中只有一

目标:尝试部署两个都使用cxf for WebServices的应用程序a

App1:ejbws.ear:ejb带有@WebService注释。Liberty使用容器中已有的cxf总线将其公开为webservice

App2:myapp.war。具有一些soap服务的springboot webapp

观察1:如果我单独“删除”App1,则其中的soap服务可以工作。如果我单独下载App2,其中的soap服务就会工作

观察结果2:如果我同时输入这两个选项,取决于哪一个选项拾取得更快,则其中只有一个工作,另一个会遇到LinkageError

潜在问题: -看起来org/apache/cxf/service/service的类加载器发生冲突

要求:

------Start of DE processing------ = [14/05/18 12:29:29:634 EDT]
Exception = org.springframework.beans.factory.BeanCreationException
Source = com.ibm.ws.webcontainer.osgi.DynamicVirtualHost
probeid = startWebApp
Stack Dump = org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xyz' defined in class path resource [org/mst/test/integration/conf/WebConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.xml.ws.Endpoint]: Factory method 'xyz' threw exception; nested exception is java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.apache.cxf.jaxb.JAXBDataBinding.initialize(Lorg/apache/cxf/service/Service;)V" the class loader (instance of com/ibm/ws/classloading/internal/AppClassLoader) of the current class, org/apache/cxf/jaxb/JAXBDataBinding, and its superclass loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader), have different Class objects for the type org/apache/cxf/service/Service used in the signature
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1177)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1071)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
    at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:154)
    at org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:134)
    at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:87)
    at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)
    at com.ibm.ws.webcontainer.webapp.WebApp.initializeServletContainerInitializers(WebApp.java:2495)
    at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:1002)
    at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:6574)
    at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApp(DynamicVirtualHost.java:467)
    at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApplication(DynamicVirtualHost.java:462)
    at com.ibm.ws.webcontainer.osgi.WebContainer.startWebApplication(WebContainer.java:1132)
    at com.ibm.ws.webcontainer.osgi.WebContainer.access$000(WebContainer.java:108)
    at com.ibm.ws.webcontainer.osgi.WebContainer$3.run(WebContainer.java:944)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.xml.ws.Endpoint]: Factory method 'xyz' threw exception; nested exception is java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.apache.cxf.jaxb.JAXBDataBinding.initialize(Lorg/apache/cxf/service/Service;)V" the class loader (instance of com/ibm/ws/classloading/internal/AppClassLoader) of the current class, org/apache/cxf/jaxb/JAXBDataBinding, and its superclass loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader), have different Class objects for the type org/apache/cxf/service/Service used in the signature
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
    ... 32 more
Caused by: java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.apache.cxf.jaxb.JAXBDataBinding.initialize(Lorg/apache/cxf/service/Service;)V" the class loader (instance of com/ibm/ws/classloading/internal/AppClassLoader) of the current class, org/apache/cxf/jaxb/JAXBDataBinding, and its superclass loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader), have different Class objects for the type org/apache/cxf/service/Service used in the signature
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    at java.lang.Class.getConstructor0(Class.java:3075)
    at java.lang.Class.getConstructor(Class.java:1825)
    at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.createDefaultDataBinding(ReflectionServiceFactoryBean.java:229)
    at org.apache.cxf.service.factory.AbstractServiceFactoryBean.getDataBinding(AbstractServiceFactoryBean.java:109)
    at org.apache.cxf.service.factory.AbstractServiceFactoryBean.getDataBinding(AbstractServiceFactoryBean.java:105)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.generatedWrapperBeanClass(JaxWsServiceFactoryBean.java:668)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.getExtraClass(JaxWsServiceFactoryBean.java:645)
    at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:420)
    at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:528)
    at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:263)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
    at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:103)
    at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:168)
    at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
    at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:460)
    at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:338)
    at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255)
    at org.mst.test.integration.conf.WebConfiguration.xyz(WebConfiguration.java:135)
    at org.mst.test.integration.conf.WebConfiguration$$EnhancerBySpringCGLIB$$a5109f9f.CGLIB$xyz$9(<generated>)
    at org.mst.test.integration.conf.WebConfiguration$$EnhancerBySpringCGLIB$$a5109f9f$$FastClassBySpringCGLIB$$941731ce.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358)
    at org.mst.test.integration.conf.WebConfiguration$$EnhancerBySpringCGLIB$$a5109f9f.xyz(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
    ... 33 more
  • 确保App1 ejbws ear使用容器cxf(因为该ear文件中不存在cxf依赖项)

  • 确保App2 sbootapp.war使用与war捆绑的cxf库

  • App2应在cmdline/tomcat和其他容器中不进行任何pom更改的情况下工作。即不使用任何共享库

  • Try1:对两个应用程序使用“父上次”配置。没有成功

    <featureManager>
        <feature>adminCenter-1.0</feature>
        <feature>localConnector-1.0</feature>
        <feature>websocket-1.1</feature>
        <feature>webProfile-7.0</feature>
        <feature>javaee-7.0</feature>
        <feature>jndi-1.0</feature>
        <feature>jdbc-4.1</feature>
        <feature>httpWhiteboard-1.0</feature>
        <feature>osgiConsole-1.0</feature>
        <feature>mediaServerControl-1.0</feature>
        <feature>productInsights-1.0</feature>
        <feature>mpFaultTolerance-1.0</feature>
        <feature>apiDiscovery-1.0</feature>
    </featureManager>
    
    
        <!-- this parentlast did not help --><enterpriseApplication type="ear" location="D:\apps\ibmliberty-18001\usr\servers\defaultServer\dropins\ejb_earws.ear" tname="ejb_earws">
        <classloader delegation="parentLast"/>
       </enterpriseApplication>
       <enterpriseApplication type="war" location="D:\apps\ibmliberty-18001\usr\servers\defaultServer\dropins\mysboot-1.0.war" name="mysboot">
        <classloader delegation="parentLast"/>
       </enterpriseApplication>
    

    您的server.xml看起来像什么?如果您的两个应用都打包了您需要的CXF库,那么您可能可以通过删除Liberty的内置CXF来解决这种情况-您需要删除
    jaxrs-2.0
    和/或
    jaxws-2.2
    功能。添加了server.xml详细信息。App1:ejbws依赖容器为ejb接口自动生成webservice路由器,因此它不打包任何cxf库。App2:springboot中确实包含所有依赖的WAR。你能试着去掉javaee-7.0和webProfile-7.0的特性吗?根据应用程序所依赖的内容,您可能需要重新添加一些功能。确保不要拉入jaxrs-2.0或jaxws-2.2。然后,您应该能够运行CXF,而不会与Liberty附带的CXF发生冲突。您可能还需要将JAX-WS或JAX-RS API JAR添加到应用程序中。或者,您可以从应用程序中删除CXF JAR,只使用Liberty附带的CXF即可。@AndyMCRight-(1)从应用程序2中删除CXF JAR将使我的要求无效3。i、 e应用程序应在独立/tomcat部署中工作。(2) 从中删除cxf JAR将使App1无法工作。一个工作的“最后的父母”会解决我的问题。我们是否可以在liberty升级快速修复程序来修复“最后一个家长”?我认为,在j2ee容器中,这种用例似乎是正常的。
    Object type = [Ljava.lang.Object;
      Object[0] = class com.ibm.ws.webcontainer.osgi.DynamicVirtualHost@1d03cafa
        tc = class com.ibm.websphere.ras.TraceComponent@5886fbf5
          strings[0] = "TraceComponent[com.ibm.ws.webcontainer.osgi.DynamicVirtualHost,class com.ibm.ws.webcontainer.osgi.DynamicVirtualHost,[webcontainer],com.ibm.ws.webcontainer.resources.LShimMessages,null]"
        CLASS_NAME = "com.ibm.ws.webcontainer.osgi.DynamicVirtualHost"
        webContainerParent = class com.ibm.ws.webcontainer.osgi.WebContainer@66141d9d
          tc = class com.ibm.websphere.ras.TraceComponent@3229c23c
          CLASS_NAME = "com.ibm.ws.webcontainer.osgi.WebContainer"
          initialized = true
          eventService = class com.ibm.ws.event.internal.EventEngineImpl@1c29644d
          futureMonitor = class com.ibm.ws.threading.internal.FutureMonitorImpl@72220f91
          classLoadingSRRef = class com.ibm.wsspi.kernel.service.utils.AtomicServiceReference@672facda
          sessionHelperSRRef = class com.ibm.wsspi.kernel.service.utils.AtomicServiceReference@36663023
          cacheManagerSRRef = class com.ibm.wsspi.kernel.service.utils.AtomicServiceReference@61ba21ae
          injectionEngineSRRef = class com.ibm.wsspi.kernel.service.utils.AtomicServiceReference@306f48f
          managedObjectServiceSRRef = class com.ibm.wsspi.kernel.service.utils.AtomicServiceReference@19d5d149
          backgroundWebAppStartFutures = class com.ibm.ws.webcontainer.util.OneTimeUseArrayList@1eb51d78
          REFERENCE_WEB_MBEAN_RUNTIME = "webMBeanRuntime"
          webMBeanRuntimeServiceRef = class com.ibm.wsspi.kernel.service.utils.AtomicServiceReference@2eb2e851
          servletContainerInitializers = class com.ibm.wsspi.kernel.service.utils.ConcurrentServiceReferenceSet@1aa4c384
          es = class com.ibm.ws.threading.internal.ExecutorServiceImpl@2d4c1600
          locationServiceRef = class java.util.concurrent.atomic.AtomicReference@1b24900c
          transferContextServiceRef = class com.ibm.wsspi.kernel.service.utils.ConcurrentServiceReferenceSet@226d0359
          encodingServiceRef = class java.util.concurrent.atomic.AtomicReference@1e694c73
          instance = class java.util.concurrent.atomic.AtomicReference@53d8a5a8
          vhostManager = class com.ibm.ws.webcontainer.osgi.DynamicVirtualHostManager@6c43fb2f
          metaDataService = class com.ibm.ws.container.service.metadata.internal.MetaDataServiceImpl@5c12af5b
          j2eeNameFactory = class com.ibm.ws.container.service.metadata.internal.J2EENameFactoryImpl@1bb315e2
          context = class org.apache.felix.scr.impl.manager.ComponentContextImpl@26fe4a35
          contextRoots = class java.util.Collections$SynchronizedSet@72a0804d
          pendingContextRoots = class java.util.HashMap@64c38e54
          deployedModuleMap = class java.util.concurrent.ConcurrentHashMap@172a9b60
          connContextPool = class com.ibm.ws.webcontainer31.osgi.srt.factory.SRTConnectionContextPool31Impl@43d1d452
          DEFAULT_PORT = "*"
          DEFAULT_VHOST_NAME = "default_host"
          cachedServerInfo = "IBM WebSphere Liberty/${liberty.service.version}"
          lock = class com.ibm.ws.webcontainer.osgi.WebContainer$1@3585968d
          webAppFactory = class com.ibm.ws.webcontainer31.osgi.webapp.factory.WebAppFactoryImpl31@4d4c1f47
          requestFactory = class com.ibm.ws.webcontainer31.osgi.response.factory.IRequestResponseFactory@efe6c15
          responseFactory = class com.ibm.ws.webcontainer31.osgi.response.factory.IRequestResponseFactory@efe6c15
          asyncContextFactory = class com.ibm.ws.webcontainer31.async.factory.AsyncContextFactory31Impl@43404adc
          DEFAULT_MAX_VERSION = 30
          versionRef = class org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl@5ae88dc7
          serverStopping = class com.ibm.ws.staticvalue.StaticValue$FinalSingleton@77f307fa
          modulesStarting = 0
          uriMatcherFactory = class com.ibm.wsspi.webcontainer31.util.factory.URIMatcherFactory31Impl@a1053d5
          SPEC_LEVEL_UNLOADED = -1
          SPEC_LEVEL_30 = 30
          SPEC_LEVEL_31 = 31
          SPEC_LEVEL_40 = 40
          DEFAULT_SPEC_LEVEL = 30
          loadedContainerSpecLevel = 31
          ISO = "ISO-8859-1"
          encoding = "UTF-8"
          decode = true
          wcconfig = class com.ibm.ws.webcontainer.osgi.WebContainerConfiguration@555fd4fb
          applicationListeners = class java.util.ArrayList@3a7cd57d
          servletListeners = class java.util.ArrayList@327aa71c
          servletErrorListeners = class java.util.ArrayList@463e6754
          servletInvocationListeners = class java.util.ArrayList@6ded8b64
          filterInvocationListeners = class java.util.ArrayList@31e67c99
          filterErrorListeners = class java.util.ArrayList@56c37ffe
          filterListeners = class java.util.ArrayList@63f2b6b5
          servletRequestListeners = class java.util.ArrayList@62c5a704
          servletRequestAttributeListeners = class java.util.ArrayList@60c50d71
          servletContextListeners = class java.util.ArrayList@2db4a218
          servletContextAttributeListeners = class java.util.ArrayList@5b05ee05
          sessionListeners = class java.util.ArrayList@14379fe6
          sessionIdListeners = class java.util.ArrayList@5c51a694
          sessionAttributeListeners = class java.util.ArrayList@54fd6b64
          DEFAULT_HOST = "default_host"
          _initialized = true
          logger = class com.ibm.ws.logging.internal.WsLogger@66e689a2
          CLASS_NAME = "com.ibm.ws.webcontainer.internal.WebContainer"
          nls = class com.ibm.ejs.ras.TraceNLS@20fcd238
          self = class java.util.concurrent.atomic.AtomicReference@81cb16e
          _cipherToBit = class java.util.HashMap@59a8d3ff
          cacheKeyStringBuilder = class com.ibm.ws.util.WSThreadLocal@66b125e5
          listenersInitialized = true
          webConProperties = class java.util.Properties@201a5619
          sessionRegistry = null
          isStopped = false
          readWriteLockForStopping = class java.util.concurrent.locks.ReentrantReadWriteLock@4d6014b5
          urlPrefix = ";jsessionid="
          extensionFactories = class java.util.ArrayList@10ca33f7
          postInitExtensionFactories = null
          httpResponseListeners = class java.util.ArrayList@52c801cd
          servletContainerInitializers = class java.util.ServiceLoader@3db9887c
          auditManager = class com.ibm.websphere.security.audit.context.AuditManager@4f61bb4c
          threadLocal = class java.lang.ThreadLocal@2e9cba9
          invocationCacheSize = 500
          decodePlusSign = true
          _cacheMap = class java.util.concurrent.ConcurrentHashMap@10bd6450
          _cacheSize = class java.util.concurrent.atomic.AtomicInteger@61b6e453
          vHostCompatFlag = false
          platformHelper = class com.ibm.ws.webcontainer.PlatformHelper@234f88f2
          isDefaultTempDir = true
          tempDir = null
          servletCachingInitNeeded = true
          appInstallBegun = true
          cacheServletWrapperFactory = class com.ibm.ws.webcontainer31.servlet.factory.CacheServletWrapperFactory31Impl@6fb7bbb1
          commands = class java.util.ArrayList@1453cdf3
          requestMapper = class com.ibm.ws.webcontainer.util.VirtualHostContextRootMapper@42112756
          parent = null
          name = "Was.webcontainer"
          isAlive = true
          subElements = class java.util.HashMap@1d462ffe
          attributes = null
          config = null
          serialVersionUID = -8271459000149267764
          $$$tc$$$ = class com.ibm.websphere.ras.TraceComponent@7e7b2f1f
        dhostConfig = class com.ibm.ws.webcontainer.osgi.DynamicVirtualHostConfiguration@70bf7c92
          tc = class com.ibm.websphere.ras.TraceComponent@48ce66cc
          name = "default_host"
          activeContexts = class java.util.HashSet@435da80b
          tc = class com.ibm.websphere.ras.TraceComponent@880f3e
          config = class com.ibm.ws.http.internal.VirtualHostImpl@75899a9b
          _id = "default_host"
          _attributes = null
          serialVersionUID = 7511545662945734886
          $$$tc$$$ = class com.ibm.websphere.ras.TraceComponent@2646ee62
        predefinedMatcher = null
        normalizeRequestURI = false
        logger = class com.ibm.ws.logging.internal.WsLogger@66e689a2
          tc = class com.ibm.websphere.ras.TraceComponent@26dc46a0
          ivCachedResourceBundleName = "com.ibm.ws.webcontainer.resources.Messages"
          ivCachedResourceBundle = class com.ibm.ws.webcontainer.resources.Messages@24178af5
          ivComponent = null
          ivOrganization = null
          ivProduct = null
          ivMinimumLocalizationLevelIntValue = 625
          ivTC = class com.ibm.websphere.ras.TraceComponent@1975ee4f
          loggerRegistrationComponent = class java.lang.ThreadLocal@4d6b6b9a
          emptyHandlers = class java.util.logging.Handler[0]
          offValue = 2147483647
          SYSTEM_LOGGER_RB_NAME = "sun.util.logging.resources.logging"
          SYSTEM_BUNDLE = class java.util.logging.Logger$LoggerBundle@5ddc8c5b
          NO_RESOURCE_BUNDLE = class java.util.logging.Logger$LoggerBundle@7fa319cb
          manager = class com.ibm.ws.kernel.boot.logging.WsLogManager@677b74e8
          name = "com.ibm.ws.webcontainer"
          handlers = class java.util.concurrent.CopyOnWriteArrayList@715ae426
          loggerBundle = class java.util.logging.Logger$LoggerBundle@48dd1002
          useParentHandlers = true
          filter = null
          anonymous = false
          catalog = class com.ibm.ws.webcontainer.resources.Messages@24178af5
          catalogName = "com.ibm.ws.webcontainer.resources.Messages"
          catalogLocale = class java.util.Locale@2fd72593
          treeLock = class java.lang.Object@1337d8b5
          parent = class java.util.logging.Logger@1fccced1
          kids = class java.util.ArrayList@356a6521
          levelObject = class java.util.logging.Level@15172e8e
          levelValue = 800
          callersClassLoaderRef = class java.lang.ref.WeakReference@3fa7a02
          isSystemLogger = false
          GLOBAL_LOGGER_NAME = "global"
          global = class java.util.logging.Logger@2e25e8b8
          $assertionsDisabled = true
        CLASS_NAME = "com.ibm.ws.webcontainer.VirtualHost"
        vHostConfig = class com.ibm.ws.webcontainer.osgi.DynamicVirtualHostConfiguration@70bf7c92
        commands = class java.util.ArrayList@20589816
          serialVersionUID = 8683452581122892189
          DEFAULT_CAPACITY = 10
          EMPTY_ELEMENTDATA = class java.lang.Object[0]
          DEFAULTCAPACITY_EMPTY_ELEMENTDATA = class java.lang.Object[0]
          elementData = class java.lang.Object[3]
          size = 0
          MAX_ARRAY_SIZE = 2147483639
          modCount = 0
          MAX_ARRAY_SIZE = 2147483639
        requestMapper = class com.ibm.wsspi.webcontainer.util.URIMapper@2b883b63
          matcher = class com.ibm.wsspi.webcontainer.util.URIMatcher@5d46850
        parent = class com.ibm.ws.webcontainer.osgi.WebContainer@66141d9d
        name = "default_host"
        isAlive = true
        subElements = class java.util.HashMap@5c200e43
          serialVersionUID = 362498820763181265
          DEFAULT_INITIAL_CAPACITY = 16
          MAXIMUM_CAPACITY = 1073741824
          DEFAULT_LOAD_FACTOR = 0.75
          TREEIFY_THRESHOLD = 8
          UNTREEIFY_THRESHOLD = 6
          MIN_TREEIFY_CAPACITY = 64
          table = class java.util.HashMap$Node[16]
          entrySet = null
          size = 12
          modCount = 12
          threshold = 12
          loadFactor = 0.75
          keySet = null
          values = null
        attributes = null
        config = null
        serialVersionUID = -8271459000149267764
        $$$tc$$$ = class com.ibm.websphere.ras.TraceComponent@7e7b2f1f
          strings[0] = "TraceComponent[com.ibm.ws.container.AbstractContainer,class com.ibm.ws.container.AbstractContainer,[],null,null]"
      Object[1] = class com.ibm.ws.webcontainer31.osgi.webapp.WebApp31@30b89036
        tc = class com.ibm.websphere.ras.TraceComponent@2653c192
          strings[0] = "TraceComponent[com.ibm.ws.webcontainer31.osgi.webapp.WebApp31,class com.ibm.ws.webcontainer31.osgi.webapp.WebApp31,[webcontainer],com.ibm.ws.webcontainer31.resources.Messages,null]"
        CLASS_NAME = "com.ibm.ws.webcontainer31.osgi.webapp.WebApp31"
        servlet31NLS = class com.ibm.ejs.ras.TraceNLS@e5927fc
          resolver = class com.ibm.ws.logging.internal.TraceNLSResolver@e50e245
          finder = class com.ibm.ws.logging.internal.StackFinder@229a1826
          ivBundleName = "com.ibm.ws.webcontainer31.resources.Messages"
          caller = class java.lang.Class@211a906d
        validListenerClasses = class java.lang.Class[7]
          Class[0] = class java.lang.Class@6f19cee7
          Class[1] = class java.lang.Class@2f7d79ae
          Class[2] = class java.lang.Class@114b4540
          Class[3] = class java.lang.Class@16bb19a
          Class[4] = class java.lang.Class@20a439a6
          Class[5] = class java.lang.Class@64508415
          Class[6] = class java.lang.Class@3fc5eeb5
        wsocServHandler = class com.ibm.ws.wsoc.external.WsocHandlerImpl@9ceb1d
          tc = class com.ibm.websphere.ras.TraceComponent@79edbdf9
          noMoreAddsCalled = false
          serialVersionUID = -2067291126638824067
        tc = class com.ibm.websphere.ras.TraceComponent@4fe83a5d
          strings[0] =