The server's list of handlers still has the extra handler. Did you look
at the source code I sent? The @Before method inserts an extra handler
into the server. The @After calls bus.shutdown. 

The next time we run the @Before, we should be restarting from complete
zero, we are rereading the beans into a new app context. Yet, the server
on the bus still somehow has the extra handler.

> -----Original Message-----
> From: Willem2 [mailto:[EMAIL PROTECTED]
> Sent: Monday, October 01, 2007 11:32 AM
> To: cxf-user@incubator.apache.org
> Subject: RE: Spring, bus, confusion
> 
> 
> What do you mean the server's configuration is there?
> 
> Do you mean the jetty server is still there ?
> 
> Willem.
> 
> 
> bmargulies wrote:
> >
> > 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.
> >
> >
> >
> 
> --
> View this message in context: http://www.nabble.com/Spring%2C-bus%2C-
> confusion-tf4545841.html#a12981449
> Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to