I'm not sure you want to do things that way---normally the
ApplicationContext should be configuring your SEI implementation, not
vice-versa, but hopefully someone else can give you more complete
information here.

Anyway, to answer your question at least, the SEI will not have any
reference to the AppContext--it's definition is defined by the
Spring-less JAX-WS standard and would be the same if you used GlassFish
Metro to generate it.

However, you can have your SEI implementation class implement an
additional interface--Spring's ApplicationContextAware interface.  That
will allow you to populate your SEI impl. with the config file.  But
AFAIK this is rarely done.

Glen


Am Mittwoch, den 14.11.2007, 16:48 -0800 schrieb Aaron Yyyy:
> I am new to CXF and I am trying to use it with Spring.
> 
> What is the best way to obtain the ApplicationContext in a class that was 
> generated by the wsdl2java utility? I currently have the 
> applicationContext.xml file in the WEB-INF directory but I don't know how to 
> obtain the context. Since the application is packaged in a war, I would like 
> to obtain the context using WebXMLApplicationContext but I don't know how to 
> get the ServletContext first.
> 
> Here is the interface generated by CXF:
> =========================================
> package com.example;
> 
> import javax.jws.WebParam.Mode;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding.Style;
> import javax.jws.soap.SOAPBinding;
> import javax.jws.WebMethod;
> import javax.jws.WebResult;
> 
> /**
>  * This class was generated by Apache CXF (incubator) 2.0.3-incubator
>  * Wed Nov 14 14:50:54 PST 2007
>  * Generated source version: 2.0.3-incubator
>  * 
>  */
> 
> @WebService(targetNamespace = "http://example.com/soap";, name = 
> "HelloWorldPortType")
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> 
> public interface HelloWorldPortType {
> 
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "http://example.com/soap/types";, partName = 
> "body", name = "HellowWorldResponse")
>     @WebMethod(action = "HellowWorld", operationName = "HellowWorld")
>     public com.example.soap.types.HellowWorldResponse hellowWorld(
>         @WebParam(targetNamespace = "http://example.com/soap/types";, partName 
> = "body", name = "HellowWorldRequest")
>         com.example.soap.types.HellowWorldRequest body
>     );
> }
> 
> 
> Here is my implementation class:
> ==================================
> package com.example;
> 
> import java.util.logging.Logger;
> 
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebResult;
> import javax.jws.soap.SOAPBinding;
> 
> import com.example.soap.HellowWorldPortType;
> 
> @javax.jws.WebService(portName = "HelloWorldPort", serviceName = 
> "HelloWorldService", 
>                       targetNamespace = "http://example.com/soap";, 
>                       endpointInterface = 
> "com.example.soap.HellowWorldPortType")
> @javax.xml.ws.BindingType(value = 
> "http://www.w3.org/2003/05/soap/bindings/HTTP/";)                  
> public class HellowWorldImpl implements HellowWorldPortType {
> 
>     private static final Logger LOG = 
>         Logger.getLogger(HellowWorldImpl.class.getPackage().getName());
>     
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "http://example.com/soap/types";, partName = 
> "body", name = "HellowWorldResponse")
>     @WebMethod(action = "HellowWorld", operationName = "HellowWorld")
>     public com.example.soap.types.HellowWorldResponse helloWorld(
>         @WebParam(targetNamespace = "http://example.com/soap/types";, partName 
> = "body", name = "HellowWorldRequest")
>         com.example.soap.types.HellowWorldRequest body
>     ){
>     
>         //how to I access Spring Application context from here when I don't 
> have access to servletContext???
>         XmlWebApplicationContext ctx = new XmlWebApplicationContext();
>             ctx.setConfigLocations(files);
>             ctx.setServletContext(servletContext);
>             ctx.refresh();
> 
>             ctx.getBean("hello");
> 
>         HellowWorldResponse hwr = new HellowWorldResponse();
>         
>         return hwr;
>     }
> }
>        
> ---------------------------------
> Never miss a thing.   Make Yahoo your homepage.

Reply via email to