コントラクト優先のアプローチを使用して、CXF を使用して WSDL から Web サービスを生成しました。
Web サービスは Tomcat 7 で正常にロードされ、SOAP メッセージに適切に応答します。
しかし、WSDL および XSD から自動生成された Java クラスについては理解していますが、エントリ ポイントがどこにあるかはわかりません (たとえば、検証を有効にするため)。
おなじみの main() メソッドはデフォルトのエントリ ポイントにすぎず、必須ではないため、CXF はその目的のために別のエントリ ポイントを使用すると想定しています。
(CXF プラグインを含む pom.xml を使用して) Web サービスをビルドすると、2 つのパッケージのみが生成されます (動作する Web サービスを確立するのに十分です)。
- 1 つは WSDL 自体用で、3 つの Java モジュールのみを含みます: ObjectFactory.java、MyBinding.java、MyService.java
- 2 つ目は XSD スキーマ用で、スキーマで定義されたすべてのタイプの Java クラスを含みます。
という名前のクラスを拡張する MyService.java が、Service
そのエントリ ポイントを探すべき場所ではないかと疑っています。しかし、それはどのように「魔法」を行うのでしょうか?
ところで、Tomcat コンソールからこれを把握しようとしましたが、起動時のすべての Web サービス ログです。
Oct 4, 2013 11:27:47 AM org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization started
Oct 4, 2013 11:27:47 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing Root WebApplicationContext: startup date [Fri Oct 04 11:27:47 EDT 2013]; root of context hierarchy
Oct 4, 2013 11:27:47 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [beans.xml]
Oct 4, 2013 11:27:47 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [META-INF/cxf/cxf.xml]
Oct 4, 2013 11:27:47 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [META-INF/cxf/cxf-extension-soap.xml]
Oct 4, 2013 11:27:47 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [META-INF/cxf/cxf-servlet.xml]
Oct 4, 2013 11:27:47 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@17392df: defining beans [org.springframework.context.
annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.anno
tation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,cxf,org.apache.cxf.bus.spring.BusWiringBeanF
actoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.binding.soap.SoapBindin
gFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,myserviceWS,myserviceBinding]; root of factor
y hierarchy
Oct 4, 2013 11:27:47 AM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
INFO: Creating Service {http://myws.example.com/ns}MyService from WSDL: file:/C:/Users/Daniel/myws/src/main/wsdl/myws.wsdl
Oct 4, 2013 11:27:48 AM org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be /myservice/soap
Oct 4, 2013 11:27:48 AM org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization completed in 1107 ms
CXF は実装の詳細を非常にうまく隠しているようですが、初期化のカスタマイズをフックする場所を知りたいです。