I tried that. I still found my configuration changes to the server 'already present' when I create the next application context.
> -----Original Message----- > From: Willem2 [mailto:[EMAIL PROTECTED] > Sent: Monday, October 01, 2007 9:11 AM > To: cxf-user@incubator.apache.org > Subject: Re: Spring, bus, confusion > > > Hi Benson, > > You can call bus.shutdown(true) in @After to tear down the server and the > jetty engine. > > > Willem. > > > bmargulies wrote: > > > > Please forgive me for pasting a lot of code into here. > > > > I'm trying to set up a unit test framework where the fixture sets up > > jetty with an endpoint and some static content. So, as you will see, I > > have an @Before that sets everything up, and an @After that tries to > > tear everything down. > > > > However, when the @Before runs the second time, things sure look as if > > they have all hung around from the first time around. > > > > I bet that there's something simple about the bus that I'm missing, > > namely, that the cxf bus exists independently of my app context, and I > > have to \do something/ to tear \it/ down. > > > > > > > > > > > > package com.basistech.ws; > > > > import java.io.File; > > import java.net.URL; > > > > import org.apache.cxf.Bus; > > import org.apache.cxf.endpoint.ServerImpl; > > import org.apache.cxf.endpoint.ServerRegistry; > > import org.apache.cxf.transport.http_jetty.JettyHTTPDestination; > > import org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine; > > import org.junit.After; > > import org.junit.Before; > > import org.mortbay.jetty.Handler; > > import org.mortbay.jetty.Server; > > import org.mortbay.jetty.handler.ContextHandlerCollection; > > import org.mortbay.jetty.handler.HandlerList; > > import org.mortbay.jetty.handler.ResourceHandler; > > import org.mortbay.resource.FileResource; > > import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; > > import org.springframework.context.support.GenericApplicationContext; > > import org.springframework.core.io.ClassPathResource; > > import org.springframework.core.io.Resource; > > > > /** > > * Class used to launch a CXF/jetty web service using the embedded jetty > > in CXF. > > * > > */ > > public abstract class AbstractTestService { > > > > protected abstract Resource getServiceDefinitionBeans(); > > protected abstract String getStaticContentPath(); > > protected GenericApplicationContext applicationContext; > > protected Bus bus; > > > > private void readBeans(Resource beanResource) { > > XmlBeanDefinitionReader reader = new > > XmlBeanDefinitionReader(applicationContext); > > reader.loadBeanDefinitions(beanResource); > > } > > > > @Before > > public void launchService() throws Exception { > > applicationContext = new GenericApplicationContext(); > > readBeans(new ClassPathResource("META-INF/cxf/cxf.xml")); > > readBeans(new > > ClassPathResource("META-INF/cxf/cxf-extension-soap.xml")); > > readBeans(new > > ClassPathResource("META-INF/cxf/cxf-extension-http.xml")); > > readBeans(new > > ClassPathResource("META-INF/cxf/cxf-extension-http-jetty.xml")); > > readBeans(getServiceDefinitionBeans()); > > applicationContext.refresh(); > > > > bus = (Bus)applicationContext.getBean("cxf"); > > ServerRegistry sr= bus.getExtension(ServerRegistry.class); > > ServerImpl si = (ServerImpl) sr.getServers().get(0); > > JettyHTTPDestination jhd = > > (JettyHTTPDestination)si.getDestination(); > > JettyHTTPServerEngine engine = (JettyHTTPServerEngine) > > jhd.getEngine(); > > Server server = engine.getServer(); > > Handler serverHandler = server.getHandler(); > > ContextHandlerCollection contextHandlerCollection = > > (ContextHandlerCollection)serverHandler; > > HandlerList handlerList = new HandlerList(); > > ResourceHandler resourceHandler = new ResourceHandler(); > > handlerList.addHandler(resourceHandler); > > handlerList.addHandler(contextHandlerCollection); > > server.setHandler(handlerList); > > handlerList.start(); > > File staticContentFile = new File(getStaticContentPath()); > > URL targetURL = new URL("file://" + > > staticContentFile.getCanonicalPath()); > > FileResource fileResource = new FileResource(targetURL); > > resourceHandler.setBaseResource(fileResource); > > } > > > > @After > > public void shutdownService() throws Exception { > > bus = (Bus)applicationContext.getBean("cxf"); > > ServerRegistry sr = bus.getExtension(ServerRegistry.class); > > ServerImpl si = (ServerImpl) sr.getServers().get(0); > > JettyHTTPDestination jhd = > > (JettyHTTPDestination)si.getDestination(); > > JettyHTTPServerEngine e = (JettyHTTPServerEngine) > > jhd.getEngine(); > > e.getServer().stop(); > > applicationContext.destroy(); > > } > > > > } > > > > > > -- > View this message in context: http://www.nabble.com/Spring%2C-bus%2C- > confusion-tf4545841.html#a12978917 > Sent from the cxf-user mailing list archive at Nabble.com.