org.apache.cxf.jaxws.spring
Class JaxWsWebServicePublisherBeanPostProcessor
java.lang.Object
org.springframework.context.support.ApplicationObjectSupport
org.springframework.web.context.support.WebApplicationObjectSupport
org.springframework.web.servlet.handler.AbstractHandlerMapping
org.springframework.web.servlet.handler.AbstractUrlHandlerMapping
org.apache.cxf.jaxws.spring.JaxWsWebServicePublisherBeanPostProcessor
- All Implemented Interfaces:
- org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.context.ApplicationContextAware, org.springframework.core.Ordered, org.springframework.web.context.ServletConfigAware, org.springframework.web.context.ServletContextAware, org.springframework.web.servlet.HandlerMapping
public class JaxWsWebServicePublisherBeanPostProcessor
- extends org.springframework.web.servlet.handler.AbstractUrlHandlerMapping
- implements org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.web.context.ServletConfigAware, org.springframework.beans.factory.BeanFactoryAware
Bean to scan context for potential web services. This scans the beans for classes that
are annotated with @WebService. Excepting those already declared via the JAX-WS Spring
schema, it launches each as an endpoint.
By default, it sets up a default JaxWsServiceFactory and JAX-B data binding,
and then creates a URL under /services/ based on the service name. Properties of the bean
permit you to configure this; if you set prototypeServiceFactoryBeanName, the code
will fetch that bean. It must be a prototype, since service factory object can't be used
for more than one endpoint. Similarly, prototypeDataBindingBeanName can be used to
control the data binding.
Note that this class uses org.apache.cxf.transport.servlet#CXFServlet
from the
cxf-rt-transports-http-jetty library, which is not part of
the standard dependencies of the JAX-WS front
end.
If you use this processor in an environment with no servlet, it will still launch the
endpoints using the embedded CXF server.
Fields inherited from class org.springframework.context.support.ApplicationObjectSupport |
logger |
Fields inherited from interface org.springframework.web.servlet.HandlerMapping |
BEST_MATCHING_PATTERN_ATTRIBUTE, INTROSPECT_TYPE_LEVEL_MAPPING, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE |
Fields inherited from interface org.springframework.core.Ordered |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
Methods inherited from class org.springframework.web.servlet.handler.AbstractUrlHandlerMapping |
buildPathExposingHandler, exposePathWithinMapping, exposeUriTemplateVariables, getHandlerInternal, getHandlerMap, getRootHandler, lookupHandler, registerHandler, registerHandler, setLazyInitHandlers, setRootHandler, supportsTypeLevelMappings, validateHandler |
Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping |
adaptInterceptor, detectMappedInterceptors, extendInterceptors, getAdaptedInterceptors, getDefaultHandler, getHandler, getHandlerExecutionChain, getMappedInterceptors, getOrder, getPathMatcher, getUrlPathHelper, initApplicationContext, initInterceptors, setAlwaysUseFullPath, setDefaultHandler, setInterceptors, setOrder, setPathMatcher, setRemoveSemicolonContent, setUrlDecode, setUrlPathHelper |
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport |
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext |
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport |
getApplicationContext, getMessageSourceAccessor, requiredContextClass, setApplicationContext |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JaxWsWebServicePublisherBeanPostProcessor
public JaxWsWebServicePublisherBeanPostProcessor()
throws SecurityException,
NoSuchMethodException,
ClassNotFoundException
- Throws:
SecurityException
NoSuchMethodException
ClassNotFoundException
setUrlPrefix
public void setUrlPrefix(String urlPrefix)
- Set the prefix for the generated endpoint URLs.
- Parameters:
urlPrefix
-
postProcessBeforeInitialization
public Object postProcessBeforeInitialization(Object bean,
String beanName)
throws org.springframework.beans.BeansException
- Specified by:
postProcessBeforeInitialization
in interface org.springframework.beans.factory.config.BeanPostProcessor
- Throws:
org.springframework.beans.BeansException
postProcessAfterInitialization
public Object postProcessAfterInitialization(Object bean,
String beanName)
throws org.springframework.beans.BeansException
- Specified by:
postProcessAfterInitialization
in interface org.springframework.beans.factory.config.BeanPostProcessor
- Throws:
org.springframework.beans.BeansException
setServletConfig
public void setServletConfig(javax.servlet.ServletConfig servletConfig)
- Specified by:
setServletConfig
in interface org.springframework.web.context.ServletConfigAware
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
throws org.springframework.beans.BeansException
- Specified by:
setBeanFactory
in interface org.springframework.beans.factory.BeanFactoryAware
- Throws:
org.springframework.beans.BeansException
getPrototypeServerFactoryBeanName
public String getPrototypeServerFactoryBeanName()
setPrototypeServerFactoryBeanName
public void setPrototypeServerFactoryBeanName(String prototypeServerFactoryBeanName)
- Set the server factory for all services launched by this bean. This must be the name of a
scope='prototype' bean that implements
org.apache.cxf.frontend#ServerFactoryBean
.
- Parameters:
prototypeServerFactoryBeanName
-
getPrototypeDataBindingBeanName
public String getPrototypeDataBindingBeanName()
setPrototypeDataBindingBeanName
public void setPrototypeDataBindingBeanName(String prototypeDataBindingBeanName)
- Set the data binding for all services launched by this bean. This must be the name of a
scope='prototype' bean that implements
org.apache.cxf.databinding#DataBinding
.
- Parameters:
prototypeDataBindingBeanName
-
isCustomizedServerFactory
public boolean isCustomizedServerFactory()
- For Unit Test.
- Returns:
isCustomizedDataBinding
public boolean isCustomizedDataBinding()
- For Unit Test.
- Returns:
Apache CXF