kr.co.hit.live.ws.cxf.jaxws
Class JaxWsServiceFactory

java.lang.Object
  extended by org.apache.cxf.interceptor.AbstractBasicInterceptorProvider
      extended by org.apache.cxf.endpoint.AbstractEndpointFactory
          extended by org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory
              extended by org.apache.cxf.frontend.ServerFactoryBean
                  extended by org.apache.cxf.jaxws.JaxWsServerFactoryBean
                      extended by kr.co.hit.live.ws.cxf.jaxws.JaxWsServiceFactory
All Implemented Interfaces:
org.apache.cxf.interceptor.InterceptorProvider

public class JaxWsServiceFactory
extends org.apache.cxf.jaxws.JaxWsServerFactoryBean

CXF의 FrontEnd인 JaxWsServerFactoryBean 클래스를 상속받아서 내부적으로 ServiceNameTargetProxy 객체를 사용하여 구현 클래스를 설정하도록 하였다. CXF의 WebService는 hot-deploy할 수 없으므로 별도 컨테이너에서 ServiceFactory객체를 정의하고 여기에서 실제 업무 컨테이너의 서비스 객체로 실행을 전달하는 형태로 WebService를 처리한다. ServiceFactory용 설정 파일 예시이다.

  • interface : 웹서비스가 제공할 서비스의 인터페이스이다. 이것은 WEB-INF/classes 아래에 위치시킨다.
  • address : 웹서비스 주소이다. WSDL을 받아올수 있다. http://..../cmcnu/ws/Sample?wsdl
  • implementor : 웹서비스 구현 객체를 얻어오기 위한 업무 서비스의 이름이다. 업무 컨테이너 설정된 이름이다.
     <?xml version='1.0' encoding='euc-kr'?>
     <services pre-init="false">
         <service name="SampleService"
                  class="kr.co.hit.ws.cxf.jaxws.JaxWsServiceFactory"
                  activate="true"
                  pre-init="true"
                  singleton="true">
              <property name="interface" value="kr.co.hit.test.web.ws.Sample"/>
              <property name="address" value="/Sample"/>
              <property name="implementor" value="testapp.Sample"/>
         </service>
     </services>
     
    WebService용 인터페이스는 아래와 같이 정의한다.
     package kr.co.hit.test.web.ws;
    
     import javax.jws.WebMethod;
     import javax.jws.WebParam;
     import javax.jws.WebService;
    
     &at;WebService
     public interface Sample {
    

    Author:
    kimhd

    Field Summary
     
    Fields inherited from class org.apache.cxf.jaxws.JaxWsServerFactoryBean
    doInit, handlers
     
    Fields inherited from class org.apache.cxf.endpoint.AbstractEndpointFactory
    address, bindingConfig, bindingFactory, bindingId, bus, conduitSelector, dataBinding, destinationFactory, endpointReference, features, properties, publishedEndpointUrl, serviceName, transportId
     
    Constructor Summary
    JaxWsServiceFactory()
               
     
    Method Summary
     void createService()
               
     String getImplementor()
               
     void setImplementor(String svcName)
               
     void setInterface(String infName)
               
     void setServiceContainer(kr.co.hit.live.container.ServiceContainer svcContainer)
               
     
    Methods inherited from class org.apache.cxf.jaxws.JaxWsServerFactoryBean
    addHandlers, create, createBindingInfo, createInvoker, getHandlers, getJaxWsServiceFactory, initializeAnnotationInterceptors, injectResources, setBlockInjection, setBlockPostConstruct, setHandlers
     
    Methods inherited from class org.apache.cxf.frontend.ServerFactoryBean
    applyFeatures, destroy, detectTransportIdFromAddress, getBeanName, getInvoker, getSchemaLocations, getServer, getServiceBean, getServiceBeanClass, getWSDLEndpointFactory, getWsdlLocation, init, initializeServiceFactory, isStart, setInvoker, setSchemaLocations, setServer, setServiceBean, setStart, setWsdlLocation
     
    Methods inherited from class org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory
    createEndpoint, createEndpointInfo, createSoapBindingConfig, getServiceClass, getServiceFactory, getWsdlURL, setServiceClass, setServiceFactory, setWsdlURL
     
    Methods inherited from class org.apache.cxf.endpoint.AbstractEndpointFactory
    checkPrivateEndpoint, getAddress, getBindingConfig, getBindingFactory, getBindingId, getBus, getConduitSelector, getDataBinding, getDestinationFactory, getEndpointName, getFeatures, getProperties, getProperties, getPublishedEndpointUrl, getServiceName, getTransportId, initializeAnnotationInterceptors, initializeAnnotationInterceptors, setAddress, setBindingConfig, setBindingFactory, setBindingId, setBus, setConduitSelector, setDataBinding, setDestinationFactory, setEndpointName, setEndpointReference, setFeatures, setProperties, setPublishedEndpointUrl, setServiceName, setTransportId
     
    Methods inherited from class org.apache.cxf.interceptor.AbstractBasicInterceptorProvider
    getInFaultInterceptors, getInInterceptors, getOutFaultInterceptors, getOutInterceptors, setInFaultInterceptors, setInInterceptors, setOutFaultInterceptors, setOutInterceptors
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     

    Constructor Detail

    JaxWsServiceFactory

    public JaxWsServiceFactory()
    Method Detail

    setInterface

    public void setInterface(String infName)

    setImplementor

    public void setImplementor(String svcName)

    getImplementor

    public String getImplementor()

    setServiceContainer

    public void setServiceContainer(kr.co.hit.live.container.ServiceContainer svcContainer)

    createService

    public void createService()


    Copyright © 2014. All Rights Reserved.