Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-9344

Certain SOAP messages cause NPE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Invalid
    • 2.16.0
    • None
    • camel-cxf
    • None
    • with any version of CXF (tested with 3.1.3). On Windows 8.1 or Windows 10

    • Unknown

    Description

      The error is listed below along with a setup (camel, cxf, wsdl, maven pom) that can reproduce the issue. This ONLY affects 2.16.0 (not 2.15.x).

      org.apache.camel.InvalidPayloadException: No body available of type: java.lang.String but has value: org.apache.camel.component.cxf.CxfPayload@2ff1ea33 of type: org.apache.camel.component.cxf.CxfPayload on: Message: org.apache.camel.component.cxf.CxfPayload@2ff1ea33. Caused by: Error during type conversion from type: java.lang.String to the required type: java.lang.String with value org.apache.camel.component.cxf.CxfPayload@2ff1ea33 due java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state. Exchange[ID-John-PCI-55819-1447771175585-0-2][Message: org.apache.camel.component.cxf.CxfPayload@2ff1ea33]. Caused by: [org.apache.camel.TypeConversionException - Error during type conversion from type: java.lang.String to the required type: java.lang.String with value org.apache.camel.component.cxf.CxfPayload@2ff1ea33 due java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state]

      at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:101)

      at org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBodyProcessor.java:91)

      at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)

      at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:163)

      at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)

      at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)

      at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)

      at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)

      at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)

      at org.apache.camel.component.cxf.CxfConsumer$1.asyncInvoke(CxfConsumer.java:95)

      at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:75)

      at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)

      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

      at java.util.concurrent.FutureTask.run(FutureTask.java:266)

      at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)

      at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)

      at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)

      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)

      at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)

      at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)

      at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:234)

      at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)

      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1129)

      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1065)

      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

      at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)

      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)

      at org.eclipse.jetty.server.Server.handle(Server.java:499)

      at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)

      at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)

      at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)

      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)

      at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)

      at java.lang.Thread.run(Thread.java:745)

      Caused by: org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: java.lang.String with value org.apache.camel.component.cxf.CxfPayload@2ff1ea33 due java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state

      at org.apache.camel.impl.converter.BaseTypeConverterRegistry.createTypeConversionException(BaseTypeConverterRegistry.java:610)

      at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:177)

      at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:99)

      ... 33 more

      Caused by: org.apache.camel.RuntimeCamelException: java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state

      at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1642)

      at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:1247)

      at org.apache.camel.impl.converter.StaticMethodFallbackTypeConverter.convertTo(StaticMethodFallbackTypeConverter.java:62)

      at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:333)

      at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:168)

      ... 34 more

      Caused by: java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state

      at javax.xml.transform.stax.StAXSource.<init>(StAXSource.java:155)

      at org.apache.camel.component.cxf.converter.CxfPayloadConverter.convertTo(CxfPayloadConverter.java:209)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

      at java.lang.reflect.Method.invoke(Method.java:497)

      at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:1243)

      ... 37 more

      [ qtp1541232265-21] PhaseInterceptorChain WARN Application

      {urn:pci:OneWayService:v1}

      PciOneWayService#

      {urn:pci:OneWayService:v1}

      GetMessage has thrown exception, unwinding now

      org.apache.cxf.interceptor.Fault: No body available of type: java.lang.String but has value: org.apache.camel.component.cxf.CxfPayload@2ff1ea33 of type: org.apache.camel.component.cxf.CxfPayload on: Message: org.apache.camel.component.cxf.CxfPayload@2ff1ea33. Caused by: Error during type conversion from type: java.lang.String to the required type: java.lang.String with value org.apache.camel.component.cxf.CxfPayload@2ff1ea33 due java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state. Exchange[ID-John-PCI-55819-1447771175585-0-2][Message: org.apache.camel.component.cxf.CxfPayload@2ff1ea33]. Caused by: [org.apache.camel.TypeConversionException - Error during type conversion from type: java.lang.String to the required type: java.lang.String with value org.apache.camel.component.cxf.CxfPayload@2ff1ea33 due java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state]

      at org.apache.camel.component.cxf.CxfConsumer$1.checkFailure(CxfConsumer.java:235)

      at org.apache.camel.component.cxf.CxfConsumer$1.setResponseBack(CxfConsumer.java:209)

      at org.apache.camel.component.cxf.CxfConsumer$1.asyncInvoke(CxfConsumer.java:110)

      at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:75)

      at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)

      at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)

      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)

      at org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:278)

      at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)

      at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)

      at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:234)

      at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)

      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1129)

      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1065)

      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

      at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:189)

      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)

      at org.eclipse.jetty.server.Server.handleAsync(Server.java:549)

      at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)

      at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)

      at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)

      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)

      at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)

      at java.lang.Thread.run(Thread.java:745)

      Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.lang.String but has value: org.apache.camel.component.cxf.CxfPayload@2ff1ea33 of type: org.apache.camel.component.cxf.CxfPayload on: Message: org.apache.camel.component.cxf.CxfPayload@2ff1ea33. Caused by: Error during type conversion from type: java.lang.String to the required type: java.lang.String with value org.apache.camel.component.cxf.CxfPayload@2ff1ea33 due java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state. Exchange[ID-John-PCI-55819-1447771175585-0-2][Message: org.apache.camel.component.cxf.CxfPayload@2ff1ea33]. Caused by: [org.apache.camel.TypeConversionException - Error during type conversion from type: java.lang.String to the required type: java.lang.String with value org.apache.camel.component.cxf.CxfPayload@2ff1ea33 due java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state]

      at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:101)

      at org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBodyProcessor.java:91)

      at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)

      at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:163)

      at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)

      at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)

      at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)

      at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)

      at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190)

      at org.apache.camel.component.cxf.CxfConsumer$1.asyncInvoke(CxfConsumer.java:95)

      at org.apache.camel.component.cxf.CxfConsumer$1.invoke(CxfConsumer.java:75)

      at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)

      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

      at java.util.concurrent.FutureTask.run(FutureTask.java:266)

      at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)

      at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)

      at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)

      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)

      at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)

      at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)

      at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:234)

      at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)

      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1129)

      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1065)

      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

      at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)

      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)

      at org.eclipse.jetty.server.Server.handle(Server.java:499)

      at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)

      ... 5 more

      Caused by: org.apache.camel.TypeConversionException: Error during type conversion from type: java.lang.String to the required type: java.lang.String with value org.apache.camel.component.cxf.CxfPayload@2ff1ea33 due java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state

      at org.apache.camel.impl.converter.BaseTypeConverterRegistry.createTypeConversionException(BaseTypeConverterRegistry.java:610)

      at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:177)

      at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:99)

      ... 33 more

      Caused by: org.apache.camel.RuntimeCamelException: java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state

      at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1642)

      at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:1247)

      at org.apache.camel.impl.converter.StaticMethodFallbackTypeConverter.convertTo(StaticMethodFallbackTypeConverter.java:62)

      at org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:333)

      at org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:168)

      ... 34 more

      Caused by: java.lang.IllegalStateException: StAXSource(XMLStreamReader) with XMLStreamReadernot in XMLStreamConstants.START_DOCUMENT or XMLStreamConstants.START_ELEMENT state

      at javax.xml.transform.stax.StAXSource.<init>(StAXSource.java:155)

      at org.apache.camel.component.cxf.converter.CxfPayloadConverter.convertTo(CxfPayloadConverter.java:209)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

      at java.lang.reflect.Method.invoke(Method.java:497)

      at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:1243)

      ... 37 more

      Camel config:
      <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="
      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
      http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

      <import resource="classpath:META-INF/spring/camel-cxf.xml" />

      <camelContext xmlns="http://camel.apache.org/schema/spring" trace="true">
      <!-- here is a sample which processes the input files
      (leaving them in place - see the 'noop' flag)
      then performs content based routing on the message using XPath -->
      <route>
      <from uri="cxf:bean:oneWayTtEndpoint"/>
      <log message="request received"/>
      <convertBodyTo type="java.lang.String"/>
      </route>
      </camelContext>

      </beans>

      CXF config:

      <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:http="http://cxf.apache.org/transports/http/configuration"
      xmlns:cxf="http://camel.apache.org/schema/cxf"
      xsi:schemaLocation="
      http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
      http://cxf.apache.org/transports/http/configuration
      http://cxf.apache.org/schemas/configuration/http-conf.xsd
      http://camel.apache.org/schema/cxf
      http://camel.apache.org/schema/cxf/camel-cxf.xsd
      ">

      <import resource="classpath:META-INF/cxf/cxf.xml" />

      <cxf:cxfEndpoint id="oneWayTtEndpoint"
      address="http://0.0.0.0:9003/test"
      serviceName="ns1:PciOneWayService" endpointName="ns1:PciOneWayService"
      xmlns:ns1="urn:pci:OneWayService:v1">
      <cxf:properties>
      <entry key="dataFormat" value="PAYLOAD" />
      <entry key="schema-validation-enabled" value="false" />
      <entry key="exceptionMessageCauseEnabled" value="false" />
      <entry key="faultStackTraceEnabled" value="false" />
      <entry key="wsdlURL" value="wsdl/oneway/MessageServiceV1.wsdl" />
      <entry key="loggingFeatureEnabled" value="true" />
      </cxf:properties>
      </cxf:cxfEndpoint>

      </beans>

      WSDL:

      <?xml version="1.0" encoding="utf-8"?>
      <wsdl:definitions
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:tns="urn:pci:OneWayService:v1"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
      targetNamespace="urn:pci:OneWayService:v1">
      <wsdl:types>
      <xsd:schema elementFormDefault="qualified" targetNamespace="urn:pci:OneWayService:v1">
      <xsd:element name="Context">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="TransactionId" type="xsd:string" minOccurs="0" />
      <xsd:element name="TransactionType" type="tns:transactionTypeType" />
      <xsd:element name="RefTransactionId" type="xsd:string" minOccurs="0" />
      <xsd:element name="SourceAccountId" type="xsd:string" minOccurs="0"/>
      <xsd:element name="DestinationAccountId" type="xsd:string" minOccurs="0"/>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      <xsd:element name="Data">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="Record" maxOccurs="unbounded">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="Item" maxOccurs="unbounded">
      <xsd:complexType>
      <xsd:simpleContent>
      <xsd:extension base="xsd:string">
      <xsd:attribute name="name" use="required"/>
      <xsd:attribute name="type" use="optional"/>
      </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
      </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="name" use="optional"/>
      <xsd:attribute name="id" use="optional"/>
      </xsd:complexType>
      </xsd:element>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      <xsd:simpleType name="returnEnum">
      <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Ok"/>
      <xsd:enumeration value="Error"/>
      <xsd:enumeration value="More"/>
      <xsd:enumeration value="None"/>
      </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="transactionTypeType">
      <xsd:restriction base="xsd:string">
      <xsd:minLength value="1"/>
      </xsd:restriction>
      </xsd:simpleType>
      <!-- Operations -->
      <xsd:element name="SubmitMessage">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element ref="tns:Context"/>
      <xsd:element ref="tns:Data"/>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      <xsd:element name="SubmitMessageResponse">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="ReturnCode" type="tns:returnEnum"/>
      <xsd:element name="ReturnMessage" type="xsd:string" minOccurs="0"/>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      <xsd:element name="GetMessage">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="Remove" type="xsd:boolean" minOccurs="0"/>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      <xsd:element name="GetMessageResponse">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="ReturnCode" type="tns:returnEnum"/>
      <xsd:element name="ReturnMessage" type="xsd:string" minOccurs="0"/>
      <xsd:element name="AckId" type="xsd:string" minOccurs="0" />
      <xsd:element ref="tns:Context" minOccurs="0"/>
      <xsd:element ref="tns:Data" minOccurs="0"/>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      <xsd:element name="AcknowledgeMessage">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="AckId" type="xsd:string" />
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      <xsd:element name="AcknowledgeMessageResponse">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="ReturnCode" type="tns:returnEnum"/>
      <xsd:element name="ReturnMessage" type="xsd:string" minOccurs="0"/>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      </xsd:schema>
      </wsdl:types>
      <wsdl:message name="SubmitMessageSoapIn">
      <wsdl:part name="parameters" element="tns:SubmitMessage" />
      </wsdl:message>
      <wsdl:message name="SubmitMessageSoapOut">
      <wsdl:part name="parameters" element="tns:SubmitMessageResponse" />
      </wsdl:message>
      <wsdl:message name="GetMessageSoapIn">
      <wsdl:part name="parameters" element="tns:GetMessage" />
      </wsdl:message>
      <wsdl:message name="GetMessageSoapOut">
      <wsdl:part name="parameters" element="tns:GetMessageResponse" />
      </wsdl:message>
      <wsdl:message name="AcknowledgeMessageSoapIn">
      <wsdl:part name="parameters" element="tns:AcknowledgeMessage" />
      </wsdl:message>
      <wsdl:message name="AcknowledgeMessageSoapOut">
      <wsdl:part name="parameters" element="tns:AcknowledgeMessageResponse" />
      </wsdl:message>
      <wsdl:portType name="OneWayServiceSoap">
      <wsdl:operation name="SubmitMessage">
      <wsdl:input message="tns:SubmitMessageSoapIn" />
      <wsdl:output message="tns:SubmitMessageSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="GetMessage">
      <wsdl:input message="tns:GetMessageSoapIn" />
      <wsdl:output message="tns:GetMessageSoapOut" />
      </wsdl:operation>
      <wsdl:operation name="AcknowledgeMessage">
      <wsdl:input message="tns:AcknowledgeMessageSoapIn" />
      <wsdl:output message="tns:AcknowledgeMessageSoapOut" />
      </wsdl:operation>
      </wsdl:portType>
      <wsdl:binding name="OneWayServiceBinding" type="tns:OneWayServiceSoap">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
      <wsdl:operation name="SubmitMessage">
      <soap:operation soapAction="urn:pci:OneWayService:v1/SubmitMessage" />
      <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="GetMessage">
      <soap:operation soapAction="urn:pci:OneWayService:v1/GetMessage" />
      <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="AcknowledgeMessage">
      <soap:operation soapAction="urn:pci:OneWayService:v1/AcknowledgeMessage" />
      <wsdl:input>
      <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal" />
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
      <wsdl:service name="PciOneWayService">
      <wsdl:port name="PciOneWayService" binding="tns:OneWayServiceBinding">
      <soap:address location="http://localhost:9003/test/MessageServiceV1" />
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>

      Maven POM:

      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

      <modelVersion>4.0.0</modelVersion>

      <groupId>com.pci</groupId>
      <artifactId>TestCxfWs</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>

      <name>A Camel Spring Route</name>
      <url>http://www.myorganization.org</url>

      <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      </properties>

      <dependencies>
      <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-transports-http-jetty</artifactId>
      <version>3.1.3</version>
      </dependency>
      <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-ws-security</artifactId>
      <version>3.1.3</version>
      </dependency>
      <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</artifactId>
      <version>2.16.0</version>
      </dependency>
      <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-spring</artifactId>
      <version>2.16.0</version>
      </dependency>
      <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-cxf</artifactId>
      <version>2.16.0</version>
      </dependency>

      <!-- logging -->
      <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.12</version>
      </dependency>
      <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.12</version>
      </dependency>
      <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
      </dependency>

      <!-- testing -->
      <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-test-spring</artifactId>
      <version>2.16.0</version>
      <scope>test</scope>
      </dependency>

      </dependencies>

      <build>
      <defaultGoal>install</defaultGoal>

      <plugins>
      <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.3</version>
      <configuration>
      <source>1.7</source>
      <target>1.7</target>
      </configuration>
      </plugin>
      <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-resources-plugin</artifactId>
      <version>2.6</version>
      <configuration>
      <encoding>UTF-8</encoding>
      </configuration>
      </plugin>

      <!-- allows the route to be ran via 'mvn camel:run' -->
      <plugin>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-maven-plugin</artifactId>
      <version>2.16.0</version>
      </plugin>
      </plugins>
      </build>

      </project>

      Attachments

        1. TestCxfWs - Copy.zip
          8 kB
          John Yin

        Activity

          People

            ay Akitoshi Yoshida
            bocamel John Yin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: