Class ServerFactoryBean

java.lang.Object
org.apache.cxf.interceptor.AbstractBasicInterceptorProvider
org.apache.cxf.endpoint.AbstractEndpointFactory
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory
org.apache.cxf.frontend.ServerFactoryBean
All Implemented Interfaces:
org.apache.cxf.interceptor.InterceptorProvider
Direct Known Subclasses:
ServerFactoryBeanDefinitionParser.SpringServerFactoryBean

public class ServerFactoryBean extends AbstractWSDLBasedEndpointFactory
This class helps take a Service and expose as a server side endpoint. If there is no Service, it can create one for you using a ReflectionServiceFactoryBean.

For most scenarios you'll want to just have the ServerFactoryBean handle everything for you. In such a case, usage might look like this:

 ServerFactoryBean sf = new ServerFactoryBean();
 sf.setServiceClass(MyService.class);
 sf.setAddress("http://localhost:8080/MyService");
 sf.create();
 

You can also get more advanced and customize the service factory used:

 ReflectionServiceFactory serviceFactory = new ReflectionServiceFactory();
 serviceFactory.setServiceClass(MyService.class);
 ..
 \/\/ Customize service factory here...
 serviceFactory.setWrapped(false);
 ...
 ServerFactoryBean sf = new ServerFactoryBean();
 sf.setServiceFactory(serviceFactory);
 sf.setAddress("http://localhost:8080/MyService");
 sf.create();
 
  • Constructor Details

    • ServerFactoryBean

      public ServerFactoryBean()
    • ServerFactoryBean

      public ServerFactoryBean(org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean sbean)
  • Method Details

    • getBeanName

      public String getBeanName()
    • detectTransportIdFromAddress

      protected String detectTransportIdFromAddress(String ad)
      Specified by:
      detectTransportIdFromAddress in class AbstractWSDLBasedEndpointFactory
    • getWSDLEndpointFactory

      protected org.apache.cxf.wsdl11.WSDLEndpointFactory getWSDLEndpointFactory()
      Specified by:
      getWSDLEndpointFactory in class AbstractWSDLBasedEndpointFactory
    • getServer

      public org.apache.cxf.endpoint.Server getServer()
      For subclasses that hold onto the created Server, this will return the singleton server. Default returns null as the default factories do not hold onto the server and will create a new one for each call to create();
      Returns:
    • create

      public org.apache.cxf.endpoint.Server create()
    • initializeServiceFactory

      protected void initializeServiceFactory()
      Overrides:
      initializeServiceFactory in class AbstractWSDLBasedEndpointFactory
    • applyFeatures

      protected void applyFeatures(org.apache.cxf.endpoint.Server server)
    • createInvoker

      protected org.apache.cxf.service.invoker.Invoker createInvoker()
    • isStart

      public boolean isStart()
      Whether or not the Server should be started upon creation.
      Returns:
      false if the server should not be started upon creation
    • setStart

      public void setStart(boolean start)
      Specifies if the Server should be started upon creation. The default is for Servers to be started upon creation. Passing false tells the factory that the Server will be started manually using the start method.
      Parameters:
      start - false specifies that the Server will not be started upon creation
    • getServiceBean

      public Object getServiceBean()
    • getServiceBeanClass

      public Class<?> getServiceBeanClass()
    • setServiceBean

      public void setServiceBean(Object serviceBean)
      Sets the bean implementing the service. If this is set a BeanInvoker is created for the provided bean.
      Parameters:
      serviceBean - an instantiated implementation object
    • getSchemaLocations

      public List<String> getSchemaLocations()
    • setSchemaLocations

      public void setSchemaLocations(List<String> schemaLocations)
    • getInvoker

      public org.apache.cxf.service.invoker.Invoker getInvoker()
    • setInvoker

      public void setInvoker(org.apache.cxf.service.invoker.Invoker invoker)
    • setWsdlLocation

      public void setWsdlLocation(String location)
      Specifies the location of the WSDL defining the service interface used by the factory to create services. Typically, the WSDL location is specified as a URL.
      Parameters:
      location - the URL of the WSDL defining the service interface
    • getWsdlLocation

      public String getWsdlLocation()