Hi Freeman,

I understand your solution, but is it possible to do it without using the 
webapp folder / web.xml?

I would like to define the hole behaviour of the server in the test itself 
without a reference other files.

Regards,
Marc 




-------- Original-Nachricht --------
Datum: Fri, 13 Jul 2007 16:18:58 +0800
Von: Freeman Fang <[EMAIL PROTECTED]>
An: [email protected]
Betreff: Re: http://schemas.xmlsoap.org/soap/http

> Hi Marc,
> I believe you can do it similar in CXF.
> For client side, you can do it like
>         ClassPathXmlApplicationContext context
>             = new ClassPathXmlApplicationContext(new String[] 
> {"demo/spring/client/client-beans.xml"});
> 
>         HelloWorld client = (HelloWorld)context.getBean("client");
>  Client context looks like
>       <beans xmlns="http://www.springframework.org/schema/beans";
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xmlns:jaxws="http://cxf.apache.org/jaxws";
>         xsi:schemaLocation="
>     http://www.springframework.org/schema/beans 
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>     http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd";>
> 
>     <bean id="client" class="demo.spring.HelloWorld"
>       factory-bean="clientFactory" factory-method="create"/>
> 
>         <bean id="clientFactory" 
> class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
>           <property name="serviceClass" value="demo.spring.HelloWorld"/>
>           <property name="address" 
> value="http://localhost:9002/HelloWorld"/>
>         </bean>
> 
> </beans>
> 
> 
> For server side, you can do as
>         org.mortbay.jetty.Server server = new org.mortbay.jetty.Server();
> 
>         SelectChannelConnector connector = new SelectChannelConnector();
>         connector.setPort(9002);
>         server.setConnectors(new Connector[] {connector});
> 
>         WebAppContext webappcontext = new WebAppContext();
>         webappcontext.setContextPath("/");
> 
>         webappcontext.setWar("webapp");
> 
>         HandlerCollection handlers = new HandlerCollection();
>         handlers.setHandlers(new Handler[] {webappcontext, new 
> DefaultHandler()});
> 
>         server.setHandler(handlers);
>         server.start();
> 
> Server context looks like
> <beans xmlns="http://www.springframework.org/schema/beans";
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xmlns:jaxws="http://cxf.apache.org/jaxws";
>         xsi:schemaLocation="
>     http://www.springframework.org/schema/beans 
> http://www.springframework.org/schema/beans/spring-beans.xsd
>     http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd";>
> 
>         <import resource="classpath:META-INF/cxf/cxf.xml" />
>         <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"
> />
>         <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> 
>         <jaxws:endpoint
>           id="helloWorld"
>           implementor="demo.spring.HelloWorldImpl"
>           address="/HelloWorld" />
> 
> </beans>
> Actually, you can find more details in the spring_http sample.
> 
> Best Regards
> 
> Freeman
> 
> Marc Baumgartner wrote:
> > Hi Freeman,
> >
> > thank you for your response. I want to do something like this with
> xfire:
> >
> > @BeforeTest
> > public void beforeTest(){
> >
> >     serverFactory = new
> org.springframework.context.support.ClassPathXmlApplicationContext(
> >                             "classpath:" + SERVER_CONTEXT);
> >
> >     clientFactory = new XmlBeanFactory(
> >                     new ClassPathResource(CLIENT_CONTEXT));
> >
> >     // Start the WebServer
> >     httpServer = new XFireHttpServer();
> >     httpServer.setPort(PORT);
> >     httpServer.start();
> >     
> >     XFire xfire = XFireFactory.newInstance().getXFire();
> >             
> >     AnnotationServiceFactory osf = new AnnotationServiceFactory(new
> Jsr181WebAnnotations(), xfire.getTransportManager());
> >
> >     // Stelle den Service an Hand des Interfaces bereit
> >     Service service = osf.create(HelloWorldService.class);
> >     service.setInvoker(new BeanInvoker(serverFactory
> >                     .getBean("HelloWorldServiceBean")));
> >
> >     // Register the service
> >     xfire.getServiceRegistry().register(service);
> >         // Map the URL Parameter  
> >     configClientFactory(clientFactory);
> >     serviceClient = (HelloWorldService) clientFactory
> >                             .getBean("HelloWorldServiceClient");
> >
> >     }
> >
> >     @Test
> >     public void testGetGreeting() {
> >             serviceClient.getGreeting("Marc");
> >
> >     }
> >
> > My client context looks like this:
> >
> > <bean id="ServiceClient"
> class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
> >     <property name="serviceClass" value="hello.HelloWorldService" />
> >     <property name="wsdlDocumentUrl">
> >             <value>${url}?wsdl</value>
> >     </property>
> >     <property name="url" value="${url}" />          
> > </bean>
> >
> > And this is from my application context service side:
> >
> >
> >     <bean id="webAnnotations"
> class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations" />
> >
> >     <bean id="handlerMapping"
> class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping">
> >             <property name="typeMappingRegistry">
> >                     <ref bean="xfire.typeMappingRegistry" />
> >             </property>
> >             <property name="xfire">
> >                     <ref bean="xfire" />
> >             </property>
> >             <property name="webAnnotations">
> >                     <ref bean="webAnnotations" />
> >             </property>
> >     </bean>
> >
> >     <bean
> class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
> >             <property name="urlMap">
> >                     <map>
> >                             <entry key="/">
> >                                     <ref bean="handlerMapping" />
> >                             </entry>
> >                     </map>
> >             </property>
> >     </bean>
> >
> > Thanks,
> > Marc
> >
> > -------- Original-Nachricht --------
> > Datum: Fri, 13 Jul 2007 14:47:33 +0800
> > Von: Freeman Fang <[EMAIL PROTECTED]>
> > An: [email protected]
> > Betreff: Re: http://schemas.xmlsoap.org/soap/http
> >
> >   
> >> Hi Marc,
> >>
> >> For setup the CXF servlet in a junit test, you can get more details
> from
> >>
> trunk/systests/src/test/java/org/apache/cxf/systest/servlet/SpringServletTest.java
> >> and it's superclass
> >>
> trunk/systests/src/test/java/org/apache/cxf/systest/servlet/AbstractServletTest.java
> >>
> >> Best Regards
> >>
> >> Freeman
> >>
> >> Marc Baumgartner wrote:
> >>     
> >>> Hm, I have the Jetty Module (cxf-rt-transports-http-jetty) in my
> >>>       
> >> classpath and it doesn't work.
> >>     
> >>> How can I set up the CXF Servlet in a JUnit Test? I want to set up a
> web
> >>>       
> >> service in a "before test" method, test my service and shut the web
> >> service down.
> >>     
> >>> Marc
> >>>
> >>>
> >>> -------- Original-Nachricht --------
> >>> Datum: Thu, 12 Jul 2007 11:00:15 -0600
> >>> Von: "Dan Diephouse" <[EMAIL PROTECTED]>
> >>> An: [email protected]
> >>> Betreff: Re: http://schemas.xmlsoap.org/soap/http
> >>>
> >>>   
> >>>       
> >>>> This typically happens if you're trying to create an HTTP webservice
> >>>>         
> >> and
> >>     
> >>>> haven't either:
> >>>> a) Included the Jetty module on your classpath
> >>>> OR
> >>>> b) set up the CXFServlet.
> >>>>
> >>>> Have you done either of those? What does your config look like?
> >>>> Thanks,
> >>>> - Dan
> >>>>
> >>>> On 7/12/07, Marc Baumgartner <[EMAIL PROTECTED]> wrote:
> >>>>     
> >>>>         
> >>>>> Hi all,
> >>>>>
> >>>>> I get an org.springframework.beans.factory.BeanCreationException:
> >>>>>           
> >> Error
> >>     
> >>>>> creating bean with name 'helloWorldWS': Invocation of init method
> >>>>>       
> >>>>>           
> >>>> failed;
> >>>>     
> >>>>         
> >>>>> nested exception is java.lang.RuntimeException: Could not find
> >>>>>       
> >>>>>           
> >>>> destination
> >>>>     
> >>>>         
> >>>>> factory for transport http://schemas.xmlsoap.org/soap/http
> >>>>>
> >>>>> Where can I find this schema? How do I have to include it in my
> spring
> >>>>> conf?
> >>>>>
> >>>>> Regards,
> >>>>> Marc
> >>>>> --
> >>>>> Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> >>>>> Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
> >>>>>
> >>>>>       
> >>>>>           
> >>>> -- 
> >>>> Dan Diephouse
> >>>> Envoi Solutions
> >>>> http://envoisolutions.com | http://netzooid.com/blog
> >>>>     
> >>>>         
> >>>   
> >>>       
> >
> >   

-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer

Reply via email to