You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Brian Taylor <br...@briantaylor.us> on 2009/08/12 20:48:15 UTC
CXF SE: null XML Payload after unmarshall
Hello,
I really appreciate any help on this.
We're using a File BC SU [1] to pick up an XML message [2] (of which I added
a JBI message wrapper manually so the CXF SE wouldn't gripe - I've also used
a SOAP wrapper with the same end result), send the message to an EIP SE
pipeline route SU [3], which sends it first to a CXF SE SU [4] and then onto
a WSN-2005 SE SU (not important yet). The Java class for the CXF SE SU pojo
is [5]. The resultant WSDL upon deployment is [6]. The logged [7] error that
we get is a NullPointerException in the Java class [5] at:
xmlDoc.getTransferHeader(). It appears the CXF SE is calling the 'save'
method with a 'null' argument. I don't see any marshalling errors so I'm
really puzzled at what the problem is.
Also, is there a way to get the CXF SE Endpoint to set not use the JBI or
SOAP wrappers? I've tried to set it in the xbean and it will accept the
useJBIWrapper="false", but when I also add useSOAPEnvelope="false" it says
that the useSOAPEnvelope is not a property of the CxfSeEndpoint (even though
the code proves otherwise).
Thanks again for any help, this is really stumping me.
Brian
[1] File BC SU
<file:poller
service="stSvc:PipelineRoutingServiceFile"
endpoint="SaveTransferDocumentRouteFile"
targetService="stSvc:PipelineRoutingService"
targetEndpoint="SaveTransferDocumentRoute"
file="c:/FilePollingService/TransferDocumentFileDrop"
archive="c:/FilePollingService/TransferDocumentFileDropArchive"
delay="5000"
period="10000"
autoCreateDirectory="true"
deleteFile="true"/>
[2] Message
<jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:srv="http://domain.services.mycompany.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="save"
type="srv:saveRequest"
version="1.0">
<jbi:part>
<dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
<dom:TransferHeader description="JBI Wrapped with routing">
<dom:Organization id="123456"/>
</dom:TransferHeader>
</dom:TransferDocument>
</jbi:part>
</jbi:message>
[3] EIP Pipeline Route SU
<eip:pipeline
service="stSvc:PipelineRoutingService"
endpoint="SaveTransferDocumentRoute">
<eip:transformer>
<eip:exchange-target
service="stSvc:TransferDocumentDataAccessImplService"
endpoint="TransferDocumentDataAccessImplPort"
operation="stSvc:save"/>
</eip:transformer>
<eip:target>
<eip:exchange-target
service="wsn:NotificationBroker"
endpoint="Broker"
operation="wsn:Notify"/>
</eip:target>
</eip:pipeline>
[4] CXF SE SU
<cxfse:endpoint>
<cxfse:pojo>
<bean
class="com.mycompany.services.domain.TransferDocumentDataAccessImpl"/>
</cxfse:pojo>
</cxfse:endpoint>
[5] TransferDocumentDataAccessImplService (save method)
public TransferDocument save(TransferDocument xmlDoc) throws
ImproperArgumentWebFault {
TransferHeader xmlHdr = xmlDoc.getTransferHeader();
if(xmlHdr==null)
throw new
ImproperArgumentWebFault("TransferDocumentDataAccess.save():TransferDocument="+xmlDoc);
[6] Generated WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:ns1="http://cxf.apache.org/transports/jbi"
xmlns:tns="http://domain.services.mycompany.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="TransferDocumentDataAccessImplService"
targetNamespace="http://domain.services.mycompany.com/">
<wsdl:types>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ns1="http://www.mycompany.com/domain"
attributeFormDefault="unqualified"
elementFormDefault="unqualified"
targetNamespace="http://domain.services.mycompany.com/"
xmlns:tns="http://domain.services.mycompany.com/">
<xs:import namespace="http://www.mycompany.com/domain"/>
<xs:element name="load" type="tns:load"/>
<xs:element name="loadResponse" type="tns:loadResponse"/>
<xs:element name="save" type="tns:save"/>
<xs:element name="saveResponse" type="tns:saveResponse"/>
<xs:complexType name="load">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="loadResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="save">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="saveResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ImproperArgumentWebFault"
type="tns:ImproperArgumentWebFault"/>
<xs:complexType name="ImproperArgumentWebFault">
<xs:sequence/>
</xs:complexType>
<xs:element name="DataAccessRetryWebFault"
type="tns:DataAccessRetryWebFault"/>
<xs:complexType name="DataAccessRetryWebFault">
<xs:sequence/>
</xs:complexType>
<xs:element name="DataAccessNotFoundWebFault"
type="tns:DataAccessNotFoundWebFault"/>
<xs:complexType name="DataAccessNotFoundWebFault">
<xs:sequence/>
</xs:complexType>
<xs:element name="DataAccessConstraintWebFault"
type="tns:DataAccessConstraintWebFault"/>
<xs:complexType name="DataAccessConstraintWebFault">
<xs:sequence/>
</xs:complexType>
<xs:element name="DataAccessDuplicateWebFault"
type="tns:DataAccessDuplicateWebFault"/>
<xs:complexType name="DataAccessDuplicateWebFault">
<xs:sequence/>
</xs:complexType>
</xs:schema>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.mycompany.com/domain"
attributeFormDefault="unqualified" elementFormDefault="unqualified"
targetNamespace="http://www.mycompany.com/domain">
<xs:element name="TransferDocument" nillable="true"
type="tns:TransferDocument"/>
<xs:element name="TransferHeader" nillable="true"
type="tns:TransferHeader"/>
<xs:complexType name="TransferDocument">
<xs:sequence>
<xs:element minOccurs="0" name="TransferHeader" type="tns:TransferHeader"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="TransferDetail"
type="tns:TransferDetail"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TransferHeader">
<xs:sequence>
<xs:element minOccurs="0" name="Organization" type="tns:Organization"/>
</xs:sequence>
<xs:attribute name="transferId" type="xs:int"/>
</xs:complexType>
<xs:complexType name="Organization">
<xs:sequence>
</xs:sequence>
<xs:attribute name="id" type="xs:int"/>
</xs:complexType>
<xs:complexType name="TransferDetail">
<xs:sequence>
</xs:sequence>
<xs:attribute name="transferDetailId" type="xs:int"/>
<xs:attribute name="transferId" type="xs:int"/>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="DataAccessConstraintWebFault">
<wsdl:part element="tns:DataAccessConstraintWebFault"
name="DataAccessConstraintWebFault">
</wsdl:part>
</wsdl:message>
<wsdl:message name="ImproperArgumentWebFault">
<wsdl:part element="tns:ImproperArgumentWebFault"
name="ImproperArgumentWebFault">
</wsdl:part>
</wsdl:message>
<wsdl:message name="load">
<wsdl:part element="tns:load" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="DataAccessDuplicateWebFault">
<wsdl:part element="tns:DataAccessDuplicateWebFault"
name="DataAccessDuplicateWebFault">
</wsdl:part>
</wsdl:message>
<wsdl:message name="DataAccessRetryWebFault">
<wsdl:part element="tns:DataAccessRetryWebFault"
name="DataAccessRetryWebFault">
</wsdl:part>
</wsdl:message>
<wsdl:message name="DataAccessNotFoundWebFault">
<wsdl:part element="tns:DataAccessNotFoundWebFault"
name="DataAccessNotFoundWebFault">
</wsdl:part>
</wsdl:message>
<wsdl:message name="loadResponse">
<wsdl:part element="tns:loadResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="saveResponse">
<wsdl:part element="tns:saveResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="save">
<wsdl:part element="tns:save" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="TransferDocumentDataAccess">
<wsdl:operation name="load">
<wsdl:input message="tns:load" name="load">
</wsdl:input>
<wsdl:output message="tns:loadResponse" name="loadResponse">
</wsdl:output>
<wsdl:fault message="tns:DataAccessNotFoundWebFault"
name="DataAccessNotFoundWebFault">
</wsdl:fault>
<wsdl:fault message="tns:ImproperArgumentWebFault"
name="ImproperArgumentWebFault">
</wsdl:fault>
<wsdl:fault message="tns:DataAccessRetryWebFault"
name="DataAccessRetryWebFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="save">
<wsdl:input message="tns:save" name="save">
</wsdl:input>
<wsdl:output message="tns:saveResponse" name="saveResponse">
</wsdl:output>
<wsdl:fault message="tns:DataAccessConstraintWebFault"
name="DataAccessConstraintWebFault">
</wsdl:fault>
<wsdl:fault message="tns:ImproperArgumentWebFault"
name="ImproperArgumentWebFault">
</wsdl:fault>
<wsdl:fault message="tns:DataAccessDuplicateWebFault"
name="DataAccessDuplicateWebFault">
</wsdl:fault>
<wsdl:fault message="tns:DataAccessRetryWebFault"
name="DataAccessRetryWebFault">
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TransferDocumentDataAccessImplServiceJBIBinding"
type="tns:TransferDocumentDataAccess">
<wsdl:operation name="load">
<wsdl:input name="load">
</wsdl:input>
<wsdl:output name="loadResponse">
</wsdl:output>
<wsdl:fault name="DataAccessNotFoundWebFault">
</wsdl:fault>
<wsdl:fault name="ImproperArgumentWebFault">
</wsdl:fault>
<wsdl:fault name="DataAccessRetryWebFault">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="save">
<wsdl:input name="save">
</wsdl:input>
<wsdl:output name="saveResponse">
</wsdl:output>
<wsdl:fault name="DataAccessConstraintWebFault">
</wsdl:fault>
<wsdl:fault name="ImproperArgumentWebFault">
</wsdl:fault>
<wsdl:fault name="DataAccessDuplicateWebFault">
</wsdl:fault>
<wsdl:fault name="DataAccessRetryWebFault">
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TransferDocumentDataAccessImplService">
<wsdl:port binding="tns:TransferDocumentDataAccessImplServiceJBIBinding"
name="TransferDocumentDataAccessImplPort">
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
[7] Logged error
14:03:44,092 | DEBUG | pool-component.servicemix-file-thread-1 |
FileComponent | icemix.file.FilePollerEndpoint 298 | Polling
directory c:\FilePollingService\TransferDocumentFileDrop
14:03:44,108 | DEBUG | pool-component.servicemix-file-thread-1 |
FileComponent | icemix.file.FilePollerEndpoint 310 | Scheduling
file
c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-wrapped-JBI.xml
for processing
14:03:44,124 | DEBUG | pool-component.servicemix-file-thread-2 |
FileComponent | icemix.file.FilePollerEndpoint 330 | Processing
file
c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-wrapped-JBI.xml
14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
FileComponent | emix.common.AsyncBaseLifeCycle 626 | Created
correlation id: ID:172.18.127.170-1230fc5d00b-5:0
14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-file}
14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
exchange with secure broker
14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
SecuredBroker | mix.jbi.security.SecuredBroker 72 | service
name :{http://domain.services.mycompany.com/}PipelineRoutingService
14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
SecuredBroker | mix.jbi.security.SecuredBroker 73 | operation
name :null
14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 | SedaFlow
| emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
14:03:44,264 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 | SedaQueue
| .jbi.nmr.flow.seda.SedaQueue$1 132 |
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@a47962 dequeued
exchange: InOnly[
id: ID:172.18.127.170-1230fc5d00b-5:0
status: Active
role: provider
service: {http://domain.services.mycompany.com/}PipelineRoutingService
endpoint: SaveTransferDocumentRoute
in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:srv="http://domain.services.mycompany.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
type="srv:saveRequest" version="1.0">
<jbi:part>
<dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
<dom:TransferHeader description="JBI Wrapped with routing">
<dom:Organization id="123456"/>
</dom:TransferHeader>
</dom:TransferDocument>
</jbi:part>
</jbi:message>
]
14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 | EIPComponent
| emix.common.AsyncBaseLifeCycle 534 | Received exchange: status: Active,
role: provider
14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 | EIPComponent
| emix.common.AsyncBaseLifeCycle 596 | Retrieved correlation id:
ID:172.18.127.170-1230fc5d00b-5:0
14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 | MemoryStore
| cemix.store.memory.MemoryStore 51 | Storing object with id:
ID:172.18.127.170-1230fc5d00b-5:0
14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 | EIPComponent
| emix.common.AsyncBaseLifeCycle 632 | Correlation id retrieved from
ThreadLocal: ID:172.18.127.170-1230fc5d00b-5:0
14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-eip}
14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
exchange with secure broker
14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
SecuredBroker | mix.jbi.security.SecuredBroker 72 | service
name
:{http://domain.services.mycompany.com/}TransferDocumentDataAccessImplService
14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
SecuredBroker | mix.jbi.security.SecuredBroker 73 | operation
name :{http://domain.services.mycompany.com/}save
14:03:44,327 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 | SedaFlow
| emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
14:03:44,342 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 | SedaQueue
| .jbi.nmr.flow.seda.SedaQueue$1 132 |
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@ad4bb0 dequeued
exchange: InOut[
id: ID:172.18.127.170-1230fc5d00b-4:0
status: Active
role: provider
service:
{http://domain.services.mycompany.com/}TransferDocumentDataAccessImplService
endpoint: TransferDocumentDataAccessImplPort
operation: {http://domain.services.mycompany.com/}save
in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:srv="http://domain.services.mycompany.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
type="srv:saveRequest" version="1.0">
<jbi:part>
<dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
<dom:TransferHeader description="JBI Wrapped with routing">
<dom:Organization id="123456"/>
</dom:TransferHeader>
</dom:TransferDocument>
</jbi:part>
</jbi:message>
]
14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
CxfSeComponent | emix.common.AsyncBaseLifeCycle 534 | Received
exchange: status: Active, role: provider
14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
CxfSeComponent | emix.common.AsyncBaseLifeCycle 596 | Retrieved
correlation id: ID:172.18.127.170-1230fc5d00b-5:0
14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-cxf-se}
14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
exchange with secure broker
14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 | SedaFlow
| emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
14:03:44,983 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 | SedaQueue
| .jbi.nmr.flow.seda.SedaQueue$1 132 |
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@2fbd59 dequeued
exchange: InOut[
id: ID:172.18.127.170-1230fc5d00b-4:0
status: Error
role: consumer
interface:
{http://domain.services.mycompany.com/}TransferDocumentDataAccess
service:
{http://domain.services.mycompany.com/}TransferDocumentDataAccessImplService
endpoint: TransferDocumentDataAccessImplPort
operation: {http://domain.services.mycompany.com/}save
in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:srv="http://domain.services.mycompany.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
type="srv:saveRequest" version="1.0">
<jbi:part>
<dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
<dom:TransferHeader description="JBI Wrapped with routing">
<dom:Organization id="123456"/>
</dom:TransferHeader>
</dom:TransferDocument>
</jbi:part>
</jbi:message>
error: org.apache.cxf.interceptor.Fault
]
14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
EIPComponent | emix.common.AsyncBaseLifeCycle 534 | Received
exchange: status: Error, role: consumer
14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
EIPComponent | emix.common.AsyncBaseLifeCycle 596 | Retrieved
correlation id: ID:172.18.127.170-1230fc5d00b-5:0
14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
MemoryStore | cemix.store.memory.MemoryStore 62 | Loading
object with id: ID:172.18.127.170-1230fc5d00b-5:0
14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-eip}
14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
exchange with secure broker
14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 | SedaFlow
| emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
14:03:45,045 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 | SedaQueue
| .jbi.nmr.flow.seda.SedaQueue$1 132 |
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1112776 dequeued
exchange: InOnly[
id: ID:172.18.127.170-1230fc5d00b-5:0
status: Error
role: consumer
service: {http://domain.services.mycompany.com/}PipelineRoutingService
endpoint: SaveTransferDocumentRoute
in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:srv="http://domain.services.mycompany.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
type="srv:saveRequest" version="1.0">
<jbi:part>
<dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
<dom:TransferHeader description="JBI Wrapped with routing">
<dom:Organization id="123456"/>
</dom:TransferHeader>
</dom:TransferDocument>
</jbi:part>
</jbi:message>
error: org.apache.cxf.interceptor.Fault
]
14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
FileComponent | emix.common.AsyncBaseLifeCycle 534 | Received
exchange: status: Error, role: consumer
14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
FileComponent | emix.common.AsyncBaseLifeCycle 596 | Retrieved
correlation id: ID:172.18.127.170-1230fc5d00b-5:0
14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
FileComponent | icemix.file.FilePollerEndpoint 369 | Releasing
c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-wrapped-JBI.xml
14:03:45,092 | WARN | pool-flow.seda.servicemix-eip-thread-2 |
FileComponent | icemix.file.FilePollerEndpoint 389 | Message in
file
c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-wrapped-JBI.xml
could not be handled successfully: null
org.apache.cxf.interceptor.Fault
at
org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:119)
at
org.apache.cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:73)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:107)
at
org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:97)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
at
org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
at
org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:283)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at
com.mycompany.services.domain.TransferDocumentDataAccessImpl.save(TransferDocumentDataAccessImpl.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:136)
at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82)
... 20 more
--
View this message in context: http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24942525.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: CXF SE: null XML Payload after unmarshall
Posted by Brian Taylor <br...@briantaylor.us>.
BTW, stSvc and srv are the same namespace.
Brian Taylor wrote:
>
> Hello,
>
> I really appreciate any help on this.
>
> We're using a File BC SU [1] to pick up an XML message [2] (of which I
> added a JBI message wrapper manually so the CXF SE wouldn't gripe - I've
> also used a SOAP wrapper with the same end result), send the message to an
> EIP SE pipeline route SU [3], which sends it first to a CXF SE SU [4] and
> then onto a WSN-2005 SE SU (not important yet). The Java class for the CXF
> SE SU pojo is [5]. The resultant WSDL upon deployment is [6]. The logged
> [7] error that we get is a NullPointerException in the Java class [5] at:
> xmlDoc.getTransferHeader(). It appears the CXF SE is calling the 'save'
> method with a 'null' argument. I don't see any marshalling errors so I'm
> really puzzled at what the problem is.
>
> Also, is there a way to get the CXF SE Endpoint to set not use the JBI or
> SOAP wrappers? I've tried to set it in the xbean and it will accept the
> useJBIWrapper="false", but when I also add useSOAPEnvelope="false" it says
> that the useSOAPEnvelope is not a property of the CxfSeEndpoint (even
> though the code proves otherwise).
>
> Thanks again for any help, this is really stumping me.
>
> Brian
>
> [1] File BC SU
> <file:poller
> service="stSvc:PipelineRoutingServiceFile"
> endpoint="SaveTransferDocumentRouteFile"
> targetService="stSvc:PipelineRoutingService"
> targetEndpoint="SaveTransferDocumentRoute"
> file="c:/FilePollingService/TransferDocumentFileDrop"
> archive="c:/FilePollingService/TransferDocumentFileDropArchive"
> delay="5000"
> period="10000"
> autoCreateDirectory="true"
> deleteFile="true"/>
>
> [2] Message
> <jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> name="save"
> type="srv:saveRequest"
> version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
>
> [3] EIP Pipeline Route SU
> <eip:pipeline
> service="stSvc:PipelineRoutingService"
> endpoint="SaveTransferDocumentRoute">
> <eip:transformer>
> <eip:exchange-target
> service="stSvc:TransferDocumentDataAccessImplService"
> endpoint="TransferDocumentDataAccessImplPort"
> operation="stSvc:save"/>
> </eip:transformer>
> <eip:target>
> <eip:exchange-target
> service="wsn:NotificationBroker"
> endpoint="Broker"
> operation="wsn:Notify"/>
> </eip:target>
> </eip:pipeline>
>
> [4] CXF SE SU
> <cxfse:endpoint>
> <cxfse:pojo>
> <bean
> class="com.mycompany.services.domain.TransferDocumentDataAccessImpl"/>
> </cxfse:pojo>
> </cxfse:endpoint>
>
> [5] TransferDocumentDataAccessImplService (save method)
> public TransferDocument save(TransferDocument xmlDoc) throws
> ImproperArgumentWebFault {
> TransferHeader xmlHdr = xmlDoc.getTransferHeader();
> if(xmlHdr==null)
> throw new
> ImproperArgumentWebFault("TransferDocumentDataAccess.save():TransferDocument="+xmlDoc);
>
> [6] Generated WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:ns1="http://cxf.apache.org/transports/jbi"
> xmlns:tns="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> name="TransferDocumentDataAccessImplService"
> targetNamespace="http://domain.services.mycompany.com/">
> <wsdl:types>
> <xs:schema
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:ns1="http://www.mycompany.com/domain"
> attributeFormDefault="unqualified"
> elementFormDefault="unqualified"
> targetNamespace="http://domain.services.mycompany.com/"
> xmlns:tns="http://domain.services.mycompany.com/">
> <xs:import namespace="http://www.mycompany.com/domain"/>
> <xs:element name="load" type="tns:load"/>
> <xs:element name="loadResponse" type="tns:loadResponse"/>
> <xs:element name="save" type="tns:save"/>
> <xs:element name="saveResponse" type="tns:saveResponse"/>
> <xs:complexType name="load">
> <xs:sequence>
> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="loadResponse">
> <xs:sequence>
> <xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="save">
> <xs:sequence>
> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="saveResponse">
> <xs:sequence>
> <xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
> </xs:sequence>
> </xs:complexType>
> <xs:element name="ImproperArgumentWebFault"
> type="tns:ImproperArgumentWebFault"/>
> <xs:complexType name="ImproperArgumentWebFault">
> <xs:sequence/>
> </xs:complexType>
> <xs:element name="DataAccessRetryWebFault"
> type="tns:DataAccessRetryWebFault"/>
> <xs:complexType name="DataAccessRetryWebFault">
> <xs:sequence/>
> </xs:complexType>
> <xs:element name="DataAccessNotFoundWebFault"
> type="tns:DataAccessNotFoundWebFault"/>
> <xs:complexType name="DataAccessNotFoundWebFault">
> <xs:sequence/>
> </xs:complexType>
> <xs:element name="DataAccessConstraintWebFault"
> type="tns:DataAccessConstraintWebFault"/>
> <xs:complexType name="DataAccessConstraintWebFault">
> <xs:sequence/>
> </xs:complexType>
> <xs:element name="DataAccessDuplicateWebFault"
> type="tns:DataAccessDuplicateWebFault"/>
> <xs:complexType name="DataAccessDuplicateWebFault">
> <xs:sequence/>
> </xs:complexType>
> </xs:schema>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:tns="http://www.mycompany.com/domain"
> attributeFormDefault="unqualified" elementFormDefault="unqualified"
> targetNamespace="http://www.mycompany.com/domain">
> <xs:element name="TransferDocument" nillable="true"
> type="tns:TransferDocument"/>
> <xs:element name="TransferHeader" nillable="true"
> type="tns:TransferHeader"/>
> <xs:complexType name="TransferDocument">
> <xs:sequence>
> <xs:element minOccurs="0" name="TransferHeader"
> type="tns:TransferHeader"/>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="TransferDetail"
> type="tns:TransferDetail"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="TransferHeader">
> <xs:sequence>
> <xs:element minOccurs="0" name="Organization" type="tns:Organization"/>
> </xs:sequence>
> <xs:attribute name="transferId" type="xs:int"/>
> </xs:complexType>
> <xs:complexType name="Organization">
> <xs:sequence>
> </xs:sequence>
> <xs:attribute name="id" type="xs:int"/>
> </xs:complexType>
> <xs:complexType name="TransferDetail">
> <xs:sequence>
> </xs:sequence>
> <xs:attribute name="transferDetailId" type="xs:int"/>
> <xs:attribute name="transferId" type="xs:int"/>
> </xs:complexType>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="DataAccessConstraintWebFault">
> <wsdl:part element="tns:DataAccessConstraintWebFault"
> name="DataAccessConstraintWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="ImproperArgumentWebFault">
> <wsdl:part element="tns:ImproperArgumentWebFault"
> name="ImproperArgumentWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="load">
> <wsdl:part element="tns:load" name="parameters">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="DataAccessDuplicateWebFault">
> <wsdl:part element="tns:DataAccessDuplicateWebFault"
> name="DataAccessDuplicateWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="DataAccessRetryWebFault">
> <wsdl:part element="tns:DataAccessRetryWebFault"
> name="DataAccessRetryWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="DataAccessNotFoundWebFault">
> <wsdl:part element="tns:DataAccessNotFoundWebFault"
> name="DataAccessNotFoundWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="loadResponse">
> <wsdl:part element="tns:loadResponse" name="parameters">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="saveResponse">
> <wsdl:part element="tns:saveResponse" name="parameters">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="save">
> <wsdl:part element="tns:save" name="parameters">
> </wsdl:part>
> </wsdl:message>
> <wsdl:portType name="TransferDocumentDataAccess">
> <wsdl:operation name="load">
> <wsdl:input message="tns:load" name="load">
> </wsdl:input>
> <wsdl:output message="tns:loadResponse" name="loadResponse">
> </wsdl:output>
> <wsdl:fault message="tns:DataAccessNotFoundWebFault"
> name="DataAccessNotFoundWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:ImproperArgumentWebFault"
> name="ImproperArgumentWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:DataAccessRetryWebFault"
> name="DataAccessRetryWebFault">
> </wsdl:fault>
> </wsdl:operation>
> <wsdl:operation name="save">
> <wsdl:input message="tns:save" name="save">
> </wsdl:input>
> <wsdl:output message="tns:saveResponse" name="saveResponse">
> </wsdl:output>
> <wsdl:fault message="tns:DataAccessConstraintWebFault"
> name="DataAccessConstraintWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:ImproperArgumentWebFault"
> name="ImproperArgumentWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:DataAccessDuplicateWebFault"
> name="DataAccessDuplicateWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:DataAccessRetryWebFault"
> name="DataAccessRetryWebFault">
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="TransferDocumentDataAccessImplServiceJBIBinding"
> type="tns:TransferDocumentDataAccess">
> <wsdl:operation name="load">
> <wsdl:input name="load">
> </wsdl:input>
> <wsdl:output name="loadResponse">
> </wsdl:output>
> <wsdl:fault name="DataAccessNotFoundWebFault">
> </wsdl:fault>
> <wsdl:fault name="ImproperArgumentWebFault">
> </wsdl:fault>
> <wsdl:fault name="DataAccessRetryWebFault">
> </wsdl:fault>
> </wsdl:operation>
> <wsdl:operation name="save">
> <wsdl:input name="save">
> </wsdl:input>
> <wsdl:output name="saveResponse">
> </wsdl:output>
> <wsdl:fault name="DataAccessConstraintWebFault">
> </wsdl:fault>
> <wsdl:fault name="ImproperArgumentWebFault">
> </wsdl:fault>
> <wsdl:fault name="DataAccessDuplicateWebFault">
> </wsdl:fault>
> <wsdl:fault name="DataAccessRetryWebFault">
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="TransferDocumentDataAccessImplService">
> <wsdl:port
> binding="tns:TransferDocumentDataAccessImplServiceJBIBinding"
> name="TransferDocumentDataAccessImplPort">
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
> [7] Logged error
> 14:03:44,092 | DEBUG | pool-component.servicemix-file-thread-1 |
> FileComponent | icemix.file.FilePollerEndpoint 298 | Polling
> directory c:\FilePollingService\TransferDocumentFileDrop
> 14:03:44,108 | DEBUG | pool-component.servicemix-file-thread-1 |
> FileComponent | icemix.file.FilePollerEndpoint 310 |
> Scheduling file
> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-wrapped-JBI.xml
> for processing
> 14:03:44,124 | DEBUG | pool-component.servicemix-file-thread-2 |
> FileComponent | icemix.file.FilePollerEndpoint 330 |
> Processing file
> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-wrapped-JBI.xml
> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
> FileComponent | emix.common.AsyncBaseLifeCycle 626 | Created
> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-file}
> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
> exchange with secure broker
> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
> SecuredBroker | mix.jbi.security.SecuredBroker 72 | service
> name :{http://domain.services.mycompany.com/}PipelineRoutingService
> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
> SecuredBroker | mix.jbi.security.SecuredBroker 73 | operation
> name :null
> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 | SedaFlow
> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
> 14:03:44,264 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 | SedaQueue
> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@a47962 dequeued
> exchange: InOnly[
> id: ID:172.18.127.170-1230fc5d00b-5:0
> status: Active
> role: provider
> service: {http://domain.services.mycompany.com/}PipelineRoutingService
> endpoint: SaveTransferDocumentRoute
> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
> type="srv:saveRequest" version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
> ]
> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> EIPComponent | emix.common.AsyncBaseLifeCycle 534 | Received
> exchange: status: Active, role: provider
> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> EIPComponent | emix.common.AsyncBaseLifeCycle 596 | Retrieved
> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> MemoryStore | cemix.store.memory.MemoryStore 51 | Storing
> object with id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> EIPComponent | emix.common.AsyncBaseLifeCycle 632 |
> Correlation id retrieved from ThreadLocal:
> ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-eip}
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
> exchange with secure broker
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> SecuredBroker | mix.jbi.security.SecuredBroker 72 | service
> name
> :{http://domain.services.mycompany.com/}TransferDocumentDataAccessImplService
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> SecuredBroker | mix.jbi.security.SecuredBroker 73 | operation
> name :{http://domain.services.mycompany.com/}save
> 14:03:44,327 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 | SedaFlow
> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
> 14:03:44,342 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> SedaQueue | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@ad4bb0 dequeued
> exchange: InOut[
> id: ID:172.18.127.170-1230fc5d00b-4:0
> status: Active
> role: provider
> service:
> {http://domain.services.mycompany.com/}TransferDocumentDataAccessImplService
> endpoint: TransferDocumentDataAccessImplPort
> operation: {http://domain.services.mycompany.com/}save
> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
> type="srv:saveRequest" version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
> ]
> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> CxfSeComponent | emix.common.AsyncBaseLifeCycle 534 | Received
> exchange: status: Active, role: provider
> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> CxfSeComponent | emix.common.AsyncBaseLifeCycle 596 | Retrieved
> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-cxf-se}
> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
> exchange with secure broker
> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> SedaFlow | emix.jbi.nmr.flow.AbstractFlow 118 | Called
> Flow send
> 14:03:44,983 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> SedaQueue | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@2fbd59 dequeued
> exchange: InOut[
> id: ID:172.18.127.170-1230fc5d00b-4:0
> status: Error
> role: consumer
> interface:
> {http://domain.services.mycompany.com/}TransferDocumentDataAccess
> service:
> {http://domain.services.mycompany.com/}TransferDocumentDataAccessImplService
> endpoint: TransferDocumentDataAccessImplPort
> operation: {http://domain.services.mycompany.com/}save
> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
> type="srv:saveRequest" version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
> error: org.apache.cxf.interceptor.Fault
> ]
> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> EIPComponent | emix.common.AsyncBaseLifeCycle 534 | Received
> exchange: status: Error, role: consumer
> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> EIPComponent | emix.common.AsyncBaseLifeCycle 596 | Retrieved
> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> MemoryStore | cemix.store.memory.MemoryStore 62 | Loading
> object with id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-eip}
> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
> exchange with secure broker
> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> SedaFlow | emix.jbi.nmr.flow.AbstractFlow 118 | Called
> Flow send
> 14:03:45,045 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 | SedaQueue
> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1112776 dequeued
> exchange: InOnly[
> id: ID:172.18.127.170-1230fc5d00b-5:0
> status: Error
> role: consumer
> service: {http://domain.services.mycompany.com/}PipelineRoutingService
> endpoint: SaveTransferDocumentRoute
> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
> type="srv:saveRequest" version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
> error: org.apache.cxf.interceptor.Fault
> ]
> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
> FileComponent | emix.common.AsyncBaseLifeCycle 534 | Received
> exchange: status: Error, role: consumer
> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
> FileComponent | emix.common.AsyncBaseLifeCycle 596 | Retrieved
> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
> FileComponent | icemix.file.FilePollerEndpoint 369 | Releasing
> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-wrapped-JBI.xml
> 14:03:45,092 | WARN | pool-flow.seda.servicemix-eip-thread-2 |
> FileComponent | icemix.file.FilePollerEndpoint 389 | Message
> in file
> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-wrapped-JBI.xml
> could not be handled successfully: null
> org.apache.cxf.interceptor.Fault
> at
> org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:119)
> at
> org.apache.cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:73)
> at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:107)
> at
> org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:97)
> at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68)
> at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
> at
> org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
> at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
> at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
> at
> org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:156)
> at
> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:283)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
> at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.NullPointerException
> at
> com.mycompany.services.domain.TransferDocumentDataAccessImpl.save(TransferDocumentDataAccessImpl.java:34)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:136)
> at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82)
> ... 20 more
>
--
View this message in context: http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24942974.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: CXF SE: null XML Payload after unmarshall
Posted by Brian Taylor <br...@briantaylor.us>.
Thanks Freeman, that did work; we now have bare style services.
About the tradeoffs...an obvious downside to the wrapped services is that we
have to wrap/unwrap every service call with a call to a transform service in
the Saxon SE which seems like extra work I would like to avoid if possible.
What are some of the upsides to using wrapped services?
Freeman Fang wrote:
>
>
> On 2009-8-14, at 上午2:24, Brian Taylor wrote:
>
>>
>> Thanks Freeman, I was using version 3.3 and just downloaded 3.3.1
>> which I
>> discovered is using the new 2009.01 components - I should have known
>> to try
>> this first! The 2009.01 CXF SE supports the 'useSOAPEnvelope=false'
>> parameter. Thanks for the help and patience. :)
>>
>> The problem now is that when I set both useJBIWrapper and
>> useSOAPEnvelope
>> parameters on the CXF SE Endpoint the CXF SE's DocLiteralInInterceptor
>> throws an exception stating: "Message part
>> {http://www.mycompany.com/domain}TransferDocument was not
>> recognized. (Does
>> it exist in service WSDL?)"
>>
>> This is the route:
>>
>> InOnly: File BC (has to be a bare message:
>> <dom:TransferDocument><dom:TransferHeader/></dom:TransferDocument>)
>> =>
>> InOnly: EIP SE (Pipeline route su - sets 'srv:save' operation on first
>> exchange target then 'wsn:notify' on second)
>> =>
>> In/Out: CXF SE: DocLiteralInInterceptor throws exception stating:
>> "Message
>> part {http://www.mycompany.com/domain}TransferDocument was not
>> recognized.
>> (Does it exist in service WSDL?)"
>> =>
>> InOnly: WSN2005 SE (haven't got here yet)
>>
>> Is it possible that the CXF SE is generating Wrapped parameter style
>> service
>> and not a Bare parameter style service and expecting this to have a
>> <save>
>> element? If so, how can I get this to generate the Bare style? I
>> noticed in
>> the CXF SE Component class the following configuration files:
> yeah, that's because the service model generated from your java class
> used in cxf se is wrapped mode, so you need a save element as wrapper.
>
> As there's no anntotation in your java class, so by default the
> java2wsdl (also same rule applied for the service model generated from
> your java class) will generate the doc-wrapped wsdl(you can see it
> from the generated wsdl as you already appended). To generated bare
> mode, you need add annotation like ParameterStyle.BARE for your java
> class, you can get details from [1], generally the annotation can
> control everything from your java class.
> Btw, the doc/wrapped mode is the recommand one as it has lots of
> benifits, not sure why you want to use the bare mode.
>
> If the message you get from file is bare mode, actually you can use
> servicemix-camel or servicemix-saxon which use xslt inside to change
> the message to wrapped mode.
> Hope this helps
> [1]http://docs.huihoo.com/apache/cxf/2.0/developing-a-service.html
>
> Freeman
>>
>> "META-INF/cxf/cxf.xml",
>> "META-INF/cxf/cxf-extension-soap.xml",
>> "META-INF/cxf/transport/jbi/cxf-transport-jbi.xml",
>> "META-INF/cxf/binding/jbi/cxf-binding-jbi.xml"
>>
>> Will these help here and if so, where can I get information on them?
>> If not,
>> are there any other options?
>>
>> Thanks again!
>>
>> Respectfully,
>> Brian
>>
>>
>> Brian Taylor wrote:
>>>
>>> Does CXF SE always generate Wrapped services (e.g. <save>
>>> wrappers)? Can I
>>> get it to generate Bare services (no parameter wrapping)?
>>>
>>>
>>> Freeman Fang wrote:
>>>>
>>>> Hi,
>>>>
>>>> My comment inline
>>>> On 2009-8-13, at 上午2:48, Brian Taylor wrote:
>>>>
>>>>>
>>>>> Hello,
>>>>>
>>>>> I really appreciate any help on this.
>>>>>
>>>>> We're using a File BC SU [1] to pick up an XML message [2] (of
>>>>> which
>>>>> I added
>>>>> a JBI message wrapper manually so the CXF SE wouldn't gripe - I've
>>>>> also used
>>>>> a SOAP wrapper with the same end result), send the message to an
>>>>> EIP
>>>>> SE
>>>>> pipeline route SU [3], which sends it first to a CXF SE SU [4] and
>>>>> then onto
>>>>> a WSN-2005 SE SU (not important yet). The Java class for the CXF SE
>>>>> SU pojo
>>>>> is [5]. The resultant WSDL upon deployment is [6]. The logged [7]
>>>>> error that
>>>>> we get is a NullPointerException in the Java class [5] at:
>>>>> xmlDoc.getTransferHeader(). It appears the CXF SE is calling the
>>>>> 'save'
>>>>> method with a 'null' argument. I don't see any marshalling errors
>>>>> so
>>>>> I'm
>>>>> really puzzled at what the problem is.
>>>>>
>>>>> Also, is there a way to get the CXF SE Endpoint to set not use the
>>>>> JBI or
>>>>> SOAP wrappers? I've tried to set it in the xbean and it will accept
>>>>> the
>>>>> useJBIWrapper="false", but when I also add useSOAPEnvelope="false"
>>>>> it says
>>>>> that the useSOAPEnvelope is not a property of the CxfSeEndpoint
>>>>> (even though
>>>>> the code proves otherwise).
>>>> Set both seJBIWrapper="false" and useSOAPEnvelope="false" to get
>>>> what
>>>> you want
>>>> You see the exception because you are not use the version including
>>>> the useSOAPEnvelope attribute.
>>>> What's the smx version you are using?
>>>> You can try with FUSE ESB (which is based on apache servicemix but
>>>> get
>>>> released more frequently).
>>>> FUSE ESB 3.3.x[1]match smx 3.2.x and FUSE ESB 3.4.x[2] match smx
>>>> 3.3.x
>>>> [1]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.3.1.20-fuse/
>>>> [2]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.4.0.4-fuse/
>>>>>
>>>>> Thanks again for any help, this is really stumping me.
>>>>>
>>>>> Brian
>>>>>
>>>>> [1] File BC SU
>>>>> <file:poller
>>>>> service="stSvc:PipelineRoutingServiceFile"
>>>>> endpoint="SaveTransferDocumentRouteFile"
>>>>> targetService="stSvc:PipelineRoutingService"
>>>>> targetEndpoint="SaveTransferDocumentRoute"
>>>>> file="c:/FilePollingService/TransferDocumentFileDrop"
>>>>> archive="c:/FilePollingService/TransferDocumentFileDropArchive"
>>>>> delay="5000"
>>>>> period="10000"
>>>>> autoCreateDirectory="true"
>>>>> deleteFile="true"/>
>>>>>
>>>>> [2] Message
>>>>> <jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> name="save"
>>>>> type="srv:saveRequest"
>>>>> version="1.0">
>>>>> <jbi:part>
>>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>>> domain">
>>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>>> <dom:Organization id="123456"/>
>>>>> </dom:TransferHeader>
>>>>> </dom:TransferDocument>
>>>>> </jbi:part>
>>>>> </jbi:message>
>>>> This message is invalid for cxf se based on the wsdl model used in
>>>> cxf
>>>> se, if you want to call save method, it should be like
>>>>
>>>> <jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> name="save"
>>>> type="srv:saveRequest"
>>>> version="1.0">
>>>> <jbi:part>
>>>> <dom:save>
>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>> domain">
>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>> <dom:Organization id="123456"/>
>>>> </dom:TransferHeader>
>>>> </dom:TransferDocument>
>>>> </dom:save>
>>>> </jbi:part>
>>>> </jbi:message>
>>>>
>>>> You miss save element. If you are not sure what's the jbi message
>>>> should be, one solution is you just use a simple flow like
>>>> external client==>cxf-bc===> cxf-se, and turn on the debug log then
>>>> you can see the correct jbi message which is changed from the
>>>> incoming
>>>> soap message.
>>>>
>>>> Freeman
>>>>
>>>>>
>>>>> [3] EIP Pipeline Route SU
>>>>> <eip:pipeline
>>>>> service="stSvc:PipelineRoutingService"
>>>>> endpoint="SaveTransferDocumentRoute">
>>>>> <eip:transformer>
>>>>> <eip:exchange-target
>>>>> service="stSvc:TransferDocumentDataAccessImplService"
>>>>> endpoint="TransferDocumentDataAccessImplPort"
>>>>> operation="stSvc:save"/>
>>>>> </eip:transformer>
>>>>> <eip:target>
>>>>> <eip:exchange-target
>>>>> service="wsn:NotificationBroker"
>>>>> endpoint="Broker"
>>>>> operation="wsn:Notify"/>
>>>>> </eip:target>
>>>>> </eip:pipeline>
>>>>>
>>>>> [4] CXF SE SU
>>>>> <cxfse:endpoint>
>>>>> <cxfse:pojo>
>>>>> <bean
>>>>> class
>>>>> ="com.mycompany.services.domain.TransferDocumentDataAccessImpl"/>
>>>>> </cxfse:pojo>
>>>>> </cxfse:endpoint>
>>>>>
>>>>> [5] TransferDocumentDataAccessImplService (save method)
>>>>> public TransferDocument save(TransferDocument xmlDoc) throws
>>>>> ImproperArgumentWebFault {
>>>>> TransferHeader xmlHdr = xmlDoc.getTransferHeader();
>>>>> if(xmlHdr==null)
>>>>> throw new
>>>>> ImproperArgumentWebFault
>>>>> ("TransferDocumentDataAccess.save():TransferDocument="+xmlDoc);
>>>>>
>>>>> [6] Generated WSDL
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <wsdl:definitions
>>>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>>>>> xmlns:ns1="http://cxf.apache.org/transports/jbi"
>>>>> xmlns:tns="http://domain.services.mycompany.com/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>>> name="TransferDocumentDataAccessImplService"
>>>>> targetNamespace="http://domain.services.mycompany.com/">
>>>>> <wsdl:types>
>>>>> <xs:schema
>>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:ns1="http://www.mycompany.com/domain"
>>>>> attributeFormDefault="unqualified"
>>>>> elementFormDefault="unqualified"
>>>>> targetNamespace="http://domain.services.mycompany.com/"
>>>>> xmlns:tns="http://domain.services.mycompany.com/">
>>>>> <xs:import namespace="http://www.mycompany.com/domain"/>
>>>>> <xs:element name="load" type="tns:load"/>
>>>>> <xs:element name="loadResponse" type="tns:loadResponse"/>
>>>>> <xs:element name="save" type="tns:save"/>
>>>>> <xs:element name="saveResponse" type="tns:saveResponse"/>
>>>>> <xs:complexType name="load">
>>>>> <xs:sequence>
>>>>> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
>>>>> </xs:sequence>
>>>>> </xs:complexType>
>>>>> <xs:complexType name="loadResponse">
>>>>> <xs:sequence>
>>>>> <xs:element minOccurs="0" name="return"
>>>>> type="ns1:TransferDocument"/>
>>>>> </xs:sequence>
>>>>> </xs:complexType>
>>>>> <xs:complexType name="save">
>>>>> <xs:sequence>
>>>>> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
>>>>> </xs:sequence>
>>>>> </xs:complexType>
>>>>> <xs:complexType name="saveResponse">
>>>>> <xs:sequence>
>>>>> <xs:element minOccurs="0" name="return"
>>>>> type="ns1:TransferDocument"/>
>>>>> </xs:sequence>
>>>>> </xs:complexType>
>>>>> <xs:element name="ImproperArgumentWebFault"
>>>>> type="tns:ImproperArgumentWebFault"/>
>>>>> <xs:complexType name="ImproperArgumentWebFault">
>>>>> <xs:sequence/>
>>>>> </xs:complexType>
>>>>> <xs:element name="DataAccessRetryWebFault"
>>>>> type="tns:DataAccessRetryWebFault"/>
>>>>> <xs:complexType name="DataAccessRetryWebFault">
>>>>> <xs:sequence/>
>>>>> </xs:complexType>
>>>>> <xs:element name="DataAccessNotFoundWebFault"
>>>>> type="tns:DataAccessNotFoundWebFault"/>
>>>>> <xs:complexType name="DataAccessNotFoundWebFault">
>>>>> <xs:sequence/>
>>>>> </xs:complexType>
>>>>> <xs:element name="DataAccessConstraintWebFault"
>>>>> type="tns:DataAccessConstraintWebFault"/>
>>>>> <xs:complexType name="DataAccessConstraintWebFault">
>>>>> <xs:sequence/>
>>>>> </xs:complexType>
>>>>> <xs:element name="DataAccessDuplicateWebFault"
>>>>> type="tns:DataAccessDuplicateWebFault"/>
>>>>> <xs:complexType name="DataAccessDuplicateWebFault">
>>>>> <xs:sequence/>
>>>>> </xs:complexType>
>>>>> </xs:schema>
>>>>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:tns="http://www.mycompany.com/domain"
>>>>> attributeFormDefault="unqualified" elementFormDefault="unqualified"
>>>>> targetNamespace="http://www.mycompany.com/domain">
>>>>> <xs:element name="TransferDocument" nillable="true"
>>>>> type="tns:TransferDocument"/>
>>>>> <xs:element name="TransferHeader" nillable="true"
>>>>> type="tns:TransferHeader"/>
>>>>> <xs:complexType name="TransferDocument">
>>>>> <xs:sequence>
>>>>> <xs:element minOccurs="0" name="TransferHeader"
>>>>> type="tns:TransferHeader"/>
>>>>> <xs:element maxOccurs="unbounded" minOccurs="0"
>>>>> name="TransferDetail"
>>>>> type="tns:TransferDetail"/>
>>>>> </xs:sequence>
>>>>> </xs:complexType>
>>>>> <xs:complexType name="TransferHeader">
>>>>> <xs:sequence>
>>>>> <xs:element minOccurs="0" name="Organization"
>>>>> type="tns:Organization"/>
>>>>> </xs:sequence>
>>>>> <xs:attribute name="transferId" type="xs:int"/>
>>>>> </xs:complexType>
>>>>> <xs:complexType name="Organization">
>>>>> <xs:sequence>
>>>>> </xs:sequence>
>>>>> <xs:attribute name="id" type="xs:int"/>
>>>>> </xs:complexType>
>>>>> <xs:complexType name="TransferDetail">
>>>>> <xs:sequence>
>>>>> </xs:sequence>
>>>>> <xs:attribute name="transferDetailId" type="xs:int"/>
>>>>> <xs:attribute name="transferId" type="xs:int"/>
>>>>> </xs:complexType>
>>>>> </xs:schema>
>>>>> </wsdl:types>
>>>>> <wsdl:message name="DataAccessConstraintWebFault">
>>>>> <wsdl:part element="tns:DataAccessConstraintWebFault"
>>>>> name="DataAccessConstraintWebFault">
>>>>> </wsdl:part>
>>>>> </wsdl:message>
>>>>> <wsdl:message name="ImproperArgumentWebFault">
>>>>> <wsdl:part element="tns:ImproperArgumentWebFault"
>>>>> name="ImproperArgumentWebFault">
>>>>> </wsdl:part>
>>>>> </wsdl:message>
>>>>> <wsdl:message name="load">
>>>>> <wsdl:part element="tns:load" name="parameters">
>>>>> </wsdl:part>
>>>>> </wsdl:message>
>>>>> <wsdl:message name="DataAccessDuplicateWebFault">
>>>>> <wsdl:part element="tns:DataAccessDuplicateWebFault"
>>>>> name="DataAccessDuplicateWebFault">
>>>>> </wsdl:part>
>>>>> </wsdl:message>
>>>>> <wsdl:message name="DataAccessRetryWebFault">
>>>>> <wsdl:part element="tns:DataAccessRetryWebFault"
>>>>> name="DataAccessRetryWebFault">
>>>>> </wsdl:part>
>>>>> </wsdl:message>
>>>>> <wsdl:message name="DataAccessNotFoundWebFault">
>>>>> <wsdl:part element="tns:DataAccessNotFoundWebFault"
>>>>> name="DataAccessNotFoundWebFault">
>>>>> </wsdl:part>
>>>>> </wsdl:message>
>>>>> <wsdl:message name="loadResponse">
>>>>> <wsdl:part element="tns:loadResponse" name="parameters">
>>>>> </wsdl:part>
>>>>> </wsdl:message>
>>>>> <wsdl:message name="saveResponse">
>>>>> <wsdl:part element="tns:saveResponse" name="parameters">
>>>>> </wsdl:part>
>>>>> </wsdl:message>
>>>>> <wsdl:message name="save">
>>>>> <wsdl:part element="tns:save" name="parameters">
>>>>> </wsdl:part>
>>>>> </wsdl:message>
>>>>> <wsdl:portType name="TransferDocumentDataAccess">
>>>>> <wsdl:operation name="load">
>>>>> <wsdl:input message="tns:load" name="load">
>>>>> </wsdl:input>
>>>>> <wsdl:output message="tns:loadResponse" name="loadResponse">
>>>>> </wsdl:output>
>>>>> <wsdl:fault message="tns:DataAccessNotFoundWebFault"
>>>>> name="DataAccessNotFoundWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault message="tns:ImproperArgumentWebFault"
>>>>> name="ImproperArgumentWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault message="tns:DataAccessRetryWebFault"
>>>>> name="DataAccessRetryWebFault">
>>>>> </wsdl:fault>
>>>>> </wsdl:operation>
>>>>> <wsdl:operation name="save">
>>>>> <wsdl:input message="tns:save" name="save">
>>>>> </wsdl:input>
>>>>> <wsdl:output message="tns:saveResponse" name="saveResponse">
>>>>> </wsdl:output>
>>>>> <wsdl:fault message="tns:DataAccessConstraintWebFault"
>>>>> name="DataAccessConstraintWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault message="tns:ImproperArgumentWebFault"
>>>>> name="ImproperArgumentWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault message="tns:DataAccessDuplicateWebFault"
>>>>> name="DataAccessDuplicateWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault message="tns:DataAccessRetryWebFault"
>>>>> name="DataAccessRetryWebFault">
>>>>> </wsdl:fault>
>>>>> </wsdl:operation>
>>>>> </wsdl:portType>
>>>>> <wsdl:binding
>>>>> name="TransferDocumentDataAccessImplServiceJBIBinding"
>>>>> type="tns:TransferDocumentDataAccess">
>>>>> <wsdl:operation name="load">
>>>>> <wsdl:input name="load">
>>>>> </wsdl:input>
>>>>> <wsdl:output name="loadResponse">
>>>>> </wsdl:output>
>>>>> <wsdl:fault name="DataAccessNotFoundWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault name="ImproperArgumentWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault name="DataAccessRetryWebFault">
>>>>> </wsdl:fault>
>>>>> </wsdl:operation>
>>>>> <wsdl:operation name="save">
>>>>> <wsdl:input name="save">
>>>>> </wsdl:input>
>>>>> <wsdl:output name="saveResponse">
>>>>> </wsdl:output>
>>>>> <wsdl:fault name="DataAccessConstraintWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault name="ImproperArgumentWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault name="DataAccessDuplicateWebFault">
>>>>> </wsdl:fault>
>>>>> <wsdl:fault name="DataAccessRetryWebFault">
>>>>> </wsdl:fault>
>>>>> </wsdl:operation>
>>>>> </wsdl:binding>
>>>>> <wsdl:service name="TransferDocumentDataAccessImplService">
>>>>> <wsdl:port
>>>>> binding="tns:TransferDocumentDataAccessImplServiceJBIBinding"
>>>>> name="TransferDocumentDataAccessImplPort">
>>>>> </wsdl:port>
>>>>> </wsdl:service>
>>>>> </wsdl:definitions>
>>>>>
>>>>> [7] Logged error
>>>>> 14:03:44,092 | DEBUG | pool-component.servicemix-file-thread-1 |
>>>>> FileComponent | icemix.file.FilePollerEndpoint 298 |
>>>>> Polling
>>>>> directory c:\FilePollingService\TransferDocumentFileDrop
>>>>> 14:03:44,108 | DEBUG | pool-component.servicemix-file-thread-1 |
>>>>> FileComponent | icemix.file.FilePollerEndpoint 310 |
>>>>> Scheduling
>>>>> file
>>>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>>>> wrapped-JBI.xml
>>>>> for processing
>>>>> 14:03:44,124 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>>> FileComponent | icemix.file.FilePollerEndpoint 330 |
>>>>> Processing
>>>>> file
>>>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>>>> wrapped-JBI.xml
>>>>> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>>> FileComponent | emix.common.AsyncBaseLifeCycle 626 |
>>>>> Created
>>>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>>>> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 |
>>>>> Send
>>>>> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-
>>>>> file}
>>>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 |
>>>>> send
>>>>> exchange with secure broker
>>>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>>> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
>>>>> service
>>>>> name :{http://domain.services.mycompany.com/}PipelineRoutingService
>>>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>>> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
>>>>> operation
>>>>> name :null
>>>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>>> SedaFlow
>>>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>>>> 14:03:44,264 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> SedaQueue
>>>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@a47962 dequeued
>>>>> exchange: InOnly[
>>>>> id: ID:172.18.127.170-1230fc5d00b-5:0
>>>>> status: Active
>>>>> role: provider
>>>>> service: {http://
>>>>> domain.services.mycompany.com/}PipelineRoutingService
>>>>> endpoint: SaveTransferDocumentRoute
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>>>> type="srv:saveRequest" version="1.0">
>>>>> <jbi:part>
>>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>>> domain">
>>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>>> <dom:Organization id="123456"/>
>>>>> </dom:TransferHeader>
>>>>> </dom:TransferDocument>
>>>>> </jbi:part>
>>>>> </jbi:message>
>>>>> ]
>>>>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> EIPComponent
>>>>> | emix.common.AsyncBaseLifeCycle 534 | Received exchange: status:
>>>>> Active,
>>>>> role: provider
>>>>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> EIPComponent
>>>>> | emix.common.AsyncBaseLifeCycle 596 | Retrieved correlation id:
>>>>> ID:172.18.127.170-1230fc5d00b-5:0
>>>>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> MemoryStore
>>>>> | cemix.store.memory.MemoryStore 51 | Storing object with id:
>>>>> ID:172.18.127.170-1230fc5d00b-5:0
>>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> EIPComponent
>>>>> | emix.common.AsyncBaseLifeCycle 632 | Correlation id retrieved
>>>>> from
>>>>> ThreadLocal: ID:172.18.127.170-1230fc5d00b-5:0
>>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 |
>>>>> Send
>>>>> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-
>>>>> eip}
>>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 |
>>>>> send
>>>>> exchange with secure broker
>>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
>>>>> service
>>>>> name
>>>>> :{http://
>>>>> domain
>>>>> .services.mycompany.com/}TransferDocumentDataAccessImplService
>>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
>>>>> operation
>>>>> name :{http://domain.services.mycompany.com/}save
>>>>> 14:03:44,327 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>>> SedaFlow
>>>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>>>> 14:03:44,342 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>>> SedaQueue
>>>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@ad4bb0 dequeued
>>>>> exchange: InOut[
>>>>> id: ID:172.18.127.170-1230fc5d00b-4:0
>>>>> status: Active
>>>>> role: provider
>>>>> service:
>>>>> {http://
>>>>> domain
>>>>> .services.mycompany.com/}TransferDocumentDataAccessImplService
>>>>> endpoint: TransferDocumentDataAccessImplPort
>>>>> operation: {http://domain.services.mycompany.com/}save
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>>>> type="srv:saveRequest" version="1.0">
>>>>> <jbi:part>
>>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>>> domain">
>>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>>> <dom:Organization id="123456"/>
>>>>> </dom:TransferHeader>
>>>>> </dom:TransferDocument>
>>>>> </jbi:part>
>>>>> </jbi:message>
>>>>> ]
>>>>> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>>> CxfSeComponent | emix.common.AsyncBaseLifeCycle 534 |
>>>>> Received
>>>>> exchange: status: Active, role: provider
>>>>> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>>> CxfSeComponent | emix.common.AsyncBaseLifeCycle 596 |
>>>>> Retrieved
>>>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>>>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 |
>>>>> Send
>>>>> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-
>>>>> cxf-
>>>>> se}
>>>>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 |
>>>>> send
>>>>> exchange with secure broker
>>>>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>>> SedaFlow
>>>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>>>> 14:03:44,983 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>>> SedaQueue
>>>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@2fbd59 dequeued
>>>>> exchange: InOut[
>>>>> id: ID:172.18.127.170-1230fc5d00b-4:0
>>>>> status: Error
>>>>> role: consumer
>>>>> interface:
>>>>> {http://domain.services.mycompany.com/}TransferDocumentDataAccess
>>>>> service:
>>>>> {http://
>>>>> domain
>>>>> .services.mycompany.com/}TransferDocumentDataAccessImplService
>>>>> endpoint: TransferDocumentDataAccessImplPort
>>>>> operation: {http://domain.services.mycompany.com/}save
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>>>> type="srv:saveRequest" version="1.0">
>>>>> <jbi:part>
>>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>>> domain">
>>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>>> <dom:Organization id="123456"/>
>>>>> </dom:TransferHeader>
>>>>> </dom:TransferDocument>
>>>>> </jbi:part>
>>>>> </jbi:message>
>>>>> error: org.apache.cxf.interceptor.Fault
>>>>> ]
>>>>> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>>> EIPComponent | emix.common.AsyncBaseLifeCycle 534 |
>>>>> Received
>>>>> exchange: status: Error, role: consumer
>>>>> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>>> EIPComponent | emix.common.AsyncBaseLifeCycle 596 |
>>>>> Retrieved
>>>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>>> MemoryStore | cemix.store.memory.MemoryStore 62 |
>>>>> Loading
>>>>> object with id: ID:172.18.127.170-1230fc5d00b-5:0
>>>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 |
>>>>> Send
>>>>> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-
>>>>> eip}
>>>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 |
>>>>> send
>>>>> exchange with secure broker
>>>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>>> SedaFlow
>>>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>>>> 14:03:45,045 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>>>> SedaQueue
>>>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1112776
>>>>> dequeued
>>>>> exchange: InOnly[
>>>>> id: ID:172.18.127.170-1230fc5d00b-5:0
>>>>> status: Error
>>>>> role: consumer
>>>>> service: {http://
>>>>> domain.services.mycompany.com/}PipelineRoutingService
>>>>> endpoint: SaveTransferDocumentRoute
>>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>>>> type="srv:saveRequest" version="1.0">
>>>>> <jbi:part>
>>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>>> domain">
>>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>>> <dom:Organization id="123456"/>
>>>>> </dom:TransferHeader>
>>>>> </dom:TransferDocument>
>>>>> </jbi:part>
>>>>> </jbi:message>
>>>>> error: org.apache.cxf.interceptor.Fault
>>>>> ]
>>>>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>>>> FileComponent | emix.common.AsyncBaseLifeCycle 534 |
>>>>> Received
>>>>> exchange: status: Error, role: consumer
>>>>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>>>> FileComponent | emix.common.AsyncBaseLifeCycle 596 |
>>>>> Retrieved
>>>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>>>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>>>> FileComponent | icemix.file.FilePollerEndpoint 369 |
>>>>> Releasing
>>>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>>>> wrapped-JBI.xml
>>>>> 14:03:45,092 | WARN | pool-flow.seda.servicemix-eip-thread-2 |
>>>>> FileComponent | icemix.file.FilePollerEndpoint 389 |
>>>>> Message in
>>>>> file
>>>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>>>> wrapped-JBI.xml
>>>>> could not be handled successfully: null
>>>>> org.apache.cxf.interceptor.Fault
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:
>>>>> 119)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:
>>>>> 73)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:
>>>>> 107)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:
>>>>> 97)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:
>>>>> 68)
>>>>> at
>>>>> org.apache.cxf.interceptor.ServiceInvokerInterceptor
>>>>> $1.run(ServiceInvokerInterceptor.java:56)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:
>>>>> 37)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .interceptor
>>>>> .ServiceInvokerInterceptor
>>>>> .handleMessage(ServiceInvokerInterceptor.java:92)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .phase
>>>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
>>>>> 220)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .transport
>>>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>>>>> 156)
>>>>> at
>>>>> org
>>>>> .apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
>>>>> 283)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>>> 554)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common
>>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
>>>>> 510)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .common
>>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>>> 60)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .servicemix
>>>>> .jbi
>>>>> .messaging
>>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>>> 172)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>>> at
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>>> $1.run(SedaQueue.java:134)
>>>>> at
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>>> at
>>>>> java.util.concurrent.ThreadPoolExecutor
>>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>>> at java.lang.Thread.run(Thread.java:619)
>>>>> Caused by: java.lang.NullPointerException
>>>>> at
>>>>> com
>>>>> .mycompany
>>>>> .services
>>>>> .domain
>>>>> .TransferDocumentDataAccessImpl
>>>>> .save(TransferDocumentDataAccessImpl.java:34)
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at
>>>>> sun
>>>>> .reflect
>>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>> at
>>>>> sun
>>>>> .reflect
>>>>> .DelegatingMethodAccessorImpl
>>>>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf
>>>>> .service
>>>>> .invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:
>>>>> 136)
>>>>> at
>>>>> org
>>>>> .apache
>>>>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:
>>>>> 82)
>>>>> ... 20 more
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24942525.html
>>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>>
>>>>
>>>>
>>>> --
>>>> Freeman Fang
>>>> ------------------------
>>>> Open Source SOA: http://fusesource.com
>>>>
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24956318.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>
>
> --
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
>
>
>
--
View this message in context: http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24973801.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: CXF SE: null XML Payload after unmarshall
Posted by Freeman Fang <fr...@gmail.com>.
On 2009-8-14, at 上午2:24, Brian Taylor wrote:
>
> Thanks Freeman, I was using version 3.3 and just downloaded 3.3.1
> which I
> discovered is using the new 2009.01 components - I should have known
> to try
> this first! The 2009.01 CXF SE supports the 'useSOAPEnvelope=false'
> parameter. Thanks for the help and patience. :)
>
> The problem now is that when I set both useJBIWrapper and
> useSOAPEnvelope
> parameters on the CXF SE Endpoint the CXF SE's DocLiteralInInterceptor
> throws an exception stating: "Message part
> {http://www.mycompany.com/domain}TransferDocument was not
> recognized. (Does
> it exist in service WSDL?)"
>
> This is the route:
>
> InOnly: File BC (has to be a bare message:
> <dom:TransferDocument><dom:TransferHeader/></dom:TransferDocument>)
> =>
> InOnly: EIP SE (Pipeline route su - sets 'srv:save' operation on first
> exchange target then 'wsn:notify' on second)
> =>
> In/Out: CXF SE: DocLiteralInInterceptor throws exception stating:
> "Message
> part {http://www.mycompany.com/domain}TransferDocument was not
> recognized.
> (Does it exist in service WSDL?)"
> =>
> InOnly: WSN2005 SE (haven't got here yet)
>
> Is it possible that the CXF SE is generating Wrapped parameter style
> service
> and not a Bare parameter style service and expecting this to have a
> <save>
> element? If so, how can I get this to generate the Bare style? I
> noticed in
> the CXF SE Component class the following configuration files:
yeah, that's because the service model generated from your java class
used in cxf se is wrapped mode, so you need a save element as wrapper.
As there's no anntotation in your java class, so by default the
java2wsdl (also same rule applied for the service model generated from
your java class) will generate the doc-wrapped wsdl(you can see it
from the generated wsdl as you already appended). To generated bare
mode, you need add annotation like ParameterStyle.BARE for your java
class, you can get details from [1], generally the annotation can
control everything from your java class.
Btw, the doc/wrapped mode is the recommand one as it has lots of
benifits, not sure why you want to use the bare mode.
If the message you get from file is bare mode, actually you can use
servicemix-camel or servicemix-saxon which use xslt inside to change
the message to wrapped mode.
Hope this helps
[1]http://docs.huihoo.com/apache/cxf/2.0/developing-a-service.html
Freeman
>
> "META-INF/cxf/cxf.xml",
> "META-INF/cxf/cxf-extension-soap.xml",
> "META-INF/cxf/transport/jbi/cxf-transport-jbi.xml",
> "META-INF/cxf/binding/jbi/cxf-binding-jbi.xml"
>
> Will these help here and if so, where can I get information on them?
> If not,
> are there any other options?
>
> Thanks again!
>
> Respectfully,
> Brian
>
>
> Brian Taylor wrote:
>>
>> Does CXF SE always generate Wrapped services (e.g. <save>
>> wrappers)? Can I
>> get it to generate Bare services (no parameter wrapping)?
>>
>>
>> Freeman Fang wrote:
>>>
>>> Hi,
>>>
>>> My comment inline
>>> On 2009-8-13, at 上午2:48, Brian Taylor wrote:
>>>
>>>>
>>>> Hello,
>>>>
>>>> I really appreciate any help on this.
>>>>
>>>> We're using a File BC SU [1] to pick up an XML message [2] (of
>>>> which
>>>> I added
>>>> a JBI message wrapper manually so the CXF SE wouldn't gripe - I've
>>>> also used
>>>> a SOAP wrapper with the same end result), send the message to an
>>>> EIP
>>>> SE
>>>> pipeline route SU [3], which sends it first to a CXF SE SU [4] and
>>>> then onto
>>>> a WSN-2005 SE SU (not important yet). The Java class for the CXF SE
>>>> SU pojo
>>>> is [5]. The resultant WSDL upon deployment is [6]. The logged [7]
>>>> error that
>>>> we get is a NullPointerException in the Java class [5] at:
>>>> xmlDoc.getTransferHeader(). It appears the CXF SE is calling the
>>>> 'save'
>>>> method with a 'null' argument. I don't see any marshalling errors
>>>> so
>>>> I'm
>>>> really puzzled at what the problem is.
>>>>
>>>> Also, is there a way to get the CXF SE Endpoint to set not use the
>>>> JBI or
>>>> SOAP wrappers? I've tried to set it in the xbean and it will accept
>>>> the
>>>> useJBIWrapper="false", but when I also add useSOAPEnvelope="false"
>>>> it says
>>>> that the useSOAPEnvelope is not a property of the CxfSeEndpoint
>>>> (even though
>>>> the code proves otherwise).
>>> Set both seJBIWrapper="false" and useSOAPEnvelope="false" to get
>>> what
>>> you want
>>> You see the exception because you are not use the version including
>>> the useSOAPEnvelope attribute.
>>> What's the smx version you are using?
>>> You can try with FUSE ESB (which is based on apache servicemix but
>>> get
>>> released more frequently).
>>> FUSE ESB 3.3.x[1]match smx 3.2.x and FUSE ESB 3.4.x[2] match smx
>>> 3.3.x
>>> [1]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.3.1.20-fuse/
>>> [2]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.4.0.4-fuse/
>>>>
>>>> Thanks again for any help, this is really stumping me.
>>>>
>>>> Brian
>>>>
>>>> [1] File BC SU
>>>> <file:poller
>>>> service="stSvc:PipelineRoutingServiceFile"
>>>> endpoint="SaveTransferDocumentRouteFile"
>>>> targetService="stSvc:PipelineRoutingService"
>>>> targetEndpoint="SaveTransferDocumentRoute"
>>>> file="c:/FilePollingService/TransferDocumentFileDrop"
>>>> archive="c:/FilePollingService/TransferDocumentFileDropArchive"
>>>> delay="5000"
>>>> period="10000"
>>>> autoCreateDirectory="true"
>>>> deleteFile="true"/>
>>>>
>>>> [2] Message
>>>> <jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> name="save"
>>>> type="srv:saveRequest"
>>>> version="1.0">
>>>> <jbi:part>
>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>> domain">
>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>> <dom:Organization id="123456"/>
>>>> </dom:TransferHeader>
>>>> </dom:TransferDocument>
>>>> </jbi:part>
>>>> </jbi:message>
>>> This message is invalid for cxf se based on the wsdl model used in
>>> cxf
>>> se, if you want to call save method, it should be like
>>>
>>> <jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>> xmlns:srv="http://domain.services.mycompany.com/"
>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> name="save"
>>> type="srv:saveRequest"
>>> version="1.0">
>>> <jbi:part>
>>> <dom:save>
>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>> domain">
>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>> <dom:Organization id="123456"/>
>>> </dom:TransferHeader>
>>> </dom:TransferDocument>
>>> </dom:save>
>>> </jbi:part>
>>> </jbi:message>
>>>
>>> You miss save element. If you are not sure what's the jbi message
>>> should be, one solution is you just use a simple flow like
>>> external client==>cxf-bc===> cxf-se, and turn on the debug log then
>>> you can see the correct jbi message which is changed from the
>>> incoming
>>> soap message.
>>>
>>> Freeman
>>>
>>>>
>>>> [3] EIP Pipeline Route SU
>>>> <eip:pipeline
>>>> service="stSvc:PipelineRoutingService"
>>>> endpoint="SaveTransferDocumentRoute">
>>>> <eip:transformer>
>>>> <eip:exchange-target
>>>> service="stSvc:TransferDocumentDataAccessImplService"
>>>> endpoint="TransferDocumentDataAccessImplPort"
>>>> operation="stSvc:save"/>
>>>> </eip:transformer>
>>>> <eip:target>
>>>> <eip:exchange-target
>>>> service="wsn:NotificationBroker"
>>>> endpoint="Broker"
>>>> operation="wsn:Notify"/>
>>>> </eip:target>
>>>> </eip:pipeline>
>>>>
>>>> [4] CXF SE SU
>>>> <cxfse:endpoint>
>>>> <cxfse:pojo>
>>>> <bean
>>>> class
>>>> ="com.mycompany.services.domain.TransferDocumentDataAccessImpl"/>
>>>> </cxfse:pojo>
>>>> </cxfse:endpoint>
>>>>
>>>> [5] TransferDocumentDataAccessImplService (save method)
>>>> public TransferDocument save(TransferDocument xmlDoc) throws
>>>> ImproperArgumentWebFault {
>>>> TransferHeader xmlHdr = xmlDoc.getTransferHeader();
>>>> if(xmlHdr==null)
>>>> throw new
>>>> ImproperArgumentWebFault
>>>> ("TransferDocumentDataAccess.save():TransferDocument="+xmlDoc);
>>>>
>>>> [6] Generated WSDL
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <wsdl:definitions
>>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>>>> xmlns:ns1="http://cxf.apache.org/transports/jbi"
>>>> xmlns:tns="http://domain.services.mycompany.com/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> name="TransferDocumentDataAccessImplService"
>>>> targetNamespace="http://domain.services.mycompany.com/">
>>>> <wsdl:types>
>>>> <xs:schema
>>>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:ns1="http://www.mycompany.com/domain"
>>>> attributeFormDefault="unqualified"
>>>> elementFormDefault="unqualified"
>>>> targetNamespace="http://domain.services.mycompany.com/"
>>>> xmlns:tns="http://domain.services.mycompany.com/">
>>>> <xs:import namespace="http://www.mycompany.com/domain"/>
>>>> <xs:element name="load" type="tns:load"/>
>>>> <xs:element name="loadResponse" type="tns:loadResponse"/>
>>>> <xs:element name="save" type="tns:save"/>
>>>> <xs:element name="saveResponse" type="tns:saveResponse"/>
>>>> <xs:complexType name="load">
>>>> <xs:sequence>
>>>> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>> <xs:complexType name="loadResponse">
>>>> <xs:sequence>
>>>> <xs:element minOccurs="0" name="return"
>>>> type="ns1:TransferDocument"/>
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>> <xs:complexType name="save">
>>>> <xs:sequence>
>>>> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>> <xs:complexType name="saveResponse">
>>>> <xs:sequence>
>>>> <xs:element minOccurs="0" name="return"
>>>> type="ns1:TransferDocument"/>
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>> <xs:element name="ImproperArgumentWebFault"
>>>> type="tns:ImproperArgumentWebFault"/>
>>>> <xs:complexType name="ImproperArgumentWebFault">
>>>> <xs:sequence/>
>>>> </xs:complexType>
>>>> <xs:element name="DataAccessRetryWebFault"
>>>> type="tns:DataAccessRetryWebFault"/>
>>>> <xs:complexType name="DataAccessRetryWebFault">
>>>> <xs:sequence/>
>>>> </xs:complexType>
>>>> <xs:element name="DataAccessNotFoundWebFault"
>>>> type="tns:DataAccessNotFoundWebFault"/>
>>>> <xs:complexType name="DataAccessNotFoundWebFault">
>>>> <xs:sequence/>
>>>> </xs:complexType>
>>>> <xs:element name="DataAccessConstraintWebFault"
>>>> type="tns:DataAccessConstraintWebFault"/>
>>>> <xs:complexType name="DataAccessConstraintWebFault">
>>>> <xs:sequence/>
>>>> </xs:complexType>
>>>> <xs:element name="DataAccessDuplicateWebFault"
>>>> type="tns:DataAccessDuplicateWebFault"/>
>>>> <xs:complexType name="DataAccessDuplicateWebFault">
>>>> <xs:sequence/>
>>>> </xs:complexType>
>>>> </xs:schema>
>>>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:tns="http://www.mycompany.com/domain"
>>>> attributeFormDefault="unqualified" elementFormDefault="unqualified"
>>>> targetNamespace="http://www.mycompany.com/domain">
>>>> <xs:element name="TransferDocument" nillable="true"
>>>> type="tns:TransferDocument"/>
>>>> <xs:element name="TransferHeader" nillable="true"
>>>> type="tns:TransferHeader"/>
>>>> <xs:complexType name="TransferDocument">
>>>> <xs:sequence>
>>>> <xs:element minOccurs="0" name="TransferHeader"
>>>> type="tns:TransferHeader"/>
>>>> <xs:element maxOccurs="unbounded" minOccurs="0"
>>>> name="TransferDetail"
>>>> type="tns:TransferDetail"/>
>>>> </xs:sequence>
>>>> </xs:complexType>
>>>> <xs:complexType name="TransferHeader">
>>>> <xs:sequence>
>>>> <xs:element minOccurs="0" name="Organization"
>>>> type="tns:Organization"/>
>>>> </xs:sequence>
>>>> <xs:attribute name="transferId" type="xs:int"/>
>>>> </xs:complexType>
>>>> <xs:complexType name="Organization">
>>>> <xs:sequence>
>>>> </xs:sequence>
>>>> <xs:attribute name="id" type="xs:int"/>
>>>> </xs:complexType>
>>>> <xs:complexType name="TransferDetail">
>>>> <xs:sequence>
>>>> </xs:sequence>
>>>> <xs:attribute name="transferDetailId" type="xs:int"/>
>>>> <xs:attribute name="transferId" type="xs:int"/>
>>>> </xs:complexType>
>>>> </xs:schema>
>>>> </wsdl:types>
>>>> <wsdl:message name="DataAccessConstraintWebFault">
>>>> <wsdl:part element="tns:DataAccessConstraintWebFault"
>>>> name="DataAccessConstraintWebFault">
>>>> </wsdl:part>
>>>> </wsdl:message>
>>>> <wsdl:message name="ImproperArgumentWebFault">
>>>> <wsdl:part element="tns:ImproperArgumentWebFault"
>>>> name="ImproperArgumentWebFault">
>>>> </wsdl:part>
>>>> </wsdl:message>
>>>> <wsdl:message name="load">
>>>> <wsdl:part element="tns:load" name="parameters">
>>>> </wsdl:part>
>>>> </wsdl:message>
>>>> <wsdl:message name="DataAccessDuplicateWebFault">
>>>> <wsdl:part element="tns:DataAccessDuplicateWebFault"
>>>> name="DataAccessDuplicateWebFault">
>>>> </wsdl:part>
>>>> </wsdl:message>
>>>> <wsdl:message name="DataAccessRetryWebFault">
>>>> <wsdl:part element="tns:DataAccessRetryWebFault"
>>>> name="DataAccessRetryWebFault">
>>>> </wsdl:part>
>>>> </wsdl:message>
>>>> <wsdl:message name="DataAccessNotFoundWebFault">
>>>> <wsdl:part element="tns:DataAccessNotFoundWebFault"
>>>> name="DataAccessNotFoundWebFault">
>>>> </wsdl:part>
>>>> </wsdl:message>
>>>> <wsdl:message name="loadResponse">
>>>> <wsdl:part element="tns:loadResponse" name="parameters">
>>>> </wsdl:part>
>>>> </wsdl:message>
>>>> <wsdl:message name="saveResponse">
>>>> <wsdl:part element="tns:saveResponse" name="parameters">
>>>> </wsdl:part>
>>>> </wsdl:message>
>>>> <wsdl:message name="save">
>>>> <wsdl:part element="tns:save" name="parameters">
>>>> </wsdl:part>
>>>> </wsdl:message>
>>>> <wsdl:portType name="TransferDocumentDataAccess">
>>>> <wsdl:operation name="load">
>>>> <wsdl:input message="tns:load" name="load">
>>>> </wsdl:input>
>>>> <wsdl:output message="tns:loadResponse" name="loadResponse">
>>>> </wsdl:output>
>>>> <wsdl:fault message="tns:DataAccessNotFoundWebFault"
>>>> name="DataAccessNotFoundWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault message="tns:ImproperArgumentWebFault"
>>>> name="ImproperArgumentWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault message="tns:DataAccessRetryWebFault"
>>>> name="DataAccessRetryWebFault">
>>>> </wsdl:fault>
>>>> </wsdl:operation>
>>>> <wsdl:operation name="save">
>>>> <wsdl:input message="tns:save" name="save">
>>>> </wsdl:input>
>>>> <wsdl:output message="tns:saveResponse" name="saveResponse">
>>>> </wsdl:output>
>>>> <wsdl:fault message="tns:DataAccessConstraintWebFault"
>>>> name="DataAccessConstraintWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault message="tns:ImproperArgumentWebFault"
>>>> name="ImproperArgumentWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault message="tns:DataAccessDuplicateWebFault"
>>>> name="DataAccessDuplicateWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault message="tns:DataAccessRetryWebFault"
>>>> name="DataAccessRetryWebFault">
>>>> </wsdl:fault>
>>>> </wsdl:operation>
>>>> </wsdl:portType>
>>>> <wsdl:binding
>>>> name="TransferDocumentDataAccessImplServiceJBIBinding"
>>>> type="tns:TransferDocumentDataAccess">
>>>> <wsdl:operation name="load">
>>>> <wsdl:input name="load">
>>>> </wsdl:input>
>>>> <wsdl:output name="loadResponse">
>>>> </wsdl:output>
>>>> <wsdl:fault name="DataAccessNotFoundWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault name="ImproperArgumentWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault name="DataAccessRetryWebFault">
>>>> </wsdl:fault>
>>>> </wsdl:operation>
>>>> <wsdl:operation name="save">
>>>> <wsdl:input name="save">
>>>> </wsdl:input>
>>>> <wsdl:output name="saveResponse">
>>>> </wsdl:output>
>>>> <wsdl:fault name="DataAccessConstraintWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault name="ImproperArgumentWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault name="DataAccessDuplicateWebFault">
>>>> </wsdl:fault>
>>>> <wsdl:fault name="DataAccessRetryWebFault">
>>>> </wsdl:fault>
>>>> </wsdl:operation>
>>>> </wsdl:binding>
>>>> <wsdl:service name="TransferDocumentDataAccessImplService">
>>>> <wsdl:port
>>>> binding="tns:TransferDocumentDataAccessImplServiceJBIBinding"
>>>> name="TransferDocumentDataAccessImplPort">
>>>> </wsdl:port>
>>>> </wsdl:service>
>>>> </wsdl:definitions>
>>>>
>>>> [7] Logged error
>>>> 14:03:44,092 | DEBUG | pool-component.servicemix-file-thread-1 |
>>>> FileComponent | icemix.file.FilePollerEndpoint 298 |
>>>> Polling
>>>> directory c:\FilePollingService\TransferDocumentFileDrop
>>>> 14:03:44,108 | DEBUG | pool-component.servicemix-file-thread-1 |
>>>> FileComponent | icemix.file.FilePollerEndpoint 310 |
>>>> Scheduling
>>>> file
>>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>>> wrapped-JBI.xml
>>>> for processing
>>>> 14:03:44,124 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>> FileComponent | icemix.file.FilePollerEndpoint 330 |
>>>> Processing
>>>> file
>>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>>> wrapped-JBI.xml
>>>> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>> FileComponent | emix.common.AsyncBaseLifeCycle 626 |
>>>> Created
>>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>>> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 |
>>>> Send
>>>> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-
>>>> file}
>>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 |
>>>> send
>>>> exchange with secure broker
>>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
>>>> service
>>>> name :{http://domain.services.mycompany.com/}PipelineRoutingService
>>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
>>>> operation
>>>> name :null
>>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>>> SedaFlow
>>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>>> 14:03:44,264 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> SedaQueue
>>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@a47962 dequeued
>>>> exchange: InOnly[
>>>> id: ID:172.18.127.170-1230fc5d00b-5:0
>>>> status: Active
>>>> role: provider
>>>> service: {http://
>>>> domain.services.mycompany.com/}PipelineRoutingService
>>>> endpoint: SaveTransferDocumentRoute
>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>>> type="srv:saveRequest" version="1.0">
>>>> <jbi:part>
>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>> domain">
>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>> <dom:Organization id="123456"/>
>>>> </dom:TransferHeader>
>>>> </dom:TransferDocument>
>>>> </jbi:part>
>>>> </jbi:message>
>>>> ]
>>>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> EIPComponent
>>>> | emix.common.AsyncBaseLifeCycle 534 | Received exchange: status:
>>>> Active,
>>>> role: provider
>>>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> EIPComponent
>>>> | emix.common.AsyncBaseLifeCycle 596 | Retrieved correlation id:
>>>> ID:172.18.127.170-1230fc5d00b-5:0
>>>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> MemoryStore
>>>> | cemix.store.memory.MemoryStore 51 | Storing object with id:
>>>> ID:172.18.127.170-1230fc5d00b-5:0
>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> EIPComponent
>>>> | emix.common.AsyncBaseLifeCycle 632 | Correlation id retrieved
>>>> from
>>>> ThreadLocal: ID:172.18.127.170-1230fc5d00b-5:0
>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 |
>>>> Send
>>>> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-
>>>> eip}
>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 |
>>>> send
>>>> exchange with secure broker
>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
>>>> service
>>>> name
>>>> :{http://
>>>> domain
>>>> .services.mycompany.com/}TransferDocumentDataAccessImplService
>>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
>>>> operation
>>>> name :{http://domain.services.mycompany.com/}save
>>>> 14:03:44,327 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>>> SedaFlow
>>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>>> 14:03:44,342 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>> SedaQueue
>>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@ad4bb0 dequeued
>>>> exchange: InOut[
>>>> id: ID:172.18.127.170-1230fc5d00b-4:0
>>>> status: Active
>>>> role: provider
>>>> service:
>>>> {http://
>>>> domain
>>>> .services.mycompany.com/}TransferDocumentDataAccessImplService
>>>> endpoint: TransferDocumentDataAccessImplPort
>>>> operation: {http://domain.services.mycompany.com/}save
>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>>> type="srv:saveRequest" version="1.0">
>>>> <jbi:part>
>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>> domain">
>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>> <dom:Organization id="123456"/>
>>>> </dom:TransferHeader>
>>>> </dom:TransferDocument>
>>>> </jbi:part>
>>>> </jbi:message>
>>>> ]
>>>> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>> CxfSeComponent | emix.common.AsyncBaseLifeCycle 534 |
>>>> Received
>>>> exchange: status: Active, role: provider
>>>> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>> CxfSeComponent | emix.common.AsyncBaseLifeCycle 596 |
>>>> Retrieved
>>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 |
>>>> Send
>>>> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-
>>>> cxf-
>>>> se}
>>>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 |
>>>> send
>>>> exchange with secure broker
>>>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>>> SedaFlow
>>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>>> 14:03:44,983 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>> SedaQueue
>>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@2fbd59 dequeued
>>>> exchange: InOut[
>>>> id: ID:172.18.127.170-1230fc5d00b-4:0
>>>> status: Error
>>>> role: consumer
>>>> interface:
>>>> {http://domain.services.mycompany.com/}TransferDocumentDataAccess
>>>> service:
>>>> {http://
>>>> domain
>>>> .services.mycompany.com/}TransferDocumentDataAccessImplService
>>>> endpoint: TransferDocumentDataAccessImplPort
>>>> operation: {http://domain.services.mycompany.com/}save
>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>>> type="srv:saveRequest" version="1.0">
>>>> <jbi:part>
>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>> domain">
>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>> <dom:Organization id="123456"/>
>>>> </dom:TransferHeader>
>>>> </dom:TransferDocument>
>>>> </jbi:part>
>>>> </jbi:message>
>>>> error: org.apache.cxf.interceptor.Fault
>>>> ]
>>>> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>> EIPComponent | emix.common.AsyncBaseLifeCycle 534 |
>>>> Received
>>>> exchange: status: Error, role: consumer
>>>> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>> EIPComponent | emix.common.AsyncBaseLifeCycle 596 |
>>>> Retrieved
>>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>> MemoryStore | cemix.store.memory.MemoryStore 62 |
>>>> Loading
>>>> object with id: ID:172.18.127.170-1230fc5d00b-5:0
>>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 |
>>>> Send
>>>> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-
>>>> eip}
>>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 |
>>>> send
>>>> exchange with secure broker
>>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>>> SedaFlow
>>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>>> 14:03:45,045 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>>> SedaQueue
>>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1112776
>>>> dequeued
>>>> exchange: InOnly[
>>>> id: ID:172.18.127.170-1230fc5d00b-5:0
>>>> status: Error
>>>> role: consumer
>>>> service: {http://
>>>> domain.services.mycompany.com/}PipelineRoutingService
>>>> endpoint: SaveTransferDocumentRoute
>>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:srv="http://domain.services.mycompany.com/"
>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>>> type="srv:saveRequest" version="1.0">
>>>> <jbi:part>
>>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/
>>>> domain">
>>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>>> <dom:Organization id="123456"/>
>>>> </dom:TransferHeader>
>>>> </dom:TransferDocument>
>>>> </jbi:part>
>>>> </jbi:message>
>>>> error: org.apache.cxf.interceptor.Fault
>>>> ]
>>>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>>> FileComponent | emix.common.AsyncBaseLifeCycle 534 |
>>>> Received
>>>> exchange: status: Error, role: consumer
>>>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>>> FileComponent | emix.common.AsyncBaseLifeCycle 596 |
>>>> Retrieved
>>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>>> FileComponent | icemix.file.FilePollerEndpoint 369 |
>>>> Releasing
>>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>>> wrapped-JBI.xml
>>>> 14:03:45,092 | WARN | pool-flow.seda.servicemix-eip-thread-2 |
>>>> FileComponent | icemix.file.FilePollerEndpoint 389 |
>>>> Message in
>>>> file
>>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>>> wrapped-JBI.xml
>>>> could not be handled successfully: null
>>>> org.apache.cxf.interceptor.Fault
>>>> at
>>>> org
>>>> .apache
>>>> .cxf
>>>> .service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:
>>>> 119)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:
>>>> 73)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:
>>>> 107)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:
>>>> 97)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:
>>>> 68)
>>>> at
>>>> org.apache.cxf.interceptor.ServiceInvokerInterceptor
>>>> $1.run(ServiceInvokerInterceptor.java:56)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf
>>>> .workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:
>>>> 37)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf
>>>> .interceptor
>>>> .ServiceInvokerInterceptor
>>>> .handleMessage(ServiceInvokerInterceptor.java:92)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf
>>>> .phase
>>>> .PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
>>>> 220)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf
>>>> .transport
>>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf
>>>> .transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>>>> 156)
>>>> at
>>>> org
>>>> .apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
>>>> 283)
>>>> at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
>>>> at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>>> 554)
>>>> at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .common
>>>> .AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
>>>> 510)
>>>> at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .common
>>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:
>>>> 60)
>>>> at
>>>> org
>>>> .apache
>>>> .servicemix
>>>> .jbi
>>>> .messaging
>>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
>>>> at
>>>> org
>>>> .apache
>>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:
>>>> 172)
>>>> at
>>>> org
>>>> .apache
>>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>>> at
>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>>> $1.run(SedaQueue.java:134)
>>>> at
>>>> java.util.concurrent.ThreadPoolExecutor
>>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>>> at
>>>> java.util.concurrent.ThreadPoolExecutor
>>>> $Worker.run(ThreadPoolExecutor.java:908)
>>>> at java.lang.Thread.run(Thread.java:619)
>>>> Caused by: java.lang.NullPointerException
>>>> at
>>>> com
>>>> .mycompany
>>>> .services
>>>> .domain
>>>> .TransferDocumentDataAccessImpl
>>>> .save(TransferDocumentDataAccessImpl.java:34)
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun
>>>> .reflect
>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>> at
>>>> sun
>>>> .reflect
>>>> .DelegatingMethodAccessorImpl
>>>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf
>>>> .service
>>>> .invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:
>>>> 136)
>>>> at
>>>> org
>>>> .apache
>>>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:
>>>> 82)
>>>> ... 20 more
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24942525.html
>>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>> --
>>> Freeman Fang
>>> ------------------------
>>> Open Source SOA: http://fusesource.com
>>>
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24956318.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com
Re: CXF SE: null XML Payload after unmarshall
Posted by Brian Taylor <br...@briantaylor.us>.
Thanks Freeman, I was using version 3.3 and just downloaded 3.3.1 which I
discovered is using the new 2009.01 components - I should have known to try
this first! The 2009.01 CXF SE supports the 'useSOAPEnvelope=false'
parameter. Thanks for the help and patience. :)
The problem now is that when I set both useJBIWrapper and useSOAPEnvelope
parameters on the CXF SE Endpoint the CXF SE's DocLiteralInInterceptor
throws an exception stating: "Message part
{http://www.mycompany.com/domain}TransferDocument was not recognized. (Does
it exist in service WSDL?)"
This is the route:
InOnly: File BC (has to be a bare message:
<dom:TransferDocument><dom:TransferHeader/></dom:TransferDocument>)
=>
InOnly: EIP SE (Pipeline route su - sets 'srv:save' operation on first
exchange target then 'wsn:notify' on second)
=>
In/Out: CXF SE: DocLiteralInInterceptor throws exception stating: "Message
part {http://www.mycompany.com/domain}TransferDocument was not recognized.
(Does it exist in service WSDL?)"
=>
InOnly: WSN2005 SE (haven't got here yet)
Is it possible that the CXF SE is generating Wrapped parameter style service
and not a Bare parameter style service and expecting this to have a <save>
element? If so, how can I get this to generate the Bare style? I noticed in
the CXF SE Component class the following configuration files:
"META-INF/cxf/cxf.xml",
"META-INF/cxf/cxf-extension-soap.xml",
"META-INF/cxf/transport/jbi/cxf-transport-jbi.xml",
"META-INF/cxf/binding/jbi/cxf-binding-jbi.xml"
Will these help here and if so, where can I get information on them? If not,
are there any other options?
Thanks again!
Respectfully,
Brian
Brian Taylor wrote:
>
> Does CXF SE always generate Wrapped services (e.g. <save> wrappers)? Can I
> get it to generate Bare services (no parameter wrapping)?
>
>
> Freeman Fang wrote:
>>
>> Hi,
>>
>> My comment inline
>> On 2009-8-13, at 上午2:48, Brian Taylor wrote:
>>
>>>
>>> Hello,
>>>
>>> I really appreciate any help on this.
>>>
>>> We're using a File BC SU [1] to pick up an XML message [2] (of which
>>> I added
>>> a JBI message wrapper manually so the CXF SE wouldn't gripe - I've
>>> also used
>>> a SOAP wrapper with the same end result), send the message to an EIP
>>> SE
>>> pipeline route SU [3], which sends it first to a CXF SE SU [4] and
>>> then onto
>>> a WSN-2005 SE SU (not important yet). The Java class for the CXF SE
>>> SU pojo
>>> is [5]. The resultant WSDL upon deployment is [6]. The logged [7]
>>> error that
>>> we get is a NullPointerException in the Java class [5] at:
>>> xmlDoc.getTransferHeader(). It appears the CXF SE is calling the
>>> 'save'
>>> method with a 'null' argument. I don't see any marshalling errors so
>>> I'm
>>> really puzzled at what the problem is.
>>>
>>> Also, is there a way to get the CXF SE Endpoint to set not use the
>>> JBI or
>>> SOAP wrappers? I've tried to set it in the xbean and it will accept
>>> the
>>> useJBIWrapper="false", but when I also add useSOAPEnvelope="false"
>>> it says
>>> that the useSOAPEnvelope is not a property of the CxfSeEndpoint
>>> (even though
>>> the code proves otherwise).
>> Set both seJBIWrapper="false" and useSOAPEnvelope="false" to get what
>> you want
>> You see the exception because you are not use the version including
>> the useSOAPEnvelope attribute.
>> What's the smx version you are using?
>> You can try with FUSE ESB (which is based on apache servicemix but get
>> released more frequently).
>> FUSE ESB 3.3.x[1]match smx 3.2.x and FUSE ESB 3.4.x[2] match smx 3.3.x
>> [1]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.3.1.20-fuse/
>> [2]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.4.0.4-fuse/
>>>
>>> Thanks again for any help, this is really stumping me.
>>>
>>> Brian
>>>
>>> [1] File BC SU
>>> <file:poller
>>> service="stSvc:PipelineRoutingServiceFile"
>>> endpoint="SaveTransferDocumentRouteFile"
>>> targetService="stSvc:PipelineRoutingService"
>>> targetEndpoint="SaveTransferDocumentRoute"
>>> file="c:/FilePollingService/TransferDocumentFileDrop"
>>> archive="c:/FilePollingService/TransferDocumentFileDropArchive"
>>> delay="5000"
>>> period="10000"
>>> autoCreateDirectory="true"
>>> deleteFile="true"/>
>>>
>>> [2] Message
>>> <jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>> xmlns:srv="http://domain.services.mycompany.com/"
>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> name="save"
>>> type="srv:saveRequest"
>>> version="1.0">
>>> <jbi:part>
>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>> <dom:Organization id="123456"/>
>>> </dom:TransferHeader>
>>> </dom:TransferDocument>
>>> </jbi:part>
>>> </jbi:message>
>> This message is invalid for cxf se based on the wsdl model used in cxf
>> se, if you want to call save method, it should be like
>>
>> <jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:srv="http://domain.services.mycompany.com/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> name="save"
>> type="srv:saveRequest"
>> version="1.0">
>> <jbi:part>
>> <dom:save>
>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>> <dom:TransferHeader description="JBI Wrapped with routing">
>> <dom:Organization id="123456"/>
>> </dom:TransferHeader>
>> </dom:TransferDocument>
>> </dom:save>
>> </jbi:part>
>> </jbi:message>
>>
>> You miss save element. If you are not sure what's the jbi message
>> should be, one solution is you just use a simple flow like
>> external client==>cxf-bc===> cxf-se, and turn on the debug log then
>> you can see the correct jbi message which is changed from the incoming
>> soap message.
>>
>> Freeman
>>
>>>
>>> [3] EIP Pipeline Route SU
>>> <eip:pipeline
>>> service="stSvc:PipelineRoutingService"
>>> endpoint="SaveTransferDocumentRoute">
>>> <eip:transformer>
>>> <eip:exchange-target
>>> service="stSvc:TransferDocumentDataAccessImplService"
>>> endpoint="TransferDocumentDataAccessImplPort"
>>> operation="stSvc:save"/>
>>> </eip:transformer>
>>> <eip:target>
>>> <eip:exchange-target
>>> service="wsn:NotificationBroker"
>>> endpoint="Broker"
>>> operation="wsn:Notify"/>
>>> </eip:target>
>>> </eip:pipeline>
>>>
>>> [4] CXF SE SU
>>> <cxfse:endpoint>
>>> <cxfse:pojo>
>>> <bean
>>> class="com.mycompany.services.domain.TransferDocumentDataAccessImpl"/>
>>> </cxfse:pojo>
>>> </cxfse:endpoint>
>>>
>>> [5] TransferDocumentDataAccessImplService (save method)
>>> public TransferDocument save(TransferDocument xmlDoc) throws
>>> ImproperArgumentWebFault {
>>> TransferHeader xmlHdr = xmlDoc.getTransferHeader();
>>> if(xmlHdr==null)
>>> throw new
>>> ImproperArgumentWebFault
>>> ("TransferDocumentDataAccess.save():TransferDocument="+xmlDoc);
>>>
>>> [6] Generated WSDL
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <wsdl:definitions
>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>>> xmlns:ns1="http://cxf.apache.org/transports/jbi"
>>> xmlns:tns="http://domain.services.mycompany.com/"
>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> name="TransferDocumentDataAccessImplService"
>>> targetNamespace="http://domain.services.mycompany.com/">
>>> <wsdl:types>
>>> <xs:schema
>>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>>> xmlns:ns1="http://www.mycompany.com/domain"
>>> attributeFormDefault="unqualified"
>>> elementFormDefault="unqualified"
>>> targetNamespace="http://domain.services.mycompany.com/"
>>> xmlns:tns="http://domain.services.mycompany.com/">
>>> <xs:import namespace="http://www.mycompany.com/domain"/>
>>> <xs:element name="load" type="tns:load"/>
>>> <xs:element name="loadResponse" type="tns:loadResponse"/>
>>> <xs:element name="save" type="tns:save"/>
>>> <xs:element name="saveResponse" type="tns:saveResponse"/>
>>> <xs:complexType name="load">
>>> <xs:sequence>
>>> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
>>> </xs:sequence>
>>> </xs:complexType>
>>> <xs:complexType name="loadResponse">
>>> <xs:sequence>
>>> <xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
>>> </xs:sequence>
>>> </xs:complexType>
>>> <xs:complexType name="save">
>>> <xs:sequence>
>>> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
>>> </xs:sequence>
>>> </xs:complexType>
>>> <xs:complexType name="saveResponse">
>>> <xs:sequence>
>>> <xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
>>> </xs:sequence>
>>> </xs:complexType>
>>> <xs:element name="ImproperArgumentWebFault"
>>> type="tns:ImproperArgumentWebFault"/>
>>> <xs:complexType name="ImproperArgumentWebFault">
>>> <xs:sequence/>
>>> </xs:complexType>
>>> <xs:element name="DataAccessRetryWebFault"
>>> type="tns:DataAccessRetryWebFault"/>
>>> <xs:complexType name="DataAccessRetryWebFault">
>>> <xs:sequence/>
>>> </xs:complexType>
>>> <xs:element name="DataAccessNotFoundWebFault"
>>> type="tns:DataAccessNotFoundWebFault"/>
>>> <xs:complexType name="DataAccessNotFoundWebFault">
>>> <xs:sequence/>
>>> </xs:complexType>
>>> <xs:element name="DataAccessConstraintWebFault"
>>> type="tns:DataAccessConstraintWebFault"/>
>>> <xs:complexType name="DataAccessConstraintWebFault">
>>> <xs:sequence/>
>>> </xs:complexType>
>>> <xs:element name="DataAccessDuplicateWebFault"
>>> type="tns:DataAccessDuplicateWebFault"/>
>>> <xs:complexType name="DataAccessDuplicateWebFault">
>>> <xs:sequence/>
>>> </xs:complexType>
>>> </xs:schema>
>>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>>> xmlns:tns="http://www.mycompany.com/domain"
>>> attributeFormDefault="unqualified" elementFormDefault="unqualified"
>>> targetNamespace="http://www.mycompany.com/domain">
>>> <xs:element name="TransferDocument" nillable="true"
>>> type="tns:TransferDocument"/>
>>> <xs:element name="TransferHeader" nillable="true"
>>> type="tns:TransferHeader"/>
>>> <xs:complexType name="TransferDocument">
>>> <xs:sequence>
>>> <xs:element minOccurs="0" name="TransferHeader"
>>> type="tns:TransferHeader"/>
>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="TransferDetail"
>>> type="tns:TransferDetail"/>
>>> </xs:sequence>
>>> </xs:complexType>
>>> <xs:complexType name="TransferHeader">
>>> <xs:sequence>
>>> <xs:element minOccurs="0" name="Organization"
>>> type="tns:Organization"/>
>>> </xs:sequence>
>>> <xs:attribute name="transferId" type="xs:int"/>
>>> </xs:complexType>
>>> <xs:complexType name="Organization">
>>> <xs:sequence>
>>> </xs:sequence>
>>> <xs:attribute name="id" type="xs:int"/>
>>> </xs:complexType>
>>> <xs:complexType name="TransferDetail">
>>> <xs:sequence>
>>> </xs:sequence>
>>> <xs:attribute name="transferDetailId" type="xs:int"/>
>>> <xs:attribute name="transferId" type="xs:int"/>
>>> </xs:complexType>
>>> </xs:schema>
>>> </wsdl:types>
>>> <wsdl:message name="DataAccessConstraintWebFault">
>>> <wsdl:part element="tns:DataAccessConstraintWebFault"
>>> name="DataAccessConstraintWebFault">
>>> </wsdl:part>
>>> </wsdl:message>
>>> <wsdl:message name="ImproperArgumentWebFault">
>>> <wsdl:part element="tns:ImproperArgumentWebFault"
>>> name="ImproperArgumentWebFault">
>>> </wsdl:part>
>>> </wsdl:message>
>>> <wsdl:message name="load">
>>> <wsdl:part element="tns:load" name="parameters">
>>> </wsdl:part>
>>> </wsdl:message>
>>> <wsdl:message name="DataAccessDuplicateWebFault">
>>> <wsdl:part element="tns:DataAccessDuplicateWebFault"
>>> name="DataAccessDuplicateWebFault">
>>> </wsdl:part>
>>> </wsdl:message>
>>> <wsdl:message name="DataAccessRetryWebFault">
>>> <wsdl:part element="tns:DataAccessRetryWebFault"
>>> name="DataAccessRetryWebFault">
>>> </wsdl:part>
>>> </wsdl:message>
>>> <wsdl:message name="DataAccessNotFoundWebFault">
>>> <wsdl:part element="tns:DataAccessNotFoundWebFault"
>>> name="DataAccessNotFoundWebFault">
>>> </wsdl:part>
>>> </wsdl:message>
>>> <wsdl:message name="loadResponse">
>>> <wsdl:part element="tns:loadResponse" name="parameters">
>>> </wsdl:part>
>>> </wsdl:message>
>>> <wsdl:message name="saveResponse">
>>> <wsdl:part element="tns:saveResponse" name="parameters">
>>> </wsdl:part>
>>> </wsdl:message>
>>> <wsdl:message name="save">
>>> <wsdl:part element="tns:save" name="parameters">
>>> </wsdl:part>
>>> </wsdl:message>
>>> <wsdl:portType name="TransferDocumentDataAccess">
>>> <wsdl:operation name="load">
>>> <wsdl:input message="tns:load" name="load">
>>> </wsdl:input>
>>> <wsdl:output message="tns:loadResponse" name="loadResponse">
>>> </wsdl:output>
>>> <wsdl:fault message="tns:DataAccessNotFoundWebFault"
>>> name="DataAccessNotFoundWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault message="tns:ImproperArgumentWebFault"
>>> name="ImproperArgumentWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault message="tns:DataAccessRetryWebFault"
>>> name="DataAccessRetryWebFault">
>>> </wsdl:fault>
>>> </wsdl:operation>
>>> <wsdl:operation name="save">
>>> <wsdl:input message="tns:save" name="save">
>>> </wsdl:input>
>>> <wsdl:output message="tns:saveResponse" name="saveResponse">
>>> </wsdl:output>
>>> <wsdl:fault message="tns:DataAccessConstraintWebFault"
>>> name="DataAccessConstraintWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault message="tns:ImproperArgumentWebFault"
>>> name="ImproperArgumentWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault message="tns:DataAccessDuplicateWebFault"
>>> name="DataAccessDuplicateWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault message="tns:DataAccessRetryWebFault"
>>> name="DataAccessRetryWebFault">
>>> </wsdl:fault>
>>> </wsdl:operation>
>>> </wsdl:portType>
>>> <wsdl:binding name="TransferDocumentDataAccessImplServiceJBIBinding"
>>> type="tns:TransferDocumentDataAccess">
>>> <wsdl:operation name="load">
>>> <wsdl:input name="load">
>>> </wsdl:input>
>>> <wsdl:output name="loadResponse">
>>> </wsdl:output>
>>> <wsdl:fault name="DataAccessNotFoundWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault name="ImproperArgumentWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault name="DataAccessRetryWebFault">
>>> </wsdl:fault>
>>> </wsdl:operation>
>>> <wsdl:operation name="save">
>>> <wsdl:input name="save">
>>> </wsdl:input>
>>> <wsdl:output name="saveResponse">
>>> </wsdl:output>
>>> <wsdl:fault name="DataAccessConstraintWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault name="ImproperArgumentWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault name="DataAccessDuplicateWebFault">
>>> </wsdl:fault>
>>> <wsdl:fault name="DataAccessRetryWebFault">
>>> </wsdl:fault>
>>> </wsdl:operation>
>>> </wsdl:binding>
>>> <wsdl:service name="TransferDocumentDataAccessImplService">
>>> <wsdl:port
>>> binding="tns:TransferDocumentDataAccessImplServiceJBIBinding"
>>> name="TransferDocumentDataAccessImplPort">
>>> </wsdl:port>
>>> </wsdl:service>
>>> </wsdl:definitions>
>>>
>>> [7] Logged error
>>> 14:03:44,092 | DEBUG | pool-component.servicemix-file-thread-1 |
>>> FileComponent | icemix.file.FilePollerEndpoint 298 |
>>> Polling
>>> directory c:\FilePollingService\TransferDocumentFileDrop
>>> 14:03:44,108 | DEBUG | pool-component.servicemix-file-thread-1 |
>>> FileComponent | icemix.file.FilePollerEndpoint 310 |
>>> Scheduling
>>> file
>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>> wrapped-JBI.xml
>>> for processing
>>> 14:03:44,124 | DEBUG | pool-component.servicemix-file-thread-2 |
>>> FileComponent | icemix.file.FilePollerEndpoint 330 |
>>> Processing
>>> file
>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>> wrapped-JBI.xml
>>> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
>>> FileComponent | emix.common.AsyncBaseLifeCycle 626 |
>>> Created
>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
>>> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-file}
>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
>>> exchange with secure broker
>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
>>> service
>>> name :{http://domain.services.mycompany.com/}PipelineRoutingService
>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
>>> operation
>>> name :null
>>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>>> SedaFlow
>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>> 14:03:44,264 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> SedaQueue
>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@a47962 dequeued
>>> exchange: InOnly[
>>> id: ID:172.18.127.170-1230fc5d00b-5:0
>>> status: Active
>>> role: provider
>>> service: {http://
>>> domain.services.mycompany.com/}PipelineRoutingService
>>> endpoint: SaveTransferDocumentRoute
>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>> xmlns:srv="http://domain.services.mycompany.com/"
>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>> type="srv:saveRequest" version="1.0">
>>> <jbi:part>
>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>> <dom:Organization id="123456"/>
>>> </dom:TransferHeader>
>>> </dom:TransferDocument>
>>> </jbi:part>
>>> </jbi:message>
>>> ]
>>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> EIPComponent
>>> | emix.common.AsyncBaseLifeCycle 534 | Received exchange: status:
>>> Active,
>>> role: provider
>>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> EIPComponent
>>> | emix.common.AsyncBaseLifeCycle 596 | Retrieved correlation id:
>>> ID:172.18.127.170-1230fc5d00b-5:0
>>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> MemoryStore
>>> | cemix.store.memory.MemoryStore 51 | Storing object with id:
>>> ID:172.18.127.170-1230fc5d00b-5:0
>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> EIPComponent
>>> | emix.common.AsyncBaseLifeCycle 632 | Correlation id retrieved from
>>> ThreadLocal: ID:172.18.127.170-1230fc5d00b-5:0
>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
>>> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-eip}
>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
>>> exchange with secure broker
>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
>>> service
>>> name
>>> :{http://
>>> domain.services.mycompany.com/}TransferDocumentDataAccessImplService
>>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
>>> operation
>>> name :{http://domain.services.mycompany.com/}save
>>> 14:03:44,327 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>>> SedaFlow
>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>> 14:03:44,342 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>> SedaQueue
>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@ad4bb0 dequeued
>>> exchange: InOut[
>>> id: ID:172.18.127.170-1230fc5d00b-4:0
>>> status: Active
>>> role: provider
>>> service:
>>> {http://
>>> domain.services.mycompany.com/}TransferDocumentDataAccessImplService
>>> endpoint: TransferDocumentDataAccessImplPort
>>> operation: {http://domain.services.mycompany.com/}save
>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>> xmlns:srv="http://domain.services.mycompany.com/"
>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>> type="srv:saveRequest" version="1.0">
>>> <jbi:part>
>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>> <dom:Organization id="123456"/>
>>> </dom:TransferHeader>
>>> </dom:TransferDocument>
>>> </jbi:part>
>>> </jbi:message>
>>> ]
>>> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>> CxfSeComponent | emix.common.AsyncBaseLifeCycle 534 |
>>> Received
>>> exchange: status: Active, role: provider
>>> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>> CxfSeComponent | emix.common.AsyncBaseLifeCycle 596 |
>>> Retrieved
>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
>>> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-cxf-
>>> se}
>>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
>>> exchange with secure broker
>>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>>> SedaFlow
>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>> 14:03:44,983 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>> SedaQueue
>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@2fbd59 dequeued
>>> exchange: InOut[
>>> id: ID:172.18.127.170-1230fc5d00b-4:0
>>> status: Error
>>> role: consumer
>>> interface:
>>> {http://domain.services.mycompany.com/}TransferDocumentDataAccess
>>> service:
>>> {http://
>>> domain.services.mycompany.com/}TransferDocumentDataAccessImplService
>>> endpoint: TransferDocumentDataAccessImplPort
>>> operation: {http://domain.services.mycompany.com/}save
>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>> xmlns:srv="http://domain.services.mycompany.com/"
>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>> type="srv:saveRequest" version="1.0">
>>> <jbi:part>
>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>> <dom:Organization id="123456"/>
>>> </dom:TransferHeader>
>>> </dom:TransferDocument>
>>> </jbi:part>
>>> </jbi:message>
>>> error: org.apache.cxf.interceptor.Fault
>>> ]
>>> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>> EIPComponent | emix.common.AsyncBaseLifeCycle 534 |
>>> Received
>>> exchange: status: Error, role: consumer
>>> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>> EIPComponent | emix.common.AsyncBaseLifeCycle 596 |
>>> Retrieved
>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>> MemoryStore | cemix.store.memory.MemoryStore 62 |
>>> Loading
>>> object with id: ID:172.18.127.170-1230fc5d00b-5:0
>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
>>> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-eip}
>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
>>> exchange with secure broker
>>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>>> SedaFlow
>>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>>> 14:03:45,045 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>> SedaQueue
>>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1112776 dequeued
>>> exchange: InOnly[
>>> id: ID:172.18.127.170-1230fc5d00b-5:0
>>> status: Error
>>> role: consumer
>>> service: {http://
>>> domain.services.mycompany.com/}PipelineRoutingService
>>> endpoint: SaveTransferDocumentRoute
>>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>> xmlns:srv="http://domain.services.mycompany.com/"
>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>>> type="srv:saveRequest" version="1.0">
>>> <jbi:part>
>>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>>> <dom:TransferHeader description="JBI Wrapped with routing">
>>> <dom:Organization id="123456"/>
>>> </dom:TransferHeader>
>>> </dom:TransferDocument>
>>> </jbi:part>
>>> </jbi:message>
>>> error: org.apache.cxf.interceptor.Fault
>>> ]
>>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>> FileComponent | emix.common.AsyncBaseLifeCycle 534 |
>>> Received
>>> exchange: status: Error, role: consumer
>>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>> FileComponent | emix.common.AsyncBaseLifeCycle 596 |
>>> Retrieved
>>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>>> FileComponent | icemix.file.FilePollerEndpoint 369 |
>>> Releasing
>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>> wrapped-JBI.xml
>>> 14:03:45,092 | WARN | pool-flow.seda.servicemix-eip-thread-2 |
>>> FileComponent | icemix.file.FilePollerEndpoint 389 |
>>> Message in
>>> file
>>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>>> wrapped-JBI.xml
>>> could not be handled successfully: null
>>> org.apache.cxf.interceptor.Fault
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:119)
>>> at
>>> org
>>> .apache
>>> .cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:73)
>>> at
>>> org
>>> .apache
>>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:107)
>>> at
>>> org
>>> .apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:
>>> 97)
>>> at
>>> org
>>> .apache
>>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68)
>>> at
>>> org.apache.cxf.interceptor.ServiceInvokerInterceptor
>>> $1.run(ServiceInvokerInterceptor.java:56)
>>> at
>>> org
>>> .apache
>>> .cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:
>>> 37)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .interceptor
>>> .ServiceInvokerInterceptor
>>> .handleMessage(ServiceInvokerInterceptor.java:92)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
>>> 220)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .transport
>>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>>> at
>>> org
>>> .apache
>>> .cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>>> 156)
>>> at
>>> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
>>> 283)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>>> 554)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
>>> 510)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .common
>>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>>> at
>>> org
>>> .apache
>>> .servicemix
>>> .jbi
>>> .messaging
>>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
>>> at
>>> org
>>> .apache
>>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>>> at
>>> org
>>> .apache
>>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>>> at
>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>>> $1.run(SedaQueue.java:134)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor
>>> $Worker.runTask(ThreadPoolExecutor.java:886)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor
>>> $Worker.run(ThreadPoolExecutor.java:908)
>>> at java.lang.Thread.run(Thread.java:619)
>>> Caused by: java.lang.NullPointerException
>>> at
>>> com
>>> .mycompany
>>> .services
>>> .domain
>>> .TransferDocumentDataAccessImpl
>>> .save(TransferDocumentDataAccessImpl.java:34)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun
>>> .reflect
>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun
>>> .reflect
>>> .DelegatingMethodAccessorImpl
>>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at
>>> org
>>> .apache
>>> .cxf
>>> .service
>>> .invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:136)
>>> at
>>> org
>>> .apache
>>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82)
>>> ... 20 more
>>> --
>>> View this message in context:
>>> http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24942525.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>
>>
>> --
>> Freeman Fang
>> ------------------------
>> Open Source SOA: http://fusesource.com
>>
>>
>>
>
>
--
View this message in context: http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24956318.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: CXF SE: null XML Payload after unmarshall
Posted by Brian Taylor <br...@briantaylor.us>.
Does CXF SE always generate Wrapped services (e.g. <save> wrappers)? Can I
get it to generate Bare services (no parameter wrapping)?
Freeman Fang wrote:
>
> Hi,
>
> My comment inline
> On 2009-8-13, at 上午2:48, Brian Taylor wrote:
>
>>
>> Hello,
>>
>> I really appreciate any help on this.
>>
>> We're using a File BC SU [1] to pick up an XML message [2] (of which
>> I added
>> a JBI message wrapper manually so the CXF SE wouldn't gripe - I've
>> also used
>> a SOAP wrapper with the same end result), send the message to an EIP
>> SE
>> pipeline route SU [3], which sends it first to a CXF SE SU [4] and
>> then onto
>> a WSN-2005 SE SU (not important yet). The Java class for the CXF SE
>> SU pojo
>> is [5]. The resultant WSDL upon deployment is [6]. The logged [7]
>> error that
>> we get is a NullPointerException in the Java class [5] at:
>> xmlDoc.getTransferHeader(). It appears the CXF SE is calling the
>> 'save'
>> method with a 'null' argument. I don't see any marshalling errors so
>> I'm
>> really puzzled at what the problem is.
>>
>> Also, is there a way to get the CXF SE Endpoint to set not use the
>> JBI or
>> SOAP wrappers? I've tried to set it in the xbean and it will accept
>> the
>> useJBIWrapper="false", but when I also add useSOAPEnvelope="false"
>> it says
>> that the useSOAPEnvelope is not a property of the CxfSeEndpoint
>> (even though
>> the code proves otherwise).
> Set both seJBIWrapper="false" and useSOAPEnvelope="false" to get what
> you want
> You see the exception because you are not use the version including
> the useSOAPEnvelope attribute.
> What's the smx version you are using?
> You can try with FUSE ESB (which is based on apache servicemix but get
> released more frequently).
> FUSE ESB 3.3.x[1]match smx 3.2.x and FUSE ESB 3.4.x[2] match smx 3.3.x
> [1]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.3.1.20-fuse/
> [2]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.4.0.4-fuse/
>>
>> Thanks again for any help, this is really stumping me.
>>
>> Brian
>>
>> [1] File BC SU
>> <file:poller
>> service="stSvc:PipelineRoutingServiceFile"
>> endpoint="SaveTransferDocumentRouteFile"
>> targetService="stSvc:PipelineRoutingService"
>> targetEndpoint="SaveTransferDocumentRoute"
>> file="c:/FilePollingService/TransferDocumentFileDrop"
>> archive="c:/FilePollingService/TransferDocumentFileDropArchive"
>> delay="5000"
>> period="10000"
>> autoCreateDirectory="true"
>> deleteFile="true"/>
>>
>> [2] Message
>> <jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:srv="http://domain.services.mycompany.com/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> name="save"
>> type="srv:saveRequest"
>> version="1.0">
>> <jbi:part>
>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>> <dom:TransferHeader description="JBI Wrapped with routing">
>> <dom:Organization id="123456"/>
>> </dom:TransferHeader>
>> </dom:TransferDocument>
>> </jbi:part>
>> </jbi:message>
> This message is invalid for cxf se based on the wsdl model used in cxf
> se, if you want to call save method, it should be like
>
> <jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> name="save"
> type="srv:saveRequest"
> version="1.0">
> <jbi:part>
> <dom:save>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </dom:save>
> </jbi:part>
> </jbi:message>
>
> You miss save element. If you are not sure what's the jbi message
> should be, one solution is you just use a simple flow like
> external client==>cxf-bc===> cxf-se, and turn on the debug log then
> you can see the correct jbi message which is changed from the incoming
> soap message.
>
> Freeman
>
>>
>> [3] EIP Pipeline Route SU
>> <eip:pipeline
>> service="stSvc:PipelineRoutingService"
>> endpoint="SaveTransferDocumentRoute">
>> <eip:transformer>
>> <eip:exchange-target
>> service="stSvc:TransferDocumentDataAccessImplService"
>> endpoint="TransferDocumentDataAccessImplPort"
>> operation="stSvc:save"/>
>> </eip:transformer>
>> <eip:target>
>> <eip:exchange-target
>> service="wsn:NotificationBroker"
>> endpoint="Broker"
>> operation="wsn:Notify"/>
>> </eip:target>
>> </eip:pipeline>
>>
>> [4] CXF SE SU
>> <cxfse:endpoint>
>> <cxfse:pojo>
>> <bean
>> class="com.mycompany.services.domain.TransferDocumentDataAccessImpl"/>
>> </cxfse:pojo>
>> </cxfse:endpoint>
>>
>> [5] TransferDocumentDataAccessImplService (save method)
>> public TransferDocument save(TransferDocument xmlDoc) throws
>> ImproperArgumentWebFault {
>> TransferHeader xmlHdr = xmlDoc.getTransferHeader();
>> if(xmlHdr==null)
>> throw new
>> ImproperArgumentWebFault
>> ("TransferDocumentDataAccess.save():TransferDocument="+xmlDoc);
>>
>> [6] Generated WSDL
>> <?xml version="1.0" encoding="UTF-8"?>
>> <wsdl:definitions
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:ns1="http://cxf.apache.org/transports/jbi"
>> xmlns:tns="http://domain.services.mycompany.com/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> name="TransferDocumentDataAccessImplService"
>> targetNamespace="http://domain.services.mycompany.com/">
>> <wsdl:types>
>> <xs:schema
>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> xmlns:ns1="http://www.mycompany.com/domain"
>> attributeFormDefault="unqualified"
>> elementFormDefault="unqualified"
>> targetNamespace="http://domain.services.mycompany.com/"
>> xmlns:tns="http://domain.services.mycompany.com/">
>> <xs:import namespace="http://www.mycompany.com/domain"/>
>> <xs:element name="load" type="tns:load"/>
>> <xs:element name="loadResponse" type="tns:loadResponse"/>
>> <xs:element name="save" type="tns:save"/>
>> <xs:element name="saveResponse" type="tns:saveResponse"/>
>> <xs:complexType name="load">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="loadResponse">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="save">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="saveResponse">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
>> </xs:sequence>
>> </xs:complexType>
>> <xs:element name="ImproperArgumentWebFault"
>> type="tns:ImproperArgumentWebFault"/>
>> <xs:complexType name="ImproperArgumentWebFault">
>> <xs:sequence/>
>> </xs:complexType>
>> <xs:element name="DataAccessRetryWebFault"
>> type="tns:DataAccessRetryWebFault"/>
>> <xs:complexType name="DataAccessRetryWebFault">
>> <xs:sequence/>
>> </xs:complexType>
>> <xs:element name="DataAccessNotFoundWebFault"
>> type="tns:DataAccessNotFoundWebFault"/>
>> <xs:complexType name="DataAccessNotFoundWebFault">
>> <xs:sequence/>
>> </xs:complexType>
>> <xs:element name="DataAccessConstraintWebFault"
>> type="tns:DataAccessConstraintWebFault"/>
>> <xs:complexType name="DataAccessConstraintWebFault">
>> <xs:sequence/>
>> </xs:complexType>
>> <xs:element name="DataAccessDuplicateWebFault"
>> type="tns:DataAccessDuplicateWebFault"/>
>> <xs:complexType name="DataAccessDuplicateWebFault">
>> <xs:sequence/>
>> </xs:complexType>
>> </xs:schema>
>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> xmlns:tns="http://www.mycompany.com/domain"
>> attributeFormDefault="unqualified" elementFormDefault="unqualified"
>> targetNamespace="http://www.mycompany.com/domain">
>> <xs:element name="TransferDocument" nillable="true"
>> type="tns:TransferDocument"/>
>> <xs:element name="TransferHeader" nillable="true"
>> type="tns:TransferHeader"/>
>> <xs:complexType name="TransferDocument">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="TransferHeader"
>> type="tns:TransferHeader"/>
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="TransferDetail"
>> type="tns:TransferDetail"/>
>> </xs:sequence>
>> </xs:complexType>
>> <xs:complexType name="TransferHeader">
>> <xs:sequence>
>> <xs:element minOccurs="0" name="Organization"
>> type="tns:Organization"/>
>> </xs:sequence>
>> <xs:attribute name="transferId" type="xs:int"/>
>> </xs:complexType>
>> <xs:complexType name="Organization">
>> <xs:sequence>
>> </xs:sequence>
>> <xs:attribute name="id" type="xs:int"/>
>> </xs:complexType>
>> <xs:complexType name="TransferDetail">
>> <xs:sequence>
>> </xs:sequence>
>> <xs:attribute name="transferDetailId" type="xs:int"/>
>> <xs:attribute name="transferId" type="xs:int"/>
>> </xs:complexType>
>> </xs:schema>
>> </wsdl:types>
>> <wsdl:message name="DataAccessConstraintWebFault">
>> <wsdl:part element="tns:DataAccessConstraintWebFault"
>> name="DataAccessConstraintWebFault">
>> </wsdl:part>
>> </wsdl:message>
>> <wsdl:message name="ImproperArgumentWebFault">
>> <wsdl:part element="tns:ImproperArgumentWebFault"
>> name="ImproperArgumentWebFault">
>> </wsdl:part>
>> </wsdl:message>
>> <wsdl:message name="load">
>> <wsdl:part element="tns:load" name="parameters">
>> </wsdl:part>
>> </wsdl:message>
>> <wsdl:message name="DataAccessDuplicateWebFault">
>> <wsdl:part element="tns:DataAccessDuplicateWebFault"
>> name="DataAccessDuplicateWebFault">
>> </wsdl:part>
>> </wsdl:message>
>> <wsdl:message name="DataAccessRetryWebFault">
>> <wsdl:part element="tns:DataAccessRetryWebFault"
>> name="DataAccessRetryWebFault">
>> </wsdl:part>
>> </wsdl:message>
>> <wsdl:message name="DataAccessNotFoundWebFault">
>> <wsdl:part element="tns:DataAccessNotFoundWebFault"
>> name="DataAccessNotFoundWebFault">
>> </wsdl:part>
>> </wsdl:message>
>> <wsdl:message name="loadResponse">
>> <wsdl:part element="tns:loadResponse" name="parameters">
>> </wsdl:part>
>> </wsdl:message>
>> <wsdl:message name="saveResponse">
>> <wsdl:part element="tns:saveResponse" name="parameters">
>> </wsdl:part>
>> </wsdl:message>
>> <wsdl:message name="save">
>> <wsdl:part element="tns:save" name="parameters">
>> </wsdl:part>
>> </wsdl:message>
>> <wsdl:portType name="TransferDocumentDataAccess">
>> <wsdl:operation name="load">
>> <wsdl:input message="tns:load" name="load">
>> </wsdl:input>
>> <wsdl:output message="tns:loadResponse" name="loadResponse">
>> </wsdl:output>
>> <wsdl:fault message="tns:DataAccessNotFoundWebFault"
>> name="DataAccessNotFoundWebFault">
>> </wsdl:fault>
>> <wsdl:fault message="tns:ImproperArgumentWebFault"
>> name="ImproperArgumentWebFault">
>> </wsdl:fault>
>> <wsdl:fault message="tns:DataAccessRetryWebFault"
>> name="DataAccessRetryWebFault">
>> </wsdl:fault>
>> </wsdl:operation>
>> <wsdl:operation name="save">
>> <wsdl:input message="tns:save" name="save">
>> </wsdl:input>
>> <wsdl:output message="tns:saveResponse" name="saveResponse">
>> </wsdl:output>
>> <wsdl:fault message="tns:DataAccessConstraintWebFault"
>> name="DataAccessConstraintWebFault">
>> </wsdl:fault>
>> <wsdl:fault message="tns:ImproperArgumentWebFault"
>> name="ImproperArgumentWebFault">
>> </wsdl:fault>
>> <wsdl:fault message="tns:DataAccessDuplicateWebFault"
>> name="DataAccessDuplicateWebFault">
>> </wsdl:fault>
>> <wsdl:fault message="tns:DataAccessRetryWebFault"
>> name="DataAccessRetryWebFault">
>> </wsdl:fault>
>> </wsdl:operation>
>> </wsdl:portType>
>> <wsdl:binding name="TransferDocumentDataAccessImplServiceJBIBinding"
>> type="tns:TransferDocumentDataAccess">
>> <wsdl:operation name="load">
>> <wsdl:input name="load">
>> </wsdl:input>
>> <wsdl:output name="loadResponse">
>> </wsdl:output>
>> <wsdl:fault name="DataAccessNotFoundWebFault">
>> </wsdl:fault>
>> <wsdl:fault name="ImproperArgumentWebFault">
>> </wsdl:fault>
>> <wsdl:fault name="DataAccessRetryWebFault">
>> </wsdl:fault>
>> </wsdl:operation>
>> <wsdl:operation name="save">
>> <wsdl:input name="save">
>> </wsdl:input>
>> <wsdl:output name="saveResponse">
>> </wsdl:output>
>> <wsdl:fault name="DataAccessConstraintWebFault">
>> </wsdl:fault>
>> <wsdl:fault name="ImproperArgumentWebFault">
>> </wsdl:fault>
>> <wsdl:fault name="DataAccessDuplicateWebFault">
>> </wsdl:fault>
>> <wsdl:fault name="DataAccessRetryWebFault">
>> </wsdl:fault>
>> </wsdl:operation>
>> </wsdl:binding>
>> <wsdl:service name="TransferDocumentDataAccessImplService">
>> <wsdl:port
>> binding="tns:TransferDocumentDataAccessImplServiceJBIBinding"
>> name="TransferDocumentDataAccessImplPort">
>> </wsdl:port>
>> </wsdl:service>
>> </wsdl:definitions>
>>
>> [7] Logged error
>> 14:03:44,092 | DEBUG | pool-component.servicemix-file-thread-1 |
>> FileComponent | icemix.file.FilePollerEndpoint 298 |
>> Polling
>> directory c:\FilePollingService\TransferDocumentFileDrop
>> 14:03:44,108 | DEBUG | pool-component.servicemix-file-thread-1 |
>> FileComponent | icemix.file.FilePollerEndpoint 310 |
>> Scheduling
>> file
>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>> wrapped-JBI.xml
>> for processing
>> 14:03:44,124 | DEBUG | pool-component.servicemix-file-thread-2 |
>> FileComponent | icemix.file.FilePollerEndpoint 330 |
>> Processing
>> file
>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>> wrapped-JBI.xml
>> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
>> FileComponent | emix.common.AsyncBaseLifeCycle 626 |
>> Created
>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
>> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-file}
>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
>> exchange with secure broker
>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
>> service
>> name :{http://domain.services.mycompany.com/}PipelineRoutingService
>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
>> operation
>> name :null
>> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
>> SedaFlow
>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>> 14:03:44,264 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> SedaQueue
>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@a47962 dequeued
>> exchange: InOnly[
>> id: ID:172.18.127.170-1230fc5d00b-5:0
>> status: Active
>> role: provider
>> service: {http://
>> domain.services.mycompany.com/}PipelineRoutingService
>> endpoint: SaveTransferDocumentRoute
>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:srv="http://domain.services.mycompany.com/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>> type="srv:saveRequest" version="1.0">
>> <jbi:part>
>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>> <dom:TransferHeader description="JBI Wrapped with routing">
>> <dom:Organization id="123456"/>
>> </dom:TransferHeader>
>> </dom:TransferDocument>
>> </jbi:part>
>> </jbi:message>
>> ]
>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> EIPComponent
>> | emix.common.AsyncBaseLifeCycle 534 | Received exchange: status:
>> Active,
>> role: provider
>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> EIPComponent
>> | emix.common.AsyncBaseLifeCycle 596 | Retrieved correlation id:
>> ID:172.18.127.170-1230fc5d00b-5:0
>> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> MemoryStore
>> | cemix.store.memory.MemoryStore 51 | Storing object with id:
>> ID:172.18.127.170-1230fc5d00b-5:0
>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> EIPComponent
>> | emix.common.AsyncBaseLifeCycle 632 | Correlation id retrieved from
>> ThreadLocal: ID:172.18.127.170-1230fc5d00b-5:0
>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
>> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-eip}
>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
>> exchange with secure broker
>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
>> service
>> name
>> :{http://
>> domain.services.mycompany.com/}TransferDocumentDataAccessImplService
>> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
>> operation
>> name :{http://domain.services.mycompany.com/}save
>> 14:03:44,327 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
>> SedaFlow
>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>> 14:03:44,342 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>> SedaQueue
>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@ad4bb0 dequeued
>> exchange: InOut[
>> id: ID:172.18.127.170-1230fc5d00b-4:0
>> status: Active
>> role: provider
>> service:
>> {http://
>> domain.services.mycompany.com/}TransferDocumentDataAccessImplService
>> endpoint: TransferDocumentDataAccessImplPort
>> operation: {http://domain.services.mycompany.com/}save
>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:srv="http://domain.services.mycompany.com/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>> type="srv:saveRequest" version="1.0">
>> <jbi:part>
>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>> <dom:TransferHeader description="JBI Wrapped with routing">
>> <dom:Organization id="123456"/>
>> </dom:TransferHeader>
>> </dom:TransferDocument>
>> </jbi:part>
>> </jbi:message>
>> ]
>> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>> CxfSeComponent | emix.common.AsyncBaseLifeCycle 534 |
>> Received
>> exchange: status: Active, role: provider
>> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>> CxfSeComponent | emix.common.AsyncBaseLifeCycle 596 |
>> Retrieved
>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
>> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-cxf-
>> se}
>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
>> exchange with secure broker
>> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
>> SedaFlow
>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>> 14:03:44,983 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>> SedaQueue
>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@2fbd59 dequeued
>> exchange: InOut[
>> id: ID:172.18.127.170-1230fc5d00b-4:0
>> status: Error
>> role: consumer
>> interface:
>> {http://domain.services.mycompany.com/}TransferDocumentDataAccess
>> service:
>> {http://
>> domain.services.mycompany.com/}TransferDocumentDataAccessImplService
>> endpoint: TransferDocumentDataAccessImplPort
>> operation: {http://domain.services.mycompany.com/}save
>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:srv="http://domain.services.mycompany.com/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>> type="srv:saveRequest" version="1.0">
>> <jbi:part>
>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>> <dom:TransferHeader description="JBI Wrapped with routing">
>> <dom:Organization id="123456"/>
>> </dom:TransferHeader>
>> </dom:TransferDocument>
>> </jbi:part>
>> </jbi:message>
>> error: org.apache.cxf.interceptor.Fault
>> ]
>> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>> EIPComponent | emix.common.AsyncBaseLifeCycle 534 |
>> Received
>> exchange: status: Error, role: consumer
>> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>> EIPComponent | emix.common.AsyncBaseLifeCycle 596 |
>> Retrieved
>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>> MemoryStore | cemix.store.memory.MemoryStore 62 |
>> Loading
>> object with id: ID:172.18.127.170-1230fc5d00b-5:0
>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
>> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-eip}
>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
>> exchange with secure broker
>> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
>> SedaFlow
>> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
>> 14:03:45,045 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>> SedaQueue
>> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1112776 dequeued
>> exchange: InOnly[
>> id: ID:172.18.127.170-1230fc5d00b-5:0
>> status: Error
>> role: consumer
>> service: {http://
>> domain.services.mycompany.com/}PipelineRoutingService
>> endpoint: SaveTransferDocumentRoute
>> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:srv="http://domain.services.mycompany.com/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
>> type="srv:saveRequest" version="1.0">
>> <jbi:part>
>> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
>> <dom:TransferHeader description="JBI Wrapped with routing">
>> <dom:Organization id="123456"/>
>> </dom:TransferHeader>
>> </dom:TransferDocument>
>> </jbi:part>
>> </jbi:message>
>> error: org.apache.cxf.interceptor.Fault
>> ]
>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>> FileComponent | emix.common.AsyncBaseLifeCycle 534 |
>> Received
>> exchange: status: Error, role: consumer
>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>> FileComponent | emix.common.AsyncBaseLifeCycle 596 |
>> Retrieved
>> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
>> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
>> FileComponent | icemix.file.FilePollerEndpoint 369 |
>> Releasing
>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>> wrapped-JBI.xml
>> 14:03:45,092 | WARN | pool-flow.seda.servicemix-eip-thread-2 |
>> FileComponent | icemix.file.FilePollerEndpoint 389 |
>> Message in
>> file
>> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
>> wrapped-JBI.xml
>> could not be handled successfully: null
>> org.apache.cxf.interceptor.Fault
>> at
>> org
>> .apache
>> .cxf
>> .service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:119)
>> at
>> org
>> .apache
>> .cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:73)
>> at
>> org
>> .apache
>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:107)
>> at
>> org
>> .apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:
>> 97)
>> at
>> org
>> .apache
>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68)
>> at
>> org.apache.cxf.interceptor.ServiceInvokerInterceptor
>> $1.run(ServiceInvokerInterceptor.java:56)
>> at
>> org
>> .apache
>> .cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:
>> 37)
>> at
>> org
>> .apache
>> .cxf
>> .interceptor
>> .ServiceInvokerInterceptor
>> .handleMessage(ServiceInvokerInterceptor.java:92)
>> at
>> org
>> .apache
>> .cxf
>> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
>> 220)
>> at
>> org
>> .apache
>> .cxf
>> .transport
>> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
>> at
>> org
>> .apache
>> .cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
>> 156)
>> at
>> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
>> 283)
>> at
>> org
>> .apache
>> .servicemix
>> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
>> at
>> org
>> .apache
>> .servicemix
>> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
>> 554)
>> at
>> org
>> .apache
>> .servicemix
>> .common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
>> 510)
>> at
>> org
>> .apache
>> .servicemix
>> .common
>> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
>> at
>> org
>> .apache
>> .servicemix
>> .jbi
>> .messaging
>> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
>> at
>> org
>> .apache
>> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
>> at
>> org
>> .apache
>> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
>> at
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
>> $1.run(SedaQueue.java:134)
>> at
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.runTask(ThreadPoolExecutor.java:886)
>> at
>> java.util.concurrent.ThreadPoolExecutor
>> $Worker.run(ThreadPoolExecutor.java:908)
>> at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.NullPointerException
>> at
>> com
>> .mycompany
>> .services
>> .domain
>> .TransferDocumentDataAccessImpl
>> .save(TransferDocumentDataAccessImpl.java:34)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
>> sun
>> .reflect
>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
>> sun
>> .reflect
>> .DelegatingMethodAccessorImpl
>> .invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at
>> org
>> .apache
>> .cxf
>> .service
>> .invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:136)
>> at
>> org
>> .apache
>> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82)
>> ... 20 more
>> --
>> View this message in context:
>> http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24942525.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>
>
> --
> Freeman Fang
> ------------------------
> Open Source SOA: http://fusesource.com
>
>
>
--
View this message in context: http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24954428.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.
Re: CXF SE: null XML Payload after unmarshall
Posted by Freeman Fang <fr...@gmail.com>.
Hi,
My comment inline
On 2009-8-13, at 上午2:48, Brian Taylor wrote:
>
> Hello,
>
> I really appreciate any help on this.
>
> We're using a File BC SU [1] to pick up an XML message [2] (of which
> I added
> a JBI message wrapper manually so the CXF SE wouldn't gripe - I've
> also used
> a SOAP wrapper with the same end result), send the message to an EIP
> SE
> pipeline route SU [3], which sends it first to a CXF SE SU [4] and
> then onto
> a WSN-2005 SE SU (not important yet). The Java class for the CXF SE
> SU pojo
> is [5]. The resultant WSDL upon deployment is [6]. The logged [7]
> error that
> we get is a NullPointerException in the Java class [5] at:
> xmlDoc.getTransferHeader(). It appears the CXF SE is calling the
> 'save'
> method with a 'null' argument. I don't see any marshalling errors so
> I'm
> really puzzled at what the problem is.
>
> Also, is there a way to get the CXF SE Endpoint to set not use the
> JBI or
> SOAP wrappers? I've tried to set it in the xbean and it will accept
> the
> useJBIWrapper="false", but when I also add useSOAPEnvelope="false"
> it says
> that the useSOAPEnvelope is not a property of the CxfSeEndpoint
> (even though
> the code proves otherwise).
Set both seJBIWrapper="false" and useSOAPEnvelope="false" to get what
you want
You see the exception because you are not use the version including
the useSOAPEnvelope attribute.
What's the smx version you are using?
You can try with FUSE ESB (which is based on apache servicemix but get
released more frequently).
FUSE ESB 3.3.x[1]match smx 3.2.x and FUSE ESB 3.4.x[2] match smx 3.3.x
[1]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.3.1.20-fuse/
[2]http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.4.0.4-fuse/
>
> Thanks again for any help, this is really stumping me.
>
> Brian
>
> [1] File BC SU
> <file:poller
> service="stSvc:PipelineRoutingServiceFile"
> endpoint="SaveTransferDocumentRouteFile"
> targetService="stSvc:PipelineRoutingService"
> targetEndpoint="SaveTransferDocumentRoute"
> file="c:/FilePollingService/TransferDocumentFileDrop"
> archive="c:/FilePollingService/TransferDocumentFileDropArchive"
> delay="5000"
> period="10000"
> autoCreateDirectory="true"
> deleteFile="true"/>
>
> [2] Message
> <jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> name="save"
> type="srv:saveRequest"
> version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
This message is invalid for cxf se based on the wsdl model used in cxf
se, if you want to call save method, it should be like
<jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:srv="http://domain.services.mycompany.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="save"
type="srv:saveRequest"
version="1.0">
<jbi:part>
<dom:save>
<dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
<dom:TransferHeader description="JBI Wrapped with routing">
<dom:Organization id="123456"/>
</dom:TransferHeader>
</dom:TransferDocument>
</dom:save>
</jbi:part>
</jbi:message>
You miss save element. If you are not sure what's the jbi message
should be, one solution is you just use a simple flow like
external client==>cxf-bc===> cxf-se, and turn on the debug log then
you can see the correct jbi message which is changed from the incoming
soap message.
Freeman
>
> [3] EIP Pipeline Route SU
> <eip:pipeline
> service="stSvc:PipelineRoutingService"
> endpoint="SaveTransferDocumentRoute">
> <eip:transformer>
> <eip:exchange-target
> service="stSvc:TransferDocumentDataAccessImplService"
> endpoint="TransferDocumentDataAccessImplPort"
> operation="stSvc:save"/>
> </eip:transformer>
> <eip:target>
> <eip:exchange-target
> service="wsn:NotificationBroker"
> endpoint="Broker"
> operation="wsn:Notify"/>
> </eip:target>
> </eip:pipeline>
>
> [4] CXF SE SU
> <cxfse:endpoint>
> <cxfse:pojo>
> <bean
> class="com.mycompany.services.domain.TransferDocumentDataAccessImpl"/>
> </cxfse:pojo>
> </cxfse:endpoint>
>
> [5] TransferDocumentDataAccessImplService (save method)
> public TransferDocument save(TransferDocument xmlDoc) throws
> ImproperArgumentWebFault {
> TransferHeader xmlHdr = xmlDoc.getTransferHeader();
> if(xmlHdr==null)
> throw new
> ImproperArgumentWebFault
> ("TransferDocumentDataAccess.save():TransferDocument="+xmlDoc);
>
> [6] Generated WSDL
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:ns1="http://cxf.apache.org/transports/jbi"
> xmlns:tns="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> name="TransferDocumentDataAccessImplService"
> targetNamespace="http://domain.services.mycompany.com/">
> <wsdl:types>
> <xs:schema
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:ns1="http://www.mycompany.com/domain"
> attributeFormDefault="unqualified"
> elementFormDefault="unqualified"
> targetNamespace="http://domain.services.mycompany.com/"
> xmlns:tns="http://domain.services.mycompany.com/">
> <xs:import namespace="http://www.mycompany.com/domain"/>
> <xs:element name="load" type="tns:load"/>
> <xs:element name="loadResponse" type="tns:loadResponse"/>
> <xs:element name="save" type="tns:save"/>
> <xs:element name="saveResponse" type="tns:saveResponse"/>
> <xs:complexType name="load">
> <xs:sequence>
> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="loadResponse">
> <xs:sequence>
> <xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="save">
> <xs:sequence>
> <xs:element minOccurs="0" name="arg0" type="ns1:TransferDocument"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="saveResponse">
> <xs:sequence>
> <xs:element minOccurs="0" name="return" type="ns1:TransferDocument"/>
> </xs:sequence>
> </xs:complexType>
> <xs:element name="ImproperArgumentWebFault"
> type="tns:ImproperArgumentWebFault"/>
> <xs:complexType name="ImproperArgumentWebFault">
> <xs:sequence/>
> </xs:complexType>
> <xs:element name="DataAccessRetryWebFault"
> type="tns:DataAccessRetryWebFault"/>
> <xs:complexType name="DataAccessRetryWebFault">
> <xs:sequence/>
> </xs:complexType>
> <xs:element name="DataAccessNotFoundWebFault"
> type="tns:DataAccessNotFoundWebFault"/>
> <xs:complexType name="DataAccessNotFoundWebFault">
> <xs:sequence/>
> </xs:complexType>
> <xs:element name="DataAccessConstraintWebFault"
> type="tns:DataAccessConstraintWebFault"/>
> <xs:complexType name="DataAccessConstraintWebFault">
> <xs:sequence/>
> </xs:complexType>
> <xs:element name="DataAccessDuplicateWebFault"
> type="tns:DataAccessDuplicateWebFault"/>
> <xs:complexType name="DataAccessDuplicateWebFault">
> <xs:sequence/>
> </xs:complexType>
> </xs:schema>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:tns="http://www.mycompany.com/domain"
> attributeFormDefault="unqualified" elementFormDefault="unqualified"
> targetNamespace="http://www.mycompany.com/domain">
> <xs:element name="TransferDocument" nillable="true"
> type="tns:TransferDocument"/>
> <xs:element name="TransferHeader" nillable="true"
> type="tns:TransferHeader"/>
> <xs:complexType name="TransferDocument">
> <xs:sequence>
> <xs:element minOccurs="0" name="TransferHeader"
> type="tns:TransferHeader"/>
> <xs:element maxOccurs="unbounded" minOccurs="0" name="TransferDetail"
> type="tns:TransferDetail"/>
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="TransferHeader">
> <xs:sequence>
> <xs:element minOccurs="0" name="Organization"
> type="tns:Organization"/>
> </xs:sequence>
> <xs:attribute name="transferId" type="xs:int"/>
> </xs:complexType>
> <xs:complexType name="Organization">
> <xs:sequence>
> </xs:sequence>
> <xs:attribute name="id" type="xs:int"/>
> </xs:complexType>
> <xs:complexType name="TransferDetail">
> <xs:sequence>
> </xs:sequence>
> <xs:attribute name="transferDetailId" type="xs:int"/>
> <xs:attribute name="transferId" type="xs:int"/>
> </xs:complexType>
> </xs:schema>
> </wsdl:types>
> <wsdl:message name="DataAccessConstraintWebFault">
> <wsdl:part element="tns:DataAccessConstraintWebFault"
> name="DataAccessConstraintWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="ImproperArgumentWebFault">
> <wsdl:part element="tns:ImproperArgumentWebFault"
> name="ImproperArgumentWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="load">
> <wsdl:part element="tns:load" name="parameters">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="DataAccessDuplicateWebFault">
> <wsdl:part element="tns:DataAccessDuplicateWebFault"
> name="DataAccessDuplicateWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="DataAccessRetryWebFault">
> <wsdl:part element="tns:DataAccessRetryWebFault"
> name="DataAccessRetryWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="DataAccessNotFoundWebFault">
> <wsdl:part element="tns:DataAccessNotFoundWebFault"
> name="DataAccessNotFoundWebFault">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="loadResponse">
> <wsdl:part element="tns:loadResponse" name="parameters">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="saveResponse">
> <wsdl:part element="tns:saveResponse" name="parameters">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="save">
> <wsdl:part element="tns:save" name="parameters">
> </wsdl:part>
> </wsdl:message>
> <wsdl:portType name="TransferDocumentDataAccess">
> <wsdl:operation name="load">
> <wsdl:input message="tns:load" name="load">
> </wsdl:input>
> <wsdl:output message="tns:loadResponse" name="loadResponse">
> </wsdl:output>
> <wsdl:fault message="tns:DataAccessNotFoundWebFault"
> name="DataAccessNotFoundWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:ImproperArgumentWebFault"
> name="ImproperArgumentWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:DataAccessRetryWebFault"
> name="DataAccessRetryWebFault">
> </wsdl:fault>
> </wsdl:operation>
> <wsdl:operation name="save">
> <wsdl:input message="tns:save" name="save">
> </wsdl:input>
> <wsdl:output message="tns:saveResponse" name="saveResponse">
> </wsdl:output>
> <wsdl:fault message="tns:DataAccessConstraintWebFault"
> name="DataAccessConstraintWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:ImproperArgumentWebFault"
> name="ImproperArgumentWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:DataAccessDuplicateWebFault"
> name="DataAccessDuplicateWebFault">
> </wsdl:fault>
> <wsdl:fault message="tns:DataAccessRetryWebFault"
> name="DataAccessRetryWebFault">
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="TransferDocumentDataAccessImplServiceJBIBinding"
> type="tns:TransferDocumentDataAccess">
> <wsdl:operation name="load">
> <wsdl:input name="load">
> </wsdl:input>
> <wsdl:output name="loadResponse">
> </wsdl:output>
> <wsdl:fault name="DataAccessNotFoundWebFault">
> </wsdl:fault>
> <wsdl:fault name="ImproperArgumentWebFault">
> </wsdl:fault>
> <wsdl:fault name="DataAccessRetryWebFault">
> </wsdl:fault>
> </wsdl:operation>
> <wsdl:operation name="save">
> <wsdl:input name="save">
> </wsdl:input>
> <wsdl:output name="saveResponse">
> </wsdl:output>
> <wsdl:fault name="DataAccessConstraintWebFault">
> </wsdl:fault>
> <wsdl:fault name="ImproperArgumentWebFault">
> </wsdl:fault>
> <wsdl:fault name="DataAccessDuplicateWebFault">
> </wsdl:fault>
> <wsdl:fault name="DataAccessRetryWebFault">
> </wsdl:fault>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="TransferDocumentDataAccessImplService">
> <wsdl:port
> binding="tns:TransferDocumentDataAccessImplServiceJBIBinding"
> name="TransferDocumentDataAccessImplPort">
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
> [7] Logged error
> 14:03:44,092 | DEBUG | pool-component.servicemix-file-thread-1 |
> FileComponent | icemix.file.FilePollerEndpoint 298 |
> Polling
> directory c:\FilePollingService\TransferDocumentFileDrop
> 14:03:44,108 | DEBUG | pool-component.servicemix-file-thread-1 |
> FileComponent | icemix.file.FilePollerEndpoint 310 |
> Scheduling
> file
> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
> wrapped-JBI.xml
> for processing
> 14:03:44,124 | DEBUG | pool-component.servicemix-file-thread-2 |
> FileComponent | icemix.file.FilePollerEndpoint 330 |
> Processing
> file
> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
> wrapped-JBI.xml
> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
> FileComponent | emix.common.AsyncBaseLifeCycle 626 |
> Created
> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,186 | DEBUG | pool-component.servicemix-file-thread-2 |
> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-file}
> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
> exchange with secure broker
> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
> service
> name :{http://domain.services.mycompany.com/}PipelineRoutingService
> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
> operation
> name :null
> 14:03:44,202 | DEBUG | pool-component.servicemix-file-thread-2 |
> SedaFlow
> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
> 14:03:44,264 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> SedaQueue
> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@a47962 dequeued
> exchange: InOnly[
> id: ID:172.18.127.170-1230fc5d00b-5:0
> status: Active
> role: provider
> service: {http://
> domain.services.mycompany.com/}PipelineRoutingService
> endpoint: SaveTransferDocumentRoute
> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
> type="srv:saveRequest" version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
> ]
> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> EIPComponent
> | emix.common.AsyncBaseLifeCycle 534 | Received exchange: status:
> Active,
> role: provider
> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> EIPComponent
> | emix.common.AsyncBaseLifeCycle 596 | Retrieved correlation id:
> ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,295 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> MemoryStore
> | cemix.store.memory.MemoryStore 51 | Storing object with id:
> ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> EIPComponent
> | emix.common.AsyncBaseLifeCycle 632 | Correlation id retrieved from
> ThreadLocal: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-eip}
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
> exchange with secure broker
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> SecuredBroker | mix.jbi.security.SecuredBroker 72 |
> service
> name
> :{http://
> domain.services.mycompany.com/}TransferDocumentDataAccessImplService
> 14:03:44,311 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> SecuredBroker | mix.jbi.security.SecuredBroker 73 |
> operation
> name :{http://domain.services.mycompany.com/}save
> 14:03:44,327 | DEBUG | pool-flow.seda.servicemix-eip-thread-1 |
> SedaFlow
> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
> 14:03:44,342 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> SedaQueue
> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@ad4bb0 dequeued
> exchange: InOut[
> id: ID:172.18.127.170-1230fc5d00b-4:0
> status: Active
> role: provider
> service:
> {http://
> domain.services.mycompany.com/}TransferDocumentDataAccessImplService
> endpoint: TransferDocumentDataAccessImplPort
> operation: {http://domain.services.mycompany.com/}save
> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
> type="srv:saveRequest" version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
> ]
> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> CxfSeComponent | emix.common.AsyncBaseLifeCycle 534 |
> Received
> exchange: status: Active, role: provider
> 14:03:44,374 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> CxfSeComponent | emix.common.AsyncBaseLifeCycle 596 |
> Retrieved
> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
> ID:172.18.127.170-1230fc5d00b-4:0 in DeliveryChannel{servicemix-cxf-
> se}
> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
> exchange with secure broker
> 14:03:44,967 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-1 |
> SedaFlow
> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
> 14:03:44,983 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> SedaQueue
> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@2fbd59 dequeued
> exchange: InOut[
> id: ID:172.18.127.170-1230fc5d00b-4:0
> status: Error
> role: consumer
> interface:
> {http://domain.services.mycompany.com/}TransferDocumentDataAccess
> service:
> {http://
> domain.services.mycompany.com/}TransferDocumentDataAccessImplService
> endpoint: TransferDocumentDataAccessImplPort
> operation: {http://domain.services.mycompany.com/}save
> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
> type="srv:saveRequest" version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
> error: org.apache.cxf.interceptor.Fault
> ]
> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> EIPComponent | emix.common.AsyncBaseLifeCycle 534 |
> Received
> exchange: status: Error, role: consumer
> 14:03:45,014 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> EIPComponent | emix.common.AsyncBaseLifeCycle 596 |
> Retrieved
> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> MemoryStore | cemix.store.memory.MemoryStore 62 |
> Loading
> object with id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> DeliveryChannelImpl | .messaging.DeliveryChannelImpl 425 | Send
> ID:172.18.127.170-1230fc5d00b-5:0 in DeliveryChannel{servicemix-eip}
> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> SecuredBroker | mix.jbi.security.SecuredBroker 66 | send
> exchange with secure broker
> 14:03:45,030 | DEBUG | pool-flow.seda.servicemix-cxf-se-thread-2 |
> SedaFlow
> | emix.jbi.nmr.flow.AbstractFlow 118 | Called Flow send
> 14:03:45,045 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
> SedaQueue
> | .jbi.nmr.flow.seda.SedaQueue$1 132 |
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1112776 dequeued
> exchange: InOnly[
> id: ID:172.18.127.170-1230fc5d00b-5:0
> status: Error
> role: consumer
> service: {http://
> domain.services.mycompany.com/}PipelineRoutingService
> endpoint: SaveTransferDocumentRoute
> in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:srv="http://domain.services.mycompany.com/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="save"
> type="srv:saveRequest" version="1.0">
> <jbi:part>
> <dom:TransferDocument xmlns:dom="http://www.mycompany.com/domain">
> <dom:TransferHeader description="JBI Wrapped with routing">
> <dom:Organization id="123456"/>
> </dom:TransferHeader>
> </dom:TransferDocument>
> </jbi:part>
> </jbi:message>
> error: org.apache.cxf.interceptor.Fault
> ]
> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
> FileComponent | emix.common.AsyncBaseLifeCycle 534 |
> Received
> exchange: status: Error, role: consumer
> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
> FileComponent | emix.common.AsyncBaseLifeCycle 596 |
> Retrieved
> correlation id: ID:172.18.127.170-1230fc5d00b-5:0
> 14:03:45,092 | DEBUG | pool-flow.seda.servicemix-eip-thread-2 |
> FileComponent | icemix.file.FilePollerEndpoint 369 |
> Releasing
> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
> wrapped-JBI.xml
> 14:03:45,092 | WARN | pool-flow.seda.servicemix-eip-thread-2 |
> FileComponent | icemix.file.FilePollerEndpoint 389 |
> Message in
> file
> c:\FilePollingService\TransferDocumentFileDrop\TransferDocument-
> wrapped-JBI.xml
> could not be handled successfully: null
> org.apache.cxf.interceptor.Fault
> at
> org
> .apache
> .cxf
> .service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:119)
> at
> org
> .apache
> .cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:73)
> at
> org
> .apache
> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:107)
> at
> org
> .apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:
> 97)
> at
> org
> .apache
> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68)
> at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor
> $1.run(ServiceInvokerInterceptor.java:56)
> at
> org
> .apache
> .cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:
> 37)
> at
> org
> .apache
> .cxf
> .interceptor
> .ServiceInvokerInterceptor
> .handleMessage(ServiceInvokerInterceptor.java:92)
> at
> org
> .apache
> .cxf
> .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:
> 220)
> at
> org
> .apache
> .cxf
> .transport
> .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
> at
> org
> .apache
> .cxf.transport.jbi.JBIDispatcherUtil.dispatch(JBIDispatcherUtil.java:
> 156)
> at
> org.apache.servicemix.cxfse.CxfSeEndpoint.process(CxfSeEndpoint.java:
> 283)
> at
> org
> .apache
> .servicemix
> .common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
> at
> org
> .apache
> .servicemix
> .common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:
> 554)
> at
> org
> .apache
> .servicemix
> .common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:
> 510)
> at
> org
> .apache
> .servicemix
> .common
> .SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> at
> org
> .apache
> .servicemix
> .jbi
> .messaging
> .DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
> at
> org
> .apache
> .servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at
> org
> .apache
> .servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue
> $1.run(SedaQueue.java:134)
> at
> java.util.concurrent.ThreadPoolExecutor
> $Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor
> $Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.NullPointerException
> at
> com
> .mycompany
> .services
> .domain
> .TransferDocumentDataAccessImpl
> .save(TransferDocumentDataAccessImpl.java:34)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org
> .apache
> .cxf
> .service
> .invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:136)
> at
> org
> .apache
> .cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82)
> ... 20 more
> --
> View this message in context: http://www.nabble.com/CXF-SE%3A-null-XML-Payload-after-unmarshall-tp24942525p24942525.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com