You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Florent <fl...@sopragroup.com> on 2007/12/12 12:22:40 UTC

servicemix-cxf-bc missing namespace prefix


Hello,

I still have the same configuration :
- Web service server (WAS 6.1)
- Servicemix-cxf-bc consumer / provier (used as a bridge)
- Web service client (CXF)

I got some nillable array in my WSDL definition. Everything is ok as long as
those arrays are not null.
But when they are, "xsi:nil="true"" is added to the soap message. Everything
is still ok as long as i don't use the bridge (direct WS call from my CXF
client)

When i used the bridge, here is a part of the jbi out message :

<commitmentCode>1130</commitmentCode>
<companyCode>071</companyCode>
<consolidatedAutorisation
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:nil="true" />
<consolidatedUtilisation
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:nil="true" />

But here is a part of the soap out message :

<repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
<subjectToApproval
	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
	xmlns:p724="http://dto.fcb.mycompany.com" />
<syndication xsi: nil="true" />
<syndicationReference xsi:nil="true" />
<tolerancePercentage>1.0</tolerancePercentage>

As you can see, there is no
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

And here is the error log of cxf client :

INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace
prefix "xsi" (for attribute "nil")
 at [row,col {unknown-source}]: [1,613] 
	at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
	at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
	at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
	at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
	at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
	at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
	at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
	at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
Source)
	at
com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
Caused by: javax.xml.bind.UnmarshalException
 - with linked exception:
[com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi"
(for attribute "nil")
 at [row,col {unknown-source}]: [1,613]]
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
	at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
	... 17 more


Does servicemix-cxf supports
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?

Thanks in advance,
Best regards,
Florent.
-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14292666.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

Hi Freeman,

About soap encoding, i can't really avoid it. But, as long as the namespace
is declared, it should be fine.

About the log, i can give you some part of it (due to the size of the
message, i can't log it all, but i'll try to do another example - a shorter
one).

The soap message (sent by WAS) :

<soapenv:Envelope
	xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
	xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<soapenv:Header />
	<soapenv:Body>
		<p559:searchAutorisationByInternalAutorisationNumberDTOResponse
			xmlns:p559="http://ejb.ejb.fcb.mycompany.com">
			<searchAutorisationByInternalAutorisationNumberDTOReturn>
				<accountCurrency>MAD</accountCurrency>
				<accountNumber>KLIFCP3001001</accountNumber>
				<agreementDate>2007-06-30T22:00:00.000Z</agreementDate>
				<amount>323655</amount>
				<autorisationNumber>KLIFAUTL31001</autorisationNumber>
				<autorisationStatus>B</autorisationStatus>
				<commitmentCode>1130</commitmentCode>
				<companyCode>071</companyCode>
				<consolidatedAutorisation
					soapenc:arrayType="p724:AutorisationDTO[0]"
					xmlns:p724="http://dto.fcb.mycompany.com" />
				<consolidatedUtilisation>
					<agreementDate xsi:nil="true" />
					<amount xsi:nil="true" />
					<autorisationNumber xsi:nil="true" />
					<companyCode xsi:nil="true" />
					<currency xsi:nil="true" />
					<customerNumber xsi:nil="true" />
					<groupNumber xsi:nil="true" />
					<natureOfRisk xsi:nil="true" />
					<originEntity xsi:nil="true" />
					<utilisationDate xsi:nil="true" />
					<utilisationLevel xsi:nil="true" />
					<utilisationType xsi:nil="true" />
				</consolidatedUtilisation>
				<contractNumber>KLIFCONL39001</contractNumber>
				<creditFormReference>????????????</creditFormReference>
				<currency>MAD</currency>
				<duration>13</duration>
				<endOfGracePeriod>
					2008-01-01T23:00:00.000Z
				</endOfGracePeriod>
				<externalReference
					soapenc:arrayType="p724:ExternalReferenceDTO[1]"
					xmlns:p724="http://dto.fcb.mycompany.com">
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<applicationCode>xxx01</applicationCode>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<externalId>KLIFEXTL31001</externalId>
					</item>
				</externalReference>
				<file soapenc:arrayType="p724:FileDTO[1]"
					xmlns:p724="http://dto.fcb.mycompany.com">
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<arrears soapenc:arrayType="p724:ArrearsDTO[0]" />
						<companyCode>071</companyCode>
						<fileNumber>KLIFPAML37503</fileNumber>
						<originEntity>LOANS</originEntity>
					</item>
				</file>
				<fileType>PAM</fileType>
				<financialPhase
					soapenc:arrayType="p724:FinancialPhaseDTO[12]"
					xmlns:p724="http://dto.fcb.mycompany.com">
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>500000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-05-31T22:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>5</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-04-30T22:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>100000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-12-30T23:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>12</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-11-30T23:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>200000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-11-30T23:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>11</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-10-31T23:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>400000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-10-31T23:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>10</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-09-30T22:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>100000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-01-31T23:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>1</financialPhaseNumber>
						<financialPhaseStartingDate>
							2006-12-31T23:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>200000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-02-28T23:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>2</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-01-31T23:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>300000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-03-31T22:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>3</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-02-28T23:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>400000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-04-30T22:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>4</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-03-31T22:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>600000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-06-30T22:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>6</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-05-31T22:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>700000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-07-31T22:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>7</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-06-30T22:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>800000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-08-31T22:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>8</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-07-31T22:00:00.000Z
						</financialPhaseStartingDate>
					</item>
					<item>
						<agreementDate>
							2007-06-30T22:00:00.000Z
						</agreementDate>
						<amount>1100000</amount>
						<autorisationNumber>
							KLIFAUTL31001
						</autorisationNumber>
						<companyCode>071</companyCode>
						<currency>USD</currency>
						<endOfFinancialPhase>
							2007-09-30T22:00:00.000Z
						</endOfFinancialPhase>
						<financialPhaseNumber>9</financialPhaseNumber>
						<financialPhaseStartingDate>
							2007-08-31T22:00:00.000Z
						</financialPhaseStartingDate>
					</item>
				</financialPhase>
				<guarantee soapenc:arrayType="p724:GuaranteeDTO[0]"
					xmlns:p724="http://dto.fcb.mycompany.com" />
				<guaranteeConsolidatedAmount xsi:nil="true" />
				<hedging xsi:nil="true" />
				<indicConsolidation>1</indicConsolidation>
				<indicContract xsi:nil="true" />
				<indicCreditApproved>1</indicCreditApproved>
				<indicRenewal>1</indicRenewal>
				<indicRevision>1</indicRevision>
				<internalContractNumber>56</internalContractNumber>
				<limitBreaking>
					<agreementDate xsi:nil="true" />
					<amount xsi:nil="true" />
					<autorisationNumber xsi:nil="true" />
					<autorisationType xsi:nil="true" />
					<companyCode xsi:nil="true" />
					<currency xsi:nil="true" />
					<customerNumber xsi:nil="true" />
					<groupNumber xsi:nil="true" />
					<limitBreakingDate xsi:nil="true" />
					<limitBreakingLevel xsi:nil="true" />
					<limitBreakingStartingDate xsi:nil="true" />
					<natureOfRisk xsi:nil="true" />
					<originEntity xsi:nil="true" />
					<previousDayAmount xsi:nil="true" />
					<utilisationReference xsi:nil="true" />
				</limitBreaking>
				<natureOfRiskCode xsi:nil="true" />
				?????
				<originEntity>LOANS</originEntity>
				<provision soapenc:arrayType="p724:ProvisionDTO[0]"
					xmlns:p724="http://dto.fcb.mycompany.com" />
				<puttingIntoForceDate>
					2007-01-01T23:00:00.000Z
				</puttingIntoForceDate>
				<repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
				<subjectToApproval
					soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
					xmlns:p724="http://dto.fcb.mycompany.com" />
				<syndication>
					<companyCode xsi:nil="true" />
					<indicPoolLeader xsi:nil="true" />
					<riskPercentage xsi:nil="true" />
					<syndicationDesignation xsi:nil="true" />
					<syndicationReference xsi:nil="true" />
					<treasuryPercentage xsi:nil="true" />
				</syndication>
				<syndicationReference xsi:nil="true" />
				<tolerancePercentage>1.0</tolerancePercentage>
				<utilisation soapenc:arrayType="p724:UtilisationDTO[0]"
					xmlns:p724="http://dto.fcb.mycompany.com" />
				<utilisationConsolidatedAmount>
					0
				</utilisationConsolidatedAmount>
			</searchAutorisationByInternalAutorisationNumberDTOReturn>
		</p559:searchAutorisationByInternalAutorisationNumberDTOResponse>
	</soapenv:Body>
</soapenv:Envelope>

The wsdl : 

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://ejb.ejb.fcb.mycompany.com"
xmlns:impl="http://ejb.ejb.fcb.mycompany.com"
xmlns:intf="http://ejb.ejb.fcb.mycompany.com"
xmlns:tns2="http://dto.fcb.mycompany.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <wsdl:types>
  <schema targetNamespace="http://ejb.ejb.fcb.mycompany.com"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns2="http://dto.fcb.mycompany.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://dto.fcb.mycompany.com"/>
   <element
name="searchAutorisationByInternalAutorisationNumberDTOResponse">
    <complexType>
     <sequence>
      <element
name="searchAutorisationByInternalAutorisationNumberDTOReturn"
nillable="true" type="tns2:AutorisationDTO"/>
     </sequence>
    </complexType>
   </element>
   <element name="searchAutorisationByInternalAutorisationNumberDTO">
    <complexType>
     <sequence>
      <element name="context" nillable="true" type="xsd:string"/>
      <element name="companyCode" nillable="true" type="xsd:string"/>
      <element name="autorisationNumber" nillable="true" type="xsd:string"/>
      <element name="originEntity" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="ArrayOf_tns2_nillable_AutorisationDTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="AutorisationDTO"
nillable="true" type="tns2:AutorisationDTO"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_tns2_nillable_ExternalReferenceDTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0"
name="ExternalReferenceDTO" nillable="true"
type="tns2:ExternalReferenceDTO"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_tns2_nillable_ArrearsDTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="ArrearsDTO"
nillable="true" type="tns2:ArrearsDTO"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_tns2_nillable_FileDTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="FileDTO"
nillable="true" type="tns2:FileDTO"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_tns2_nillable_FinancialPhaseDTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="FinancialPhaseDTO"
nillable="true" type="tns2:FinancialPhaseDTO"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_xsd_nillable_string">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="string"
nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_tns2_nillable_GuaranteeDTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="GuaranteeDTO"
nillable="true" type="tns2:GuaranteeDTO"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_tns2_nillable_ProvisionDTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="ProvisionDTO"
nillable="true" type="tns2:ProvisionDTO"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_tns2_nillable_SubjectToApprovalDTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0"
name="SubjectToApprovalDTO" nillable="true"
type="tns2:SubjectToApprovalDTO"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_tns2_nillable_UtilisationDTO">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="UtilisationDTO"
nillable="true" type="tns2:UtilisationDTO"/>
    </sequence>
   </complexType>
  </schema>
  <schema targetNamespace="http://dto.fcb.mycompany.com"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:intf="http://ejb.ejb.fcb.mycompany.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://ejb.ejb.fcb.mycompany.com"/>
   <complexType name="AutorisationDTO">
    <sequence>
     <element name="accountCurrency" nillable="true" type="xsd:string"/>
     <element name="accountNumber" nillable="true" type="xsd:string"/>
     <element name="agreementDate" nillable="true" type="xsd:dateTime"/>
     <element name="amount" nillable="true" type="xsd:long"/>
     <element name="autorisationNumber" nillable="true" type="xsd:string"/>
     <element name="autorisationStatus" nillable="true" type="xsd:string"/>
     <element name="commitmentCode" nillable="true" type="xsd:string"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="consolidatedAutorisation" nillable="true"
type="impl:ArrayOf_tns2_nillable_AutorisationDTO"/>
     <element name="consolidatedUtilisation" nillable="true"
type="tns2:ConsolidatedUtilisationDTO"/>
     <element name="contractNumber" nillable="true" type="xsd:string"/>
     <element name="creditFormReference" nillable="true" type="xsd:string"/>
     <element name="currency" nillable="true" type="xsd:string"/>
     <element name="duration" nillable="true" type="xsd:int"/>
     <element name="endOfGracePeriod" nillable="true" type="xsd:dateTime"/>
     <element name="externalReference" nillable="true"
type="impl:ArrayOf_tns2_nillable_ExternalReferenceDTO"/>
     <element name="file" nillable="true"
type="impl:ArrayOf_tns2_nillable_FileDTO"/>
     <element name="fileType" nillable="true" type="xsd:string"/>
     <element name="financialPhase" nillable="true"
type="impl:ArrayOf_tns2_nillable_FinancialPhaseDTO"/>
     <element name="guarantee" nillable="true"
type="impl:ArrayOf_tns2_nillable_GuaranteeDTO"/>
     <element name="guaranteeConsolidatedAmount" nillable="true"
type="xsd:long"/>
     <element name="hedging" nillable="true" type="xsd:string"/>
     <element name="indicConsolidation" nillable="true" type="xsd:string"/>
     <element name="indicContract" nillable="true" type="xsd:string"/>
     <element name="indicCreditApproved" nillable="true" type="xsd:string"/>
     <element name="indicRenewal" nillable="true" type="xsd:string"/>
     <element name="indicRevision" nillable="true" type="xsd:string"/>
     <element name="internalContractNumber" nillable="true"
type="xsd:string"/>
     <element name="limitBreaking" nillable="true"
type="tns2:LimitBreakingDTO"/>
     <element name="natureOfRiskCode" nillable="true" type="xsd:string"/>
     <element name="object" nillable="true" type="xsd:string"/>
     <element name="originEntity" nillable="true" type="xsd:string"/>
     <element name="provision" nillable="true"
type="impl:ArrayOf_tns2_nillable_ProvisionDTO"/>
     <element name="puttingIntoForceDate" nillable="true"
type="xsd:dateTime"/>
     <element name="repaymentDate" nillable="true" type="xsd:dateTime"/>
     <element name="subjectToApproval" nillable="true"
type="impl:ArrayOf_tns2_nillable_SubjectToApprovalDTO"/>
     <element name="syndication" nillable="true"
type="tns2:SyndicationDTO"/>
     <element name="syndicationReference" nillable="true"
type="xsd:string"/>
     <element name="tolerancePercentage" nillable="true" type="xsd:float"/>
     <element name="utilisation" nillable="true"
type="impl:ArrayOf_tns2_nillable_UtilisationDTO"/>
     <element name="utilisationConsolidatedAmount" nillable="true"
type="xsd:long"/>
    </sequence>
   </complexType>
   <complexType name="ConsolidatedUtilisationDTO">
    <sequence>
     <element name="agreementDate" nillable="true" type="xsd:dateTime"/>
     <element name="amount" nillable="true" type="xsd:long"/>
     <element name="autorisationNumber" nillable="true" type="xsd:string"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="currency" nillable="true" type="xsd:string"/>
     <element name="customerNumber" nillable="true" type="xsd:string"/>
     <element name="groupNumber" nillable="true" type="xsd:string"/>
     <element name="natureOfRisk" nillable="true" type="xsd:string"/>
     <element name="originEntity" nillable="true" type="xsd:string"/>
     <element name="utilisationDate" nillable="true" type="xsd:dateTime"/>
     <element name="utilisationLevel" nillable="true" type="xsd:string"/>
     <element name="utilisationType" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="ExternalReferenceDTO">
    <sequence>
     <element name="agreementDate" nillable="true" type="xsd:dateTime"/>
     <element name="applicationCode" nillable="true" type="xsd:string"/>
     <element name="autorisationNumber" nillable="true" type="xsd:string"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="externalId" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="FileDTO">
    <sequence>
     <element name="agreementDate" nillable="true" type="xsd:dateTime"/>
     <element name="arrears" nillable="true"
type="impl:ArrayOf_tns2_nillable_ArrearsDTO"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="fileNumber" nillable="true" type="xsd:string"/>
     <element name="originEntity" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="ArrearsDTO">
    <sequence>
     <element name="amount" nillable="true" type="xsd:long"/>
     <element name="arrearsCommitmentCode" nillable="true"
type="xsd:string"/>
     <element name="arrearsInterest" nillable="true" type="xsd:long"/>
     <element name="arrearsPenalty" nillable="true" type="xsd:long"/>
     <element name="arrearsReference" nillable="true" type="xsd:string"/>
     <element name="arrearsRegistrationDate" nillable="true"
type="xsd:dateTime"/>
     <element name="capital" nillable="true" type="xsd:long"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="currency" nillable="true" type="xsd:string"/>
     <element name="fees" nillable="true" type="xsd:long"/>
     <element name="fileNumber" nillable="true" type="xsd:string"/>
     <element name="fileType" nillable="true" type="xsd:string"/>
     <element name="insurance" nillable="true" type="xsd:long"/>
     <element name="interest" nillable="true" type="xsd:long"/>
     <element name="lastPaymentDate" nillable="true" type="xsd:dateTime"/>
     <element name="paymentAmount" nillable="true" type="xsd:long"/>
     <element name="repaymentDate" nillable="true" type="xsd:dateTime"/>
     <element name="vat" nillable="true" type="xsd:long"/>
    </sequence>
   </complexType>
   <complexType name="FinancialPhaseDTO">
    <sequence>
     <element name="agreementDate" nillable="true" type="xsd:dateTime"/>
     <element name="amount" nillable="true" type="xsd:long"/>
     <element name="autorisationNumber" nillable="true" type="xsd:string"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="currency" nillable="true" type="xsd:string"/>
     <element name="endOfFinancialPhase" nillable="true"
type="xsd:dateTime"/>
     <element name="financialPhaseNumber" nillable="true" type="xsd:int"/>
     <element name="financialPhaseStartingDate" nillable="true"
type="xsd:dateTime"/>
    </sequence>
   </complexType>
   <complexType name="GuaranteeDTO">
    <sequence>
     <element name="amount" nillable="true" type="xsd:long"/>
     <element name="cdSoc" nillable="true" type="xsd:string"/>
     <element name="currency" nillable="true" type="xsd:string"/>
     <element name="customerRole" nillable="true"
type="impl:ArrayOf_xsd_nillable_string"/>
     <element name="guaranteeCode" nillable="true" type="xsd:string"/>
     <element name="guaranteeFamily" nillable="true" type="xsd:string"/>
     <element name="guaranteeNature" nillable="true" type="xsd:string"/>
     <element name="guaranteeNumber" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="LimitBreakingDTO">
    <sequence>
     <element name="agreementDate" nillable="true" type="xsd:dateTime"/>
     <element name="amount" nillable="true" type="xsd:long"/>
     <element name="autorisationNumber" nillable="true" type="xsd:string"/>
     <element name="autorisationType" nillable="true" type="xsd:string"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="currency" nillable="true" type="xsd:string"/>
     <element name="customerNumber" nillable="true" type="xsd:string"/>
     <element name="groupNumber" nillable="true" type="xsd:string"/>
     <element name="limitBreakingDate" nillable="true" type="xsd:dateTime"/>
     <element name="limitBreakingLevel" nillable="true" type="xsd:string"/>
     <element name="limitBreakingStartingDate" nillable="true"
type="xsd:dateTime"/>
     <element name="natureOfRisk" nillable="true" type="xsd:string"/>
     <element name="originEntity" nillable="true" type="xsd:string"/>
     <element name="previousDayAmount" nillable="true" type="xsd:long"/>
     <element name="utilisationReference" nillable="true"
type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="ProvisionDTO">
    <sequence>
     <element name="agreementDate" nillable="true" type="xsd:dateTime"/>
     <element name="amount" nillable="true" type="xsd:long"/>
     <element name="autorisationNumber" nillable="true" type="xsd:string"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="currency" nillable="true" type="xsd:string"/>
     <element name="provisionReference" nillable="true" type="xsd:string"/>
     <element name="provisionType" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="SubjectToApprovalDTO">
    <sequence>
     <element name="agreementDate" nillable="true" type="xsd:dateTime"/>
     <element name="autorisationNumber" nillable="true" type="xsd:string"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="hedgingType" nillable="true" type="xsd:string"/>
     <element name="internalContractNumber" nillable="true"
type="xsd:string"/>
     <element name="originEntity" nillable="true" type="xsd:string"/>
     <element name="subjectToApprovalCode" nillable="true"
type="xsd:string"/>
     <element name="subjectToApprovalReference" nillable="true"
type="xsd:string"/>
     <element name="subjectToApprovalState" nillable="true"
type="xsd:string"/>
     <element name="subjectToApprovalType" nillable="true"
type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="SyndicationDTO">
    <sequence>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="indicPoolLeader" nillable="true" type="xsd:string"/>
     <element name="riskPercentage" nillable="true" type="xsd:int"/>
     <element name="syndicationDesignation" nillable="true"
type="xsd:string"/>
     <element name="syndicationReference" nillable="true"
type="xsd:string"/>
     <element name="treasuryPercentage" nillable="true" type="xsd:int"/>
    </sequence>
   </complexType>
   <complexType name="UtilisationDTO">
    <sequence>
     <element name="amount" nillable="true" type="xsd:long"/>
     <element name="autorisation" nillable="true"
type="impl:ArrayOf_tns2_nillable_AutorisationDTO"/>
     <element name="averageBalance" nillable="true" type="xsd:int"/>
     <element name="commitmentCode" nillable="true" type="xsd:string"/>
     <element name="companyCode" nillable="true" type="xsd:string"/>
     <element name="currency" nillable="true" type="xsd:string"/>
     <element name="customerNumber" nillable="true" type="xsd:string"/>
     <element name="endOfMonthClosingDate" nillable="true"
type="xsd:dateTime"/>
     <element name="endOfMonthClosingOutstanding" nillable="true"
type="xsd:int"/>
     <element name="lastEntryDate" nillable="true" type="xsd:dateTime"/>
     <element name="limitBreaking" nillable="true"
type="tns2:LimitBreakingDTO"/>
     <element name="maximumBalance" nillable="true" type="xsd:int"/>
     <element name="natureOfRiskCode" nillable="true" type="xsd:string"/>
     <element name="originEntity" nillable="true" type="xsd:string"/>
     <element name="utilisationNature" nillable="true" type="xsd:string"/>
     <element name="utilisationReference" nillable="true"
type="xsd:string"/>
    </sequence>
   </complexType>
  </schema>
 </wsdl:types>

   <wsdl:message
name="searchAutorisationByInternalAutorisationNumberDTORequest">
     <wsdl:part
element="intf:searchAutorisationByInternalAutorisationNumberDTO"
name="parameters"/>

  </wsdl:message>

   <wsdl:message
name="searchAutorisationByInternalAutorisationNumberDTOResponse">
     <wsdl:part
element="intf:searchAutorisationByInternalAutorisationNumberDTOResponse"
name="parameters"/>

  </wsdl:message>

   <wsdl:portType name="ReadAutorisationBean">
     <wsdl:operation
name="searchAutorisationByInternalAutorisationNumberDTO">
       <wsdl:input
message="intf:searchAutorisationByInternalAutorisationNumberDTORequest"
name="searchAutorisationByInternalAutorisationNumberDTORequest"/>

       <wsdl:output
message="intf:searchAutorisationByInternalAutorisationNumberDTOResponse"
name="searchAutorisationByInternalAutorisationNumberDTOResponse"/>

    </wsdl:operation>

  </wsdl:portType>

   <wsdl:binding name="ReadAutorisationBeanSoapBinding"
type="intf:ReadAutorisationBean">
 <wsaw:UsingAddressing wsdl:required="false"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>

     <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>

     <wsdl:operation
name="searchAutorisationByInternalAutorisationNumberDTO">
       <wsdlsoap:operation
soapAction="searchAutorisationByInternalAutorisationNumberDTO"/>

       <wsdl:input
name="searchAutorisationByInternalAutorisationNumberDTORequest">
         <wsdlsoap:body use="literal"/>

      </wsdl:input>

       <wsdl:output
name="searchAutorisationByInternalAutorisationNumberDTOResponse">
         <wsdlsoap:body use="literal"/>

      </wsdl:output>

    </wsdl:operation>

  </wsdl:binding>

   <wsdl:service name="ReadAutorisationBeanService">
     <wsdl:port binding="intf:ReadAutorisationBeanSoapBinding"
name="ReadAutorisationBean">
       <wsdlsoap:address
location="http://0.0.0.0:8092/ReadAutorisationBeanService"/>

    </wsdl:port>

  </wsdl:service>

</wsdl:definitions>


Service Mix log : 

DEBUG - CxfBcComponent                 - Created correlation id:
ID:172.XX.XXX.XXX-116d2c05cfe-4:1
DEBUG - DeliveryChannelImpl            - SendSync
ID:172.XX.XXX.XXX-116d2c05cfe-4:1 in DeliveryChannel{servicemix-cxf-bc}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - DeliveryChannelImpl            - Waiting for exchange
ID:172.XX.XXX.XXX-116d2c05cfe-4:1 (de0ae6) to be answered in
DeliveryChannel{servicemix-cxf-bc} from sendSync
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@19db2b2 dequeued
exchange: InOut[
  id: ID:172.XX.XXX.XXX-116d2c05cfe-4:1
  status: Active
  role: provider
  interface: {http://ejb.ejb.fcb.sopra.com}ReadAutorisationBean
  service: {http://ejb.ejb.fcb.sopra.com}ReadAutorisationBeanService
  endpoint: ReadAutorisationBean
  operation:
{http://ejb.ejb.fcb.sopra.com}searchAutorisationByInternalAutorisat
ionNumberDTO
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.ejb.fcb.sopra.com"
name="searchAutorisationByInternalAutorisationNumberDTORequest"
type="msg:searchAutorisationByInternalAutorisationNumberDTORequest"
version="1.0"><jbi:part><ns2:searchAutorisationByInternalAutorisationNumberDTO
xmlns:ns2="http://ejb.ejb.fcb.sopra.com"><context/><companyCode>071</companyCode><autorisationNumber>KLIFAUTL31001</autorisationNumber><originEntity>LOANS</originEntity></ns2:searchAutorisationByInternalAutorisationNumberDTO></jbi:part></jbi:message>
]
DEBUG - CxfBcComponent                 - Received exchange: status: Active,
role: provider
DEBUG - CxfBcComponent                 - Retrieved correlation id:
ID:172.XX.XXX.XXX-116d2c05cfe-4:1
DEBUG - DeliveryChannelImpl            - Send
ID:172.XX.XXX.XXX-116d2c05cfe-4:1in DeliveryChannel{servicemix-cxf-bc}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@11cc198 dequeued
exchange: InOut[
  id: ID:172.XX.XXX.XXX-116d2c05cfe-4:1
  status: Active
  role: consumer
  interface: {http://ejb.ejb.fcb.sopra.com}ReadAutorisationBean
  service: {http://ejb.ejb.fcb.sopra.com}ReadAutorisationBeanService
  endpoint: ReadAutorisationBean
  operation:
{http://ejb.ejb.fcb.sopra.com}searchAutorisationByInternalAutorisationNumberDTO
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.ejb.fcb.sopra.com"
name="searchAutorisationByInternalAutorisationNumberDTORequest"
type="msg:searchAutorisationByInternalAutorisationNumberDTORequest"
version="1.0"><jbi:part><ns2:searchAutorisationByInternalAutorisationNumberDTO
xmlns:ns2="http://ejb.ejb.fcb.sopra.com"><context/><companyCode>071</companyCode><autorisationNumber>KLIFAUTL31001</autorisationNumber><originEntity>LOANS</originEntity></ns2:searchAutorisationByInternalAutorisationNumberDTO></jbi:part></jbi:message>
  out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.ejb.fcb.sopra.com"
name="searchAutorisationByInternalAutorisationNumberDTOResponse"
type="msg:searchAutorisationByInternalAutorisationNumberDTOResponse"
version="1.0"><jbi:part><p559:searchAutorisationByInternalAutorisationNumberDTOResponse
xmlns:p559="http://ejb.ejb.fcb.sopra.com"><searchAutorisationByInternalAutorisationNumberDTOReturn><accountCurrency>MAD</accountCurrency><accountNumber>KLIFCP3001001</accountNumber><agreementDate>2007-06-30T22:00:00.000Z</agreementDate><amount>323655</amount><autorisationNumber>KLIFAUTL31001</autorisationNumber><autorisationStatus>B</autorisationStatus><commitmentCode>1130
</commitmentCode><companyCode>071  </companyCode><consolidatedAutorisation
xmlns:mycompany="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:p724="http://dto.fcb.sopra.com"
mycompany:arrayType="p724:AutorisationDTO[0]"/><consolidatedUtilisation><agreementDate
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><amount
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><autorisationNumber
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><companyCode
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><currency
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><customerNumber
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><groupNu...
]
DEBUG - DeliveryChannelImpl            - Notifying exchange
ID:172.XX.XXX.XXX-116d2c05cfe-4:1(de0ae6) in
DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
DEBUG - DeliveryChannelImpl            - Notified:
ID:172.XX.XXX.XXX-116d2c05cfe-4:1(de0ae6) in
DeliveryChannel{servicemix-cxf-bc} from sendSync
DEBUG - DeliveryChannelImpl            - Send
ID:172.XX.XXX.XXX-116d2c05cfe-4:1in DeliveryChannel{servicemix-cxf-bc}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@e08014 dequeued
exchange: InOut[
  id: ID:172.XX.XXX.XXX-116d2c05cfe-4:1
  status: Done
  role: provider
  interface: {http://ejb.ejb.fcb.sopra.com}ReadAutorisationBean
  service: {http://ejb.ejb.fcb.sopra.com}ReadAutorisationBeanService
  endpoint: ReadAutorisationBean
  operation:
{http://ejb.ejb.fcb.sopra.com}searchAutorisationByInternalAutorisationNumberDTO
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.ejb.fcb.sopra.com"
name="searchAutorisationByInternalAutorisationNumberDTORequest"
type="msg:searchAutorisationByInternalAutorisationNumberDTORequest"
version="1.0"><jbi:part><ns2:searchAutorisationByInternalAutorisationNumberDTO
xmlns:ns2="http://ejb.ejb.fcb.sopra.com"><context/><companyCode>071</companyCode><autorisationNumber>KLIFAUTL31001</autorisationNumber><originEntity>LOANS</originEntity></ns2:searchAutorisationByInternalAutorisationNumberDTO></jbi:part></jbi:message>
  out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.ejb.fcb.sopra.com"
name="searchAutorisationByInternalAutorisationNumberDTOResponse"
type="msg:searchAutorisationByInternalAutorisationNumberDTOResponse"
version="1.0"><jbi:part><p559:searchAutorisationByInternalAutorisationNumberDTOResponse
xmlns:p559="http://ejb.ejb.fcb.sopra.com"><searchAutorisationByInternalAutorisationNumberDTOReturn><accountCurrency>MAD</accountCurrency><accountNumber>KLIFCP3001001</accountNumber><agreementDate>2007-06-30T22:00:00.000Z</agreementDate><amount>323655</amount><autorisationNumber>KLIFAUTL31001</autorisationNumber><autorisationStatus>B</autorisationStatus><commitmentCode>1130
</commitmentCode><companyCode>071  </companyCode><consolidatedAutorisation
xmlns:mycompany="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:p724="http://dto.fcb.sopra.com"
mycompany:arrayType="p724:AutorisationDTO[0]"/><consolidatedUtilisation><agreementDate
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><amount
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><autorisationNumber
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><companyCode
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><currency
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><customerNumber
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/><groupNu...
]
DEBUG - CxfBcComponent                 - Received exchange: status: Done,
role:
provider
DEBUG - CxfBcComponent                 - Retrieved correlation id:
ID:172.XX.XXX.XXX-116d2c05cfe-4:1



Best regards,
Florent.


Freeman Fang-2 wrote:
> 
> Hi Florent,
> 
> Yes, cxf doesn't support soap encoded, you should avoid using soapenc 
> with cxf.
> 
> But about the prefix missing issue, it seems like something wrong during 
> jbi message <===> soap message transformation.
> 
> Would you please append the whole jbi message and soap message, or whole 
> logs you get, as well as the wsdl you are using.
> 
> Best Regards
> 
> Freeman
> 
> Florent wrote:
>> Hi again,
>>
>> To bypass the problem, i put an empty object in every nillable array
>> (instead of a null value).
>>
>> But, i got a new error (very similar to the first one) :
>>
>> INFO: Interceptor has thrown exception, unwinding now
>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> namespace
>> prefix "soapenc" (for attribute "arrayType")
>>  at [row,col {unknown-source}]: [1,680] 
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>> 	at
>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>> 	at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> 	at
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> 	at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> Source)
>> 	at
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> Caused by: javax.xml.bind.UnmarshalException
>>  - with linked exception:
>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> "soapenc" (for attribute "arrayType")
>>  at [row,col {unknown-source}]: [1,680]]
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>> 	... 17 more
>>
>> That doesn't suprise me, especially regardin the soap message i posted in
>> my
>> previous mail :
>>
>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> <subjectToApproval
>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>> <syndication xsi: nil="true" />
>> <syndicationReference xsi:nil="true" />
>> <tolerancePercentage>1.0</tolerancePercentage>
>>
>> There is a soapenc namespace prefix, but there is no soapenc namespace
>> declaration...
>> I remember from one of my previous post, you said cxf doesn't support
>> soapenc, isn't it?
>>
>> Is it possible to get the get the namespace declaration, even if it's not
>> used by cxf?
>>
>> Best regards,
>> Florent.
>>
>>
>>
>> Florent wrote:
>>   
>>> Hello,
>>>
>>> I still have the same configuration :
>>> - Web service server (WAS 6.1)
>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>>> - Web service client (CXF)
>>>
>>> I got some nillable array in my WSDL definition. Everything is ok as
>>> long
>>> as those arrays are not null.
>>> But when they are, "xsi:nil="true"" is added to the soap message.
>>> Everything is still ok as long as i don't use the bridge (direct WS call
>>> from my CXF client)
>>>
>>> When i used the bridge, here is a part of the jbi out message :
>>>
>>> <commitmentCode>1130</commitmentCode>
>>> <companyCode>071</companyCode>
>>> <consolidatedAutorisation
>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> 	xsi:nil="true" />
>>> <consolidatedUtilisation
>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> 	xsi:nil="true" />
>>>
>>> But here is a part of the soap out message :
>>>
>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>> <subjectToApproval
>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>> <syndication xsi: nil="true" />
>>> <syndicationReference xsi:nil="true" />
>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>
>>> As you can see, there is no
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>
>>> And here is the error log of cxf client :
>>>
>>> INFO: Interceptor has thrown exception, unwinding now
>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>> namespace prefix "xsi" (for attribute "nil")
>>>  at [row,col {unknown-source}]: [1,613] 
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>> 	at
>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>> 	at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>> 	at
>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>> 	at
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>> 	at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>> 	at
>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>> Source)
>>> 	at
>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>> Caused by: javax.xml.bind.UnmarshalException
>>>  - with linked exception:
>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>> "xsi"
>>> (for attribute "nil")
>>>  at [row,col {unknown-source}]: [1,613]]
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>> 	... 17 more
>>>
>>>
>>> Does servicemix-cxf supports
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?
>>>
>>> Thanks in advance,
>>> Best regards,
>>> Florent.
>>>
>>>     
>>
>>   
> 
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14312415.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

Nope, my WSDL doesn't include any soapenc prefix. My web service tool
(server side) was adding some "typearray" attribute for some obscur reason. 
Anyway i cleaned all web Service files and deployed it again. Now i don't
have the soapenc problem anymore. But i can't be sure i'll never face it
again ;)

That's why i don't really like code generation tools, you never know what
going on... Especially with Websphere Web service tool. Everytime i tried to
modify the generated code, it just kept overwriting all my modifications...

About the wsdltojava tool :
i don't mind if there is a soapenc namespace : i can use RAD 7 to generate
the WS client. I just used CXF because that's what you suggested ;)

Best regards,
Florent.


Freeman Fang wrote:
> 
> yeah
> can add this prefix.
> Quick question,
> Did your wsdl include any soapenc prefix? IIRC, cxf wsdlgen tool will
> complain if your wsdl include any soapenc, so you can't generate code stub
> from wsdl.
> 
> 
> On 12/14/07, Florent <fl...@sopragroup.com> wrote:
>>
>>
>>
>> Thanks,
>>
>> Is there any chance it will fix the soapenc problem too, even if soapenc
>> isn't supported by cxf? It's the same kind of problem : missing namespace
>> prefix.
>>
>> Best Regards,
>> Florent.
>>
>>
>> Freeman Fang-2 wrote:
>> >
>> > Hi Florent,
>> >
>> > Thanks,
>> >
>> > Create jira [1] to track it, will fix it up soon
>> >
>> > [1]http://issues.apache.org/activemq/browse/SM-1172
>> >
>> > Best Regards
>> >
>> > Freeman
>> >
>> > Florent wrote:
>> >> Hi again Freeman,
>> >>
>> >> I managed to do a very simple example to reproduce the "jbi-message
>> <==>
>> >> soap-message" bug. So i can get a complete message log.
>> >> It should be easier to understand.
>> >>
>> >> The WSDL :
>> >>
>> >> <?xml version="1.0" encoding="UTF-8"?>
>> >> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
>> >> xmlns:impl="http://ejb.proto.mycompany.com"
>> >> xmlns:intf="http://ejb.proto.mycompany.com"
>> >> xmlns:tns2="http://dto.proto.mycompany.com"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>> >> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>  <wsdl:types>
>> >>   <schema targetNamespace="http://ejb.proto.mycompany.com"
>> >> xmlns="http://www.w3.org/2001/XMLSchema"
>> >> xmlns:tns2="http://dto.proto.mycompany.com"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>    <import namespace="http://dto.proto.mycompany.com"/>
>> >>    <element name="getProtoDTOResponse">
>> >>     <complexType>
>> >>      <sequence>
>> >>       <element name="getProtoDTOReturn" nillable="true"
>> >> type="tns2:ProtoDTO"/>
>> >>      </sequence>
>> >>     </complexType>
>> >>    </element>
>> >>    <element name="getProtoDTO">
>> >>     <complexType>
>> >>      <sequence>
>> >>       <element name="param" nillable="true" type="xsd:string"/>
>> >>      </sequence>
>> >>     </complexType>
>> >>    </element>
>> >>   </schema>
>> >>   <schema targetNamespace="http://dto.proto.mycompany.com"
>> >> xmlns="http://www.w3.org/2001/XMLSchema"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>    <complexType name="ProtoDTO">
>> >>     <sequence>
>> >>      <element name="id" nillable="true" type="xsd:string"/>
>> >>     </sequence>
>> >>    </complexType>
>> >>   </schema>
>> >>  </wsdl:types>
>> >>
>> >>    <wsdl:message name="getProtoDTORequest">
>> >>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>> >>
>> >>   </wsdl:message>
>> >>
>> >>    <wsdl:message name="getProtoDTOResponse">
>> >>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>> >>
>> >>   </wsdl:message>
>> >>
>> >>    <wsdl:portType name="ProtoBean">
>> >>      <wsdl:operation name="getProtoDTO">
>> >>        <wsdl:input message="intf:getProtoDTORequest"
>> >> name="getProtoDTORequest"/>
>> >>
>> >>        <wsdl:output message="intf:getProtoDTOResponse"
>> >> name="getProtoDTOResponse"/>
>> >>
>> >>     </wsdl:operation>
>> >>
>> >>   </wsdl:portType>
>> >>
>> >>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>> >>  <wsaw:UsingAddressing wsdl:required="false"
>> >> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>> >>
>> >>      <wsdlsoap:binding style="document"
>> >> transport="http://schemas.xmlsoap.org/soap/http"/>
>> >>
>> >>      <wsdl:operation name="getProtoDTO">
>> >>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>> >>
>> >>        <wsdl:input name="getProtoDTORequest">
>> >>          <wsdlsoap:body use="literal"/>
>> >>
>> >>       </wsdl:input>
>> >>
>> >>        <wsdl:output name="getProtoDTOResponse">
>> >>          <wsdlsoap:body use="literal"/>
>> >>
>> >>       </wsdl:output>
>> >>
>> >>     </wsdl:operation>
>> >>
>> >>   </wsdl:binding>
>> >>
>> >>    <wsdl:service name="ProtoBeanService">
>> >>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>> >>        <wsdlsoap:address
>> >> location="http://0.0.0.0:8092/ProtoBeanService"/>
>> >>
>> >>     </wsdl:port>
>> >>
>> >>   </wsdl:service>
>> >>
>> >> </wsdl:definitions>
>> >>
>> >>
>> >> ServiceMix log :
>> >>
>> >> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
>> >> handleMessage
>> >> INFO: Inbound Message
>> >> --------------------------------------
>> >> Encoding: UTF-8
>> >> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
>> >> connection=[keep-alive], SOAPAction=["getProtoDTO"],
>> >> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
>> >> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
>> >> Message:
>> >> <soap:Envelope
>> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
>> >> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
>> >> --------------------------------------
>> >> DEBUG - CxfBcComponent                 - Created correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >> DEBUG - DeliveryChannelImpl            - SendSync
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>> DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - DeliveryChannelImpl            - Waiting for exchange
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
>> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Active
>> >>   role: provider
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - CxfBcComponent                 - Received exchange: status:
>> >> Active,
>> >> role: provider
>> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
>> >> handleMessage
>> >> INFO: Inbound Message
>> >> --------------------------------------
>> >> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
>> >> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
>> >> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
>> >> charset=utf-8]}
>> >> Message:
>> >>
>> >> --------------------------------------
>> >> DEBUG - DeliveryChannelImpl            - Send
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Active
>> >>   role: consumer
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> >> type="msg:getProtoDTOResponse"
>> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - DeliveryChannelImpl            - Notifying exchange
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> >> DeliveryChannel{servicemix-cxf-bc} from
>> processInboundSynchronousExchange
>> >> DEBUG - DeliveryChannelImpl            - Notified:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> >> 13 dÚc. 2007 12:10:28
>> >>
>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallbackonClose
>> >> INFO: Outbound Message
>> >> --------------------------------------
>> >> <soap:Envelope
>> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xsi:nil="true"
>> >>
>> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
>> >> --------------------------------------
>> >> DEBUG - DeliveryChannelImpl            - Send
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>> DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Done
>> >>   role: provider
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> >> type="msg:getProtoDTOResponse"
>> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - CxfBcComponent                 - Received exchange: status:
>> Done,
>> >> role:provider
>> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>
>> >> CXF Client log :
>> >>
>> >> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
>> >> doIntercept
>> >> INFO: Interceptor has thrown exception, unwinding now
>> >> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >> namespace
>> >> prefix "xsi" (for attribute "nil")
>> >>  at [row,col {unknown-source}]: [1,187]
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>      at
>> >> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>      at
>> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>      at
>> >>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>      at
>> >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>      at
>> >>
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> >>      at org.apache.cxf.transport.http.HTTPConduit.close(
>> HTTPConduit.java:575)
>> >>      at
>> >>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>      at
>> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>      at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>> :73)
>> >>      at
>> >>
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> >>      at $Proxy27.getProtoDTO(Unknown Source)
>> >>      at
>> >> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main
>> (ProtoBean_ProtoBean_Client.java:56)
>> >> Caused by: javax.xml.bind.UnmarshalException
>> >>  - with linked exception:
>> >> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> "xsi"
>> >> (for attribute "nil")
>> >>  at [row,col {unknown-source}]: [1,187]]
>> >>      at
>> >>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>      at
>> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> UnmarshallerImpl.java:334)
>> >>      at
>> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>      ... 17 more
>> >>
>> >>
>> >> Best regards,
>> >> Florent.
>> >>
>> >>
>> >> Freeman Fang-2 wrote:
>> >>
>> >>> Hi Florent,
>> >>>
>> >>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc
>> >>> with cxf.
>> >>>
>> >>> But about the prefix missing issue, it seems like something wrong
>> during
>> >>> jbi message <===> soap message transformation.
>> >>>
>> >>> Would you please append the whole jbi message and soap message, or
>> whole
>> >>> logs you get, as well as the wsdl you are using.
>> >>>
>> >>> Best Regards
>> >>>
>> >>> Freeman
>> >>>
>> >>> Florent wrote:
>> >>>
>> >>>> Hi again,
>> >>>>
>> >>>> To bypass the problem, i put an empty object in every nillable array
>> >>>> (instead of a null value).
>> >>>>
>> >>>> But, i got a new error (very similar to the first one) :
>> >>>>
>> >>>> INFO: Interceptor has thrown exception, unwinding now
>> >>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >>>> namespace
>> >>>> prefix "soapenc" (for attribute "arrayType")
>> >>>>  at [row,col {unknown-source}]: [1,680]
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>>>    at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>>>    at
>> >>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>>>    at
>> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>>>    at
>> >>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>>>    at
>> >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>>>    at
>> >>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>> :66)
>> >>>>    at
>> >>>>
>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> >>>>    at
>> >>>>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>>>    at
>> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>>>    at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>> :73)
>> >>>>    at
>> >>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>> :135)
>> >>>>    at
>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> >>>> Source)
>> >>>>    at
>> >>>>
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> >>>> Caused by: javax.xml.bind.UnmarshalException
>> >>>>  - with linked exception:
>> >>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> >>>> "soapenc" (for attribute "arrayType")
>> >>>>  at [row,col {unknown-source}]: [1,680]]
>> >>>>    at
>> >>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>>>    at
>> >>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> UnmarshallerImpl.java:334)
>> >>>>    at
>> >>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>>>    ... 17 more
>> >>>>
>> >>>> That doesn't suprise me, especially regardin the soap message i
>> posted
>> >>>> in
>> >>>> my
>> >>>> previous mail :
>> >>>>
>> >>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> >>>> <subjectToApproval
>> >>>>    soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> >>>>    xmlns:p724="http://dto.fcb.mycompany.com" />
>> >>>> <syndication xsi: nil="true" />
>> >>>> <syndicationReference xsi:nil="true" />
>> >>>> <tolerancePercentage>1.0</tolerancePercentage>
>> >>>>
>> >>>> There is a soapenc namespace prefix, but there is no soapenc
>> namespace
>> >>>> declaration...
>> >>>> I remember from one of my previous post, you said cxf doesn't
>> support
>> >>>> soapenc, isn't it?
>> >>>>
>> >>>> Is it possible to get the get the namespace declaration, even if
>> it's
>> >>>> not
>> >>>> used by cxf?
>> >>>>
>> >>>> Best regards,
>> >>>> Florent.
>> >>>>
>> >>>>
>> >>>>
>> >>>> Florent wrote:
>> >>>>
>> >>>>
>> >>>>> Hello,
>> >>>>>
>> >>>>> I still have the same configuration :
>> >>>>> - Web service server (WAS 6.1)
>> >>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>> >>>>> - Web service client (CXF)
>> >>>>>
>> >>>>> I got some nillable array in my WSDL definition. Everything is ok
>> as
>> >>>>> long
>> >>>>> as those arrays are not null.
>> >>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>> >>>>> Everything is still ok as long as i don't use the bridge (direct WS
>> >>>>> call
>> >>>>> from my CXF client)
>> >>>>>
>> >>>>> When i used the bridge, here is a part of the jbi out message :
>> >>>>>
>> >>>>> <commitmentCode>1130</commitmentCode>
>> >>>>> <companyCode>071</companyCode>
>> >>>>> <consolidatedAutorisation
>> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>   xsi:nil="true" />
>> >>>>> <consolidatedUtilisation
>> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>   xsi:nil="true" />
>> >>>>>
>> >>>>> But here is a part of the soap out message :
>> >>>>>
>> >>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> >>>>> <subjectToApproval
>> >>>>>   soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> >>>>>   xmlns:p724="http://dto.fcb.mycompany.com" />
>> >>>>> <syndication xsi: nil="true" />
>> >>>>> <syndicationReference xsi:nil="true" />
>> >>>>> <tolerancePercentage>1.0</tolerancePercentage>
>> >>>>>
>> >>>>> As you can see, there is no
>> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>
>> >>>>> And here is the error log of cxf client :
>> >>>>>
>> >>>>> INFO: Interceptor has thrown exception, unwinding now
>> >>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >>>>> namespace prefix "xsi" (for attribute "nil")
>> >>>>>  at [row,col {unknown-source}]: [1,613]
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>>>>   at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>>>>   at
>> >>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>>>>   at
>> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>>>>   at
>> >>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>> :66)
>> >>>>>   at
>> >>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java
>> :575)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>>>>   at
>> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>>>>   at
>> >>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>> :135)
>> >>>>>   at
>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> >>>>> Source)
>> >>>>>   at
>> >>>>>
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> >>>>> Caused by: javax.xml.bind.UnmarshalException
>> >>>>>  - with linked exception:
>> >>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> >>>>> "xsi"
>> >>>>> (for attribute "nil")
>> >>>>>  at [row,col {unknown-source}]: [1,613]]
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0
>> (UnmarshallerImpl.java:334)
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>>>>   ... 17 more
>> >>>>>
>> >>>>>
>> >>>>> Does servicemix-cxf supports
>> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace
>> refix?
>> >>>>>
>> >>>>> Thanks in advance,
>> >>>>> Best regards,
>> >>>>> Florent.
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14332644.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14338325.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Freeman Fang <fr...@gmail.com>.
yeah
can add this prefix.
Quick question,
Did your wsdl include any soapenc prefix? IIRC, cxf wsdlgen tool will
complain if your wsdl include any soapenc, so you can't generate code stub
from wsdl.


On 12/14/07, Florent <fl...@sopragroup.com> wrote:
>
>
>
> Thanks,
>
> Is there any chance it will fix the soapenc problem too, even if soapenc
> isn't supported by cxf? It's the same kind of problem : missing namespace
> prefix.
>
> Best Regards,
> Florent.
>
>
> Freeman Fang-2 wrote:
> >
> > Hi Florent,
> >
> > Thanks,
> >
> > Create jira [1] to track it, will fix it up soon
> >
> > [1]http://issues.apache.org/activemq/browse/SM-1172
> >
> > Best Regards
> >
> > Freeman
> >
> > Florent wrote:
> >> Hi again Freeman,
> >>
> >> I managed to do a very simple example to reproduce the "jbi-message
> <==>
> >> soap-message" bug. So i can get a complete message log.
> >> It should be easier to understand.
> >>
> >> The WSDL :
> >>
> >> <?xml version="1.0" encoding="UTF-8"?>
> >> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
> >> xmlns:impl="http://ejb.proto.mycompany.com"
> >> xmlns:intf="http://ejb.proto.mycompany.com"
> >> xmlns:tns2="http://dto.proto.mycompany.com"
> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> >> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> >>  <wsdl:types>
> >>   <schema targetNamespace="http://ejb.proto.mycompany.com"
> >> xmlns="http://www.w3.org/2001/XMLSchema"
> >> xmlns:tns2="http://dto.proto.mycompany.com"
> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> >>    <import namespace="http://dto.proto.mycompany.com"/>
> >>    <element name="getProtoDTOResponse">
> >>     <complexType>
> >>      <sequence>
> >>       <element name="getProtoDTOReturn" nillable="true"
> >> type="tns2:ProtoDTO"/>
> >>      </sequence>
> >>     </complexType>
> >>    </element>
> >>    <element name="getProtoDTO">
> >>     <complexType>
> >>      <sequence>
> >>       <element name="param" nillable="true" type="xsd:string"/>
> >>      </sequence>
> >>     </complexType>
> >>    </element>
> >>   </schema>
> >>   <schema targetNamespace="http://dto.proto.mycompany.com"
> >> xmlns="http://www.w3.org/2001/XMLSchema"
> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> >>    <complexType name="ProtoDTO">
> >>     <sequence>
> >>      <element name="id" nillable="true" type="xsd:string"/>
> >>     </sequence>
> >>    </complexType>
> >>   </schema>
> >>  </wsdl:types>
> >>
> >>    <wsdl:message name="getProtoDTORequest">
> >>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
> >>
> >>   </wsdl:message>
> >>
> >>    <wsdl:message name="getProtoDTOResponse">
> >>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
> >>
> >>   </wsdl:message>
> >>
> >>    <wsdl:portType name="ProtoBean">
> >>      <wsdl:operation name="getProtoDTO">
> >>        <wsdl:input message="intf:getProtoDTORequest"
> >> name="getProtoDTORequest"/>
> >>
> >>        <wsdl:output message="intf:getProtoDTOResponse"
> >> name="getProtoDTOResponse"/>
> >>
> >>     </wsdl:operation>
> >>
> >>   </wsdl:portType>
> >>
> >>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
> >>  <wsaw:UsingAddressing wsdl:required="false"
> >> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
> >>
> >>      <wsdlsoap:binding style="document"
> >> transport="http://schemas.xmlsoap.org/soap/http"/>
> >>
> >>      <wsdl:operation name="getProtoDTO">
> >>        <wsdlsoap:operation soapAction="getProtoDTO"/>
> >>
> >>        <wsdl:input name="getProtoDTORequest">
> >>          <wsdlsoap:body use="literal"/>
> >>
> >>       </wsdl:input>
> >>
> >>        <wsdl:output name="getProtoDTOResponse">
> >>          <wsdlsoap:body use="literal"/>
> >>
> >>       </wsdl:output>
> >>
> >>     </wsdl:operation>
> >>
> >>   </wsdl:binding>
> >>
> >>    <wsdl:service name="ProtoBeanService">
> >>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
> >>        <wsdlsoap:address
> >> location="http://0.0.0.0:8092/ProtoBeanService"/>
> >>
> >>     </wsdl:port>
> >>
> >>   </wsdl:service>
> >>
> >> </wsdl:definitions>
> >>
> >>
> >> ServiceMix log :
> >>
> >> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
> >> handleMessage
> >> INFO: Inbound Message
> >> --------------------------------------
> >> Encoding: UTF-8
> >> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
> >> connection=[keep-alive], SOAPAction=["getProtoDTO"],
> >> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
> >> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
> >> Message:
> >> <soap:Envelope
> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> "><soap:Body><ns2:getProtoDTO
> >> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
> >> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
> >> --------------------------------------
> >> DEBUG - CxfBcComponent                 - Created correlation id:
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >> DEBUG - DeliveryChannelImpl            - SendSync
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
> >> DEBUG - SedaFlow                       - Called Flow send
> >> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
> >> DEBUG - SedaQueue                      -
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
> >> exchange:
> >> InOut[
> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >>   status: Active
> >>   role: provider
> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
> >>   endpoint: ProtoBean
> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
> >> ]
> >> DEBUG - CxfBcComponent                 - Received exchange: status:
> >> Active,
> >> role: provider
> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
> >> handleMessage
> >> INFO: Inbound Message
> >> --------------------------------------
> >> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
> >> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
> >> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
> >> charset=utf-8]}
> >> Message:
> >>
> >> --------------------------------------
> >> DEBUG - DeliveryChannelImpl            - Send
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
> >> DEBUG - SedaFlow                       - Called Flow send
> >> DEBUG - SedaQueue                      -
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
> >> exchange:
> >> InOut[
> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >>   status: Active
> >>   role: consumer
> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
> >>   endpoint: ProtoBean
> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> >> type="msg:getProtoDTOResponse"
> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> >> ]
> >> DEBUG - DeliveryChannelImpl            - Notifying exchange
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
> >> DeliveryChannel{servicemix-cxf-bc} from
> processInboundSynchronousExchange
> >> DEBUG - DeliveryChannelImpl            - Notified:
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
> >> 13 dÚc. 2007 12:10:28
> >> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallbackonClose
> >> INFO: Outbound Message
> >> --------------------------------------
> >> <soap:Envelope
> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> "><soap:Body><p637:getProtoDTOResponse
> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> >> xsi:nil="true"
> >>
> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
> >> --------------------------------------
> >> DEBUG - DeliveryChannelImpl            - Send
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
> >> DEBUG - SedaFlow                       - Called Flow send
> >> DEBUG - SedaQueue                      -
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
> >> exchange:
> >> InOut[
> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >>   status: Done
> >>   role: provider
> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
> >>   endpoint: ProtoBean
> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> >> type="msg:getProtoDTOResponse"
> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> >> ]
> >> DEBUG - CxfBcComponent                 - Received exchange: status:
> Done,
> >> role:provider
> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >>
> >> CXF Client log :
> >>
> >> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
> >> doIntercept
> >> INFO: Interceptor has thrown exception, unwinding now
> >> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
> >> namespace
> >> prefix "xsi" (for attribute "nil")
> >>  at [row,col {unknown-source}]: [1,187]
> >>      at
> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:559)
> >>      at
> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:465)
> >>      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
> :40)
> >>      at
> >> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
> DocLiteralInInterceptor.java:102)
> >>      at
> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
> :402)
> >>      at
> >>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
> (HTTPConduit.java:1948)
> >>      at
> >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
> HTTPConduit.java:1791)
> >>      at
> >> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> >>      at org.apache.cxf.transport.http.HTTPConduit.close(
> HTTPConduit.java:575)
> >>      at
> >>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
> (MessageSenderInterceptor.java:62)
> >>      at
> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> >>      at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
> :73)
> >>      at
> >> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> >>      at $Proxy27.getProtoDTO(Unknown Source)
> >>      at
> >> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main
> (ProtoBean_ProtoBean_Client.java:56)
> >> Caused by: javax.xml.bind.UnmarshalException
> >>  - with linked exception:
> >> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
> "xsi"
> >> (for attribute "nil")
> >>  at [row,col {unknown-source}]: [1,187]]
> >>      at
> >>
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
> (UnmarshallerImpl.java:396)
> >>      at
> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
> UnmarshallerImpl.java:334)
> >>      at
> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
> UnmarshallerImpl.java:311)
> >>      at
> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:545)
> >>      ... 17 more
> >>
> >>
> >> Best regards,
> >> Florent.
> >>
> >>
> >> Freeman Fang-2 wrote:
> >>
> >>> Hi Florent,
> >>>
> >>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc
> >>> with cxf.
> >>>
> >>> But about the prefix missing issue, it seems like something wrong
> during
> >>> jbi message <===> soap message transformation.
> >>>
> >>> Would you please append the whole jbi message and soap message, or
> whole
> >>> logs you get, as well as the wsdl you are using.
> >>>
> >>> Best Regards
> >>>
> >>> Freeman
> >>>
> >>> Florent wrote:
> >>>
> >>>> Hi again,
> >>>>
> >>>> To bypass the problem, i put an empty object in every nillable array
> >>>> (instead of a null value).
> >>>>
> >>>> But, i got a new error (very similar to the first one) :
> >>>>
> >>>> INFO: Interceptor has thrown exception, unwinding now
> >>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
> >>>> namespace
> >>>> prefix "soapenc" (for attribute "arrayType")
> >>>>  at [row,col {unknown-source}]: [1,680]
> >>>>    at
> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:559)
> >>>>    at
> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:465)
> >>>>    at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
> :40)
> >>>>    at
> >>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
> DocLiteralInInterceptor.java:102)
> >>>>    at
> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>>>    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
> :402)
> >>>>    at
> >>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
> (HTTPConduit.java:1948)
> >>>>    at
> >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
> HTTPConduit.java:1791)
> >>>>    at
> >>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
> :66)
> >>>>    at
> >>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
> >>>>    at
> >>>>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
> (MessageSenderInterceptor.java:62)
> >>>>    at
> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> >>>>    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
> :73)
> >>>>    at
> >>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
> :135)
> >>>>    at
> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
> >>>> Source)
> >>>>    at
> >>>>
> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
> >>>> Caused by: javax.xml.bind.UnmarshalException
> >>>>  - with linked exception:
> >>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
> >>>> "soapenc" (for attribute "arrayType")
> >>>>  at [row,col {unknown-source}]: [1,680]]
> >>>>    at
> >>>>
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
> (UnmarshallerImpl.java:396)
> >>>>    at
> >>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
> UnmarshallerImpl.java:334)
> >>>>    at
> >>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
> UnmarshallerImpl.java:311)
> >>>>    at
> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:545)
> >>>>    ... 17 more
> >>>>
> >>>> That doesn't suprise me, especially regardin the soap message i
> posted
> >>>> in
> >>>> my
> >>>> previous mail :
> >>>>
> >>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
> >>>> <subjectToApproval
> >>>>    soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
> >>>>    xmlns:p724="http://dto.fcb.mycompany.com" />
> >>>> <syndication xsi: nil="true" />
> >>>> <syndicationReference xsi:nil="true" />
> >>>> <tolerancePercentage>1.0</tolerancePercentage>
> >>>>
> >>>> There is a soapenc namespace prefix, but there is no soapenc
> namespace
> >>>> declaration...
> >>>> I remember from one of my previous post, you said cxf doesn't support
> >>>> soapenc, isn't it?
> >>>>
> >>>> Is it possible to get the get the namespace declaration, even if it's
> >>>> not
> >>>> used by cxf?
> >>>>
> >>>> Best regards,
> >>>> Florent.
> >>>>
> >>>>
> >>>>
> >>>> Florent wrote:
> >>>>
> >>>>
> >>>>> Hello,
> >>>>>
> >>>>> I still have the same configuration :
> >>>>> - Web service server (WAS 6.1)
> >>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
> >>>>> - Web service client (CXF)
> >>>>>
> >>>>> I got some nillable array in my WSDL definition. Everything is ok as
> >>>>> long
> >>>>> as those arrays are not null.
> >>>>> But when they are, "xsi:nil="true"" is added to the soap message.
> >>>>> Everything is still ok as long as i don't use the bridge (direct WS
> >>>>> call
> >>>>> from my CXF client)
> >>>>>
> >>>>> When i used the bridge, here is a part of the jbi out message :
> >>>>>
> >>>>> <commitmentCode>1130</commitmentCode>
> >>>>> <companyCode>071</companyCode>
> >>>>> <consolidatedAutorisation
> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>>>   xsi:nil="true" />
> >>>>> <consolidatedUtilisation
> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>>>   xsi:nil="true" />
> >>>>>
> >>>>> But here is a part of the soap out message :
> >>>>>
> >>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
> >>>>> <subjectToApproval
> >>>>>   soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
> >>>>>   xmlns:p724="http://dto.fcb.mycompany.com" />
> >>>>> <syndication xsi: nil="true" />
> >>>>> <syndicationReference xsi:nil="true" />
> >>>>> <tolerancePercentage>1.0</tolerancePercentage>
> >>>>>
> >>>>> As you can see, there is no
> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>>>
> >>>>> And here is the error log of cxf client :
> >>>>>
> >>>>> INFO: Interceptor has thrown exception, unwinding now
> >>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
> >>>>> namespace prefix "xsi" (for attribute "nil")
> >>>>>  at [row,col {unknown-source}]: [1,613]
> >>>>>   at
> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:559)
> >>>>>   at
> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:465)
> >>>>>   at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
> :40)
> >>>>>   at
> >>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
> DocLiteralInInterceptor.java:102)
> >>>>>   at
> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>>>>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
> :402)
> >>>>>   at
> >>>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
> (HTTPConduit.java:1948)
> >>>>>   at
> >>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
> HTTPConduit.java:1791)
> >>>>>   at
> >>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
> :66)
> >>>>>   at
> >>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java
> :575)
> >>>>>   at
> >>>>>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
> (MessageSenderInterceptor.java:62)
> >>>>>   at
> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> >>>>>   at
> >>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> >>>>>   at
> >>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
> :135)
> >>>>>   at
> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
> >>>>> Source)
> >>>>>   at
> >>>>>
> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
> >>>>> Caused by: javax.xml.bind.UnmarshalException
> >>>>>  - with linked exception:
> >>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
> >>>>> "xsi"
> >>>>> (for attribute "nil")
> >>>>>  at [row,col {unknown-source}]: [1,613]]
> >>>>>   at
> >>>>>
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
> (UnmarshallerImpl.java:396)
> >>>>>   at
> >>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0
> (UnmarshallerImpl.java:334)
> >>>>>   at
> >>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
> UnmarshallerImpl.java:311)
> >>>>>   at
> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:545)
> >>>>>   ... 17 more
> >>>>>
> >>>>>
> >>>>> Does servicemix-cxf supports
> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace
> refix?
> >>>>>
> >>>>> Thanks in advance,
> >>>>> Best regards,
> >>>>> Florent.
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14332644.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

Thanks,

Is there any chance it will fix the soapenc problem too, even if soapenc
isn't supported by cxf? It's the same kind of problem : missing namespace
prefix.

Best Regards,
Florent.


Freeman Fang-2 wrote:
> 
> Hi Florent,
> 
> Thanks,
> 
> Create jira [1] to track it, will fix it up soon
> 
> [1]http://issues.apache.org/activemq/browse/SM-1172
> 
> Best Regards
> 
> Freeman
> 
> Florent wrote:
>> Hi again Freeman,
>>
>> I managed to do a very simple example to reproduce the "jbi-message <==>
>> soap-message" bug. So i can get a complete message log.
>> It should be easier to understand.
>>
>> The WSDL : 
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
>> xmlns:impl="http://ejb.proto.mycompany.com"
>> xmlns:intf="http://ejb.proto.mycompany.com"
>> xmlns:tns2="http://dto.proto.mycompany.com"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>  <wsdl:types>
>>   <schema targetNamespace="http://ejb.proto.mycompany.com"
>> xmlns="http://www.w3.org/2001/XMLSchema"
>> xmlns:tns2="http://dto.proto.mycompany.com"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>    <import namespace="http://dto.proto.mycompany.com"/>
>>    <element name="getProtoDTOResponse">
>>     <complexType>
>>      <sequence>
>>       <element name="getProtoDTOReturn" nillable="true"
>> type="tns2:ProtoDTO"/>
>>      </sequence>
>>     </complexType>
>>    </element>
>>    <element name="getProtoDTO">
>>     <complexType>
>>      <sequence>
>>       <element name="param" nillable="true" type="xsd:string"/>
>>      </sequence>
>>     </complexType>
>>    </element>
>>   </schema>
>>   <schema targetNamespace="http://dto.proto.mycompany.com"
>> xmlns="http://www.w3.org/2001/XMLSchema"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>    <complexType name="ProtoDTO">
>>     <sequence>
>>      <element name="id" nillable="true" type="xsd:string"/>
>>     </sequence>
>>    </complexType>
>>   </schema>
>>  </wsdl:types>
>>
>>    <wsdl:message name="getProtoDTORequest">
>>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>>
>>   </wsdl:message>
>>
>>    <wsdl:message name="getProtoDTOResponse">
>>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>>
>>   </wsdl:message>
>>
>>    <wsdl:portType name="ProtoBean">
>>      <wsdl:operation name="getProtoDTO">
>>        <wsdl:input message="intf:getProtoDTORequest"
>> name="getProtoDTORequest"/>
>>
>>        <wsdl:output message="intf:getProtoDTOResponse"
>> name="getProtoDTOResponse"/>
>>
>>     </wsdl:operation>
>>
>>   </wsdl:portType>
>>
>>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>>  <wsaw:UsingAddressing wsdl:required="false"
>> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>>
>>      <wsdlsoap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"/>
>>
>>      <wsdl:operation name="getProtoDTO">
>>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>>
>>        <wsdl:input name="getProtoDTORequest">
>>          <wsdlsoap:body use="literal"/>
>>
>>       </wsdl:input>
>>
>>        <wsdl:output name="getProtoDTOResponse">
>>          <wsdlsoap:body use="literal"/>
>>
>>       </wsdl:output>
>>
>>     </wsdl:operation>
>>
>>   </wsdl:binding>
>>
>>    <wsdl:service name="ProtoBeanService">
>>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>>        <wsdlsoap:address
>> location="http://0.0.0.0:8092/ProtoBeanService"/>
>>
>>     </wsdl:port>
>>
>>   </wsdl:service>
>>
>> </wsdl:definitions>
>>
>>
>> ServiceMix log :
>>
>> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
>> handleMessage
>> INFO: Inbound Message
>> --------------------------------------
>> Encoding: UTF-8
>> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
>> connection=[keep-alive], SOAPAction=["getProtoDTO"],
>> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
>> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
>> Message:
>> <soap:Envelope
>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
>> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
>> --------------------------------------
>> DEBUG - CxfBcComponent                 - Created correlation id:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> DEBUG - DeliveryChannelImpl            - SendSync
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - DeliveryChannelImpl            - Waiting for exchange
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
>> exchange: 
>> InOut[
>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>   status: Active
>>   role: provider
>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>   endpoint: ProtoBean
>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> ]
>> DEBUG - CxfBcComponent                 - Received exchange: status:
>> Active,
>> role: provider
>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
>> handleMessage
>> INFO: Inbound Message
>> --------------------------------------
>> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
>> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
>> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
>> charset=utf-8]}
>> Message:
>>
>> --------------------------------------
>> DEBUG - DeliveryChannelImpl            - Send
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
>> exchange: 
>> InOut[
>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>   status: Active
>>   role: consumer
>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>   endpoint: ProtoBean
>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> type="msg:getProtoDTOResponse"
>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> ]
>> DEBUG - DeliveryChannelImpl            - Notifying exchange
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
>> DEBUG - DeliveryChannelImpl            - Notified:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> 13 dÚc. 2007 12:10:28
>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
>> INFO: Outbound Message
>> --------------------------------------
>> <soap:Envelope
>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><p637:getProtoDTOResponse
>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> xsi:nil="true"
>> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
>> --------------------------------------
>> DEBUG - DeliveryChannelImpl            - Send
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
>> exchange: 
>> InOut[
>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>   status: Done
>>   role: provider
>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>   endpoint: ProtoBean
>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> type="msg:getProtoDTOResponse"
>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> ]
>> DEBUG - CxfBcComponent                 - Received exchange: status: Done,
>> role:provider
>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>
>> CXF Client log :
>>
>> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
>> doIntercept
>> INFO: Interceptor has thrown exception, unwinding now
>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> namespace
>> prefix "xsi" (for attribute "nil")
>>  at [row,col {unknown-source}]: [1,187] 
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>> 	at
>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>> 	at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> 	at
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> 	at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> 	at $Proxy27.getProtoDTO(Unknown Source)
>> 	at
>> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main(ProtoBean_ProtoBean_Client.java:56)
>> Caused by: javax.xml.bind.UnmarshalException
>>  - with linked exception:
>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi"
>> (for attribute "nil")
>>  at [row,col {unknown-source}]: [1,187]]
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>> 	... 17 more
>>
>>
>> Best regards,
>> Florent.
>>
>>
>> Freeman Fang-2 wrote:
>>   
>>> Hi Florent,
>>>
>>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc 
>>> with cxf.
>>>
>>> But about the prefix missing issue, it seems like something wrong during 
>>> jbi message <===> soap message transformation.
>>>
>>> Would you please append the whole jbi message and soap message, or whole 
>>> logs you get, as well as the wsdl you are using.
>>>
>>> Best Regards
>>>
>>> Freeman
>>>
>>> Florent wrote:
>>>     
>>>> Hi again,
>>>>
>>>> To bypass the problem, i put an empty object in every nillable array
>>>> (instead of a null value).
>>>>
>>>> But, i got a new error (very similar to the first one) :
>>>>
>>>> INFO: Interceptor has thrown exception, unwinding now
>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>> namespace
>>>> prefix "soapenc" (for attribute "arrayType")
>>>>  at [row,col {unknown-source}]: [1,680] 
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>>> 	at
>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>>> 	at
>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>> 	at
>>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>> 	at
>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>> Source)
>>>> 	at
>>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>  - with linked exception:
>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>> "soapenc" (for attribute "arrayType")
>>>>  at [row,col {unknown-source}]: [1,680]]
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>>> 	... 17 more
>>>>
>>>> That doesn't suprise me, especially regardin the soap message i posted
>>>> in
>>>> my
>>>> previous mail :
>>>>
>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>> <subjectToApproval
>>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>>> <syndication xsi: nil="true" />
>>>> <syndicationReference xsi:nil="true" />
>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>
>>>> There is a soapenc namespace prefix, but there is no soapenc namespace
>>>> declaration...
>>>> I remember from one of my previous post, you said cxf doesn't support
>>>> soapenc, isn't it?
>>>>
>>>> Is it possible to get the get the namespace declaration, even if it's
>>>> not
>>>> used by cxf?
>>>>
>>>> Best regards,
>>>> Florent.
>>>>
>>>>
>>>>
>>>> Florent wrote:
>>>>   
>>>>       
>>>>> Hello,
>>>>>
>>>>> I still have the same configuration :
>>>>> - Web service server (WAS 6.1)
>>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>>>>> - Web service client (CXF)
>>>>>
>>>>> I got some nillable array in my WSDL definition. Everything is ok as
>>>>> long
>>>>> as those arrays are not null.
>>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>>>>> Everything is still ok as long as i don't use the bridge (direct WS
>>>>> call
>>>>> from my CXF client)
>>>>>
>>>>> When i used the bridge, here is a part of the jbi out message :
>>>>>
>>>>> <commitmentCode>1130</commitmentCode>
>>>>> <companyCode>071</companyCode>
>>>>> <consolidatedAutorisation
>>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> 	xsi:nil="true" />
>>>>> <consolidatedUtilisation
>>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> 	xsi:nil="true" />
>>>>>
>>>>> But here is a part of the soap out message :
>>>>>
>>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>>> <subjectToApproval
>>>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>>>> <syndication xsi: nil="true" />
>>>>> <syndicationReference xsi:nil="true" />
>>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>>
>>>>> As you can see, there is no
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>
>>>>> And here is the error log of cxf client :
>>>>>
>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>>> namespace prefix "xsi" (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,613] 
>>>>> 	at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>>>> 	at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>>>> 	at
>>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>>>> 	at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>>>> 	at
>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>>>> 	at
>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>>>> 	at
>>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>>> 	at
>>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>>> 	at
>>>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>>> 	at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>> 	at
>>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>>> 	at
>>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>>> Source)
>>>>> 	at
>>>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>>  - with linked exception:
>>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>>> "xsi"
>>>>> (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,613]]
>>>>> 	at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>>>> 	at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>>>> 	at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>>>> 	at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>>>> 	... 17 more
>>>>>
>>>>>
>>>>> Does servicemix-cxf supports
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?
>>>>>
>>>>> Thanks in advance,
>>>>> Best regards,
>>>>> Florent.
>>>>>
>>>>>     
>>>>>         
>>>>   
>>>>       
>>>     
>>
>>   
> 
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14332644.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Freeman Fang <fr...@iona.com>.
Hi Florent,

Thanks,

Create jira [1] to track it, will fix it up soon

[1]http://issues.apache.org/activemq/browse/SM-1172

Best Regards

Freeman

Florent wrote:
> Hi again Freeman,
>
> I managed to do a very simple example to reproduce the "jbi-message <==>
> soap-message" bug. So i can get a complete message log.
> It should be easier to understand.
>
> The WSDL : 
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
> xmlns:impl="http://ejb.proto.mycompany.com"
> xmlns:intf="http://ejb.proto.mycompany.com"
> xmlns:tns2="http://dto.proto.mycompany.com"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>  <wsdl:types>
>   <schema targetNamespace="http://ejb.proto.mycompany.com"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:tns2="http://dto.proto.mycompany.com"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>    <import namespace="http://dto.proto.mycompany.com"/>
>    <element name="getProtoDTOResponse">
>     <complexType>
>      <sequence>
>       <element name="getProtoDTOReturn" nillable="true"
> type="tns2:ProtoDTO"/>
>      </sequence>
>     </complexType>
>    </element>
>    <element name="getProtoDTO">
>     <complexType>
>      <sequence>
>       <element name="param" nillable="true" type="xsd:string"/>
>      </sequence>
>     </complexType>
>    </element>
>   </schema>
>   <schema targetNamespace="http://dto.proto.mycompany.com"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>    <complexType name="ProtoDTO">
>     <sequence>
>      <element name="id" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>   </schema>
>  </wsdl:types>
>
>    <wsdl:message name="getProtoDTORequest">
>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>
>   </wsdl:message>
>
>    <wsdl:message name="getProtoDTOResponse">
>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>
>   </wsdl:message>
>
>    <wsdl:portType name="ProtoBean">
>      <wsdl:operation name="getProtoDTO">
>        <wsdl:input message="intf:getProtoDTORequest"
> name="getProtoDTORequest"/>
>
>        <wsdl:output message="intf:getProtoDTOResponse"
> name="getProtoDTOResponse"/>
>
>     </wsdl:operation>
>
>   </wsdl:portType>
>
>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>  <wsaw:UsingAddressing wsdl:required="false"
> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>
>      <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>
>      <wsdl:operation name="getProtoDTO">
>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>
>        <wsdl:input name="getProtoDTORequest">
>          <wsdlsoap:body use="literal"/>
>
>       </wsdl:input>
>
>        <wsdl:output name="getProtoDTOResponse">
>          <wsdlsoap:body use="literal"/>
>
>       </wsdl:output>
>
>     </wsdl:operation>
>
>   </wsdl:binding>
>
>    <wsdl:service name="ProtoBeanService">
>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>        <wsdlsoap:address location="http://0.0.0.0:8092/ProtoBeanService"/>
>
>     </wsdl:port>
>
>   </wsdl:service>
>
> </wsdl:definitions>
>
>
> ServiceMix log :
>
> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
> handleMessage
> INFO: Inbound Message
> --------------------------------------
> Encoding: UTF-8
> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
> connection=[keep-alive], SOAPAction=["getProtoDTO"],
> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
> Message:
> <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
> --------------------------------------
> DEBUG - CxfBcComponent                 - Created correlation id:
> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> DEBUG - DeliveryChannelImpl            - SendSync
> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
> DeliveryChannel{servicemix-cxf-bc} from sendSync
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
> exchange: 
> InOut[
>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>   status: Active
>   role: provider
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com"><
> param/></ns2:getProtoDTO></jbi:part></jbi:message>
> ]
> DEBUG - CxfBcComponent                 - Received exchange: status: Active,
> role: provider
> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
> handleMessage
> INFO: Inbound Message
> --------------------------------------
> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
> charset=utf-8]}
> Message:
>
> --------------------------------------
> DEBUG - DeliveryChannelImpl            - Send
> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
> exchange: 
> InOut[
>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>   status: Active
>   role: consumer
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com"><
> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> type="msg:getProtoDTOResponse"
> version="1.0"><jbi:part><p637:getProtoDTOResponse
> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> ]
> DEBUG - DeliveryChannelImpl            - Notifying exchange
> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
> DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
> DEBUG - DeliveryChannelImpl            - Notified:
> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
> DeliveryChannel{servicemix-cxf-bc} from sendSync
> 13 dÚc. 2007 12:10:28
> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
> INFO: Outbound Message
> --------------------------------------
> <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><p637:getProtoDTOResponse
> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> xsi:nil="true"
> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
> --------------------------------------
> DEBUG - DeliveryChannelImpl            - Send
> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
> exchange: 
> InOut[
>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>   status: Done
>   role: provider
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com"><
> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> type="msg:getProtoDTOResponse"
> version="1.0"><jbi:part><p637:getProtoDTOResponse
> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> ]
> DEBUG - CxfBcComponent                 - Received exchange: status: Done,
> role:provider
> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>
> CXF Client log :
>
> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace
> prefix "xsi" (for attribute "nil")
>  at [row,col {unknown-source}]: [1,187] 
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
> 	at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
> 	at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
> 	at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
> 	at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
> 	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
> 	at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 	at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> 	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> 	at $Proxy27.getProtoDTO(Unknown Source)
> 	at
> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main(ProtoBean_ProtoBean_Client.java:56)
> Caused by: javax.xml.bind.UnmarshalException
>  - with linked exception:
> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi"
> (for attribute "nil")
>  at [row,col {unknown-source}]: [1,187]]
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
> 	... 17 more
>
>
> Best regards,
> Florent.
>
>
> Freeman Fang-2 wrote:
>   
>> Hi Florent,
>>
>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc 
>> with cxf.
>>
>> But about the prefix missing issue, it seems like something wrong during 
>> jbi message <===> soap message transformation.
>>
>> Would you please append the whole jbi message and soap message, or whole 
>> logs you get, as well as the wsdl you are using.
>>
>> Best Regards
>>
>> Freeman
>>
>> Florent wrote:
>>     
>>> Hi again,
>>>
>>> To bypass the problem, i put an empty object in every nillable array
>>> (instead of a null value).
>>>
>>> But, i got a new error (very similar to the first one) :
>>>
>>> INFO: Interceptor has thrown exception, unwinding now
>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>> namespace
>>> prefix "soapenc" (for attribute "arrayType")
>>>  at [row,col {unknown-source}]: [1,680] 
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>> 	at
>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>> 	at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>> 	at
>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>> 	at
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>> 	at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>> 	at
>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>> Source)
>>> 	at
>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>> Caused by: javax.xml.bind.UnmarshalException
>>>  - with linked exception:
>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>> "soapenc" (for attribute "arrayType")
>>>  at [row,col {unknown-source}]: [1,680]]
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>> 	... 17 more
>>>
>>> That doesn't suprise me, especially regardin the soap message i posted in
>>> my
>>> previous mail :
>>>
>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>> <subjectToApproval
>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>> <syndication xsi: nil="true" />
>>> <syndicationReference xsi:nil="true" />
>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>
>>> There is a soapenc namespace prefix, but there is no soapenc namespace
>>> declaration...
>>> I remember from one of my previous post, you said cxf doesn't support
>>> soapenc, isn't it?
>>>
>>> Is it possible to get the get the namespace declaration, even if it's not
>>> used by cxf?
>>>
>>> Best regards,
>>> Florent.
>>>
>>>
>>>
>>> Florent wrote:
>>>   
>>>       
>>>> Hello,
>>>>
>>>> I still have the same configuration :
>>>> - Web service server (WAS 6.1)
>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>>>> - Web service client (CXF)
>>>>
>>>> I got some nillable array in my WSDL definition. Everything is ok as
>>>> long
>>>> as those arrays are not null.
>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>>>> Everything is still ok as long as i don't use the bridge (direct WS call
>>>> from my CXF client)
>>>>
>>>> When i used the bridge, here is a part of the jbi out message :
>>>>
>>>> <commitmentCode>1130</commitmentCode>
>>>> <companyCode>071</companyCode>
>>>> <consolidatedAutorisation
>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> 	xsi:nil="true" />
>>>> <consolidatedUtilisation
>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> 	xsi:nil="true" />
>>>>
>>>> But here is a part of the soap out message :
>>>>
>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>> <subjectToApproval
>>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>>> <syndication xsi: nil="true" />
>>>> <syndicationReference xsi:nil="true" />
>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>
>>>> As you can see, there is no
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>
>>>> And here is the error log of cxf client :
>>>>
>>>> INFO: Interceptor has thrown exception, unwinding now
>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>> namespace prefix "xsi" (for attribute "nil")
>>>>  at [row,col {unknown-source}]: [1,613] 
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>>> 	at
>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>>> 	at
>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>> 	at
>>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>> 	at
>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>> Source)
>>>> 	at
>>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>  - with linked exception:
>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>> "xsi"
>>>> (for attribute "nil")
>>>>  at [row,col {unknown-source}]: [1,613]]
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>>> 	... 17 more
>>>>
>>>>
>>>> Does servicemix-cxf supports
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?
>>>>
>>>> Thanks in advance,
>>>> Best regards,
>>>> Florent.
>>>>
>>>>     
>>>>         
>>>   
>>>       
>>     
>
>   

Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

Ok, i just tried it :
- First step is OK.
- Second step, i got a build error :

[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] load of org.apache.geronimo.configs/geronimo-gbean-deployer/2.0.1/car
fai
led

Unable to resolve dependency org.apache.geronimo.configs/jee-specs//car
[INFO]
------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 4 minutes 58 seconds
[INFO] Finished at: Wed Dec 19 14:28:22 CET 2007
[INFO] Final Memory: 92M/165M
[INFO]
------------------------------------------------------------------------


Any idea?


Freeman Fang wrote:
> 
> Hi Florent,
> Yes, you have to build the whole servicemix release this time, since we
> update cxf version for servicemix 3.3 snapshot. Your exception is caused
> by
> org.apache.ws.common.xml.schema version changed accordingly (before it was
> 1.2 used for cxf 2.0.2, now it's 1.3.2).
> 
> You can build the kit by
> 1. mvn -Dmaven.test.skip=true -Pstep1 install
> 2 .mvn -Dmaven.test.skip=true -Pstep2 install
> 3. cd distribution folder, mvn install, then you can find the kit in
> distribution/target
> 
> Best Regards
> 
> Freeman
> 
> On 12/19/07, Florent <fl...@sopragroup.com> wrote:
>>
>>
>>
>> Hi Freeman,
>>
>> I got the lastest svn trunk, and built a 3.3 release of cxf-bc component
>> (servicemix-cxf-bc-3.3-SNAPSHOT-installer.zip).
>> I've deployed it, replacing the old version. But now, i can't deploy my
>> service assembly, here is the error log :
>>
>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>> java.lang.NoSuchMethodError:
>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>>        at
>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>> SchemaCollection.java:58)
>>        at
>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>> SchemaCollection.java:53)
>>        at
>> org.apache.cxf.service.model.ServiceInfo.<init>(ServiceInfo.java:44)
>>        at
>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>> WSDLServiceBuilder.java:232)
>>        at
>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>> WSDLServiceBuilder.java:150)
>>        at
>> org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java
>> :117)
>>        at
>> org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:229)
>>        at
>> org.apache.servicemix.common.AbstractDeployer.validate(
>> AbstractDeployer.java:58)
>>        at
>> org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(
>> BaseXBeanDeployer.java:55)
>>        at
>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(
>> AbstractXBeanDeployer.java:96)
>>        at
>> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(
>> BaseServiceUnitManager.java:88)
>>        at
>> org.apache.servicemix.common.BaseServiceUnitManager.deploy(
>> BaseServiceUnitManager.java:69)
>>        at
>>
>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly
>> (DeploymentService.java:508)
>>        at
>>
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly
>> (AutoDeploymentService.java:350)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(
>> AutoDeploymentService.java:253)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory
>> (AutoDeploymentService.java:647)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(
>> AutoDeploymentService.java:60)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(
>> AutoDeploymentService.java:611)
>>        at java.util.TimerThread.mainLoop(Timer.java:512)
>>        at java.util.TimerThread.run(Timer.java:462)
>>
>> Shall i need to build the whole ServiceMix release? Last time, building
>> cxf
>> bc component was enough...
>>
>> Best Regards,
>> Florent.
>>
>>
>>
>> Freeman Fang-2 wrote:
>> >
>> > Hi Florent,
>> >
>> > I can't reproduce your problem, I write a test according to your wsdl
>> > For me, the jbi message is
>> > <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> > xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> > xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> > type="msg:getProtoDTOResponse"
>> > version="1.0"><jbi:part><ns2:getProtoDTOResponse
>> > xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >
>> xsi:nil="true"/></getProtoDTOReturn></ns2:getProtoDTOResponse></jbi:part></jbi:message>
>> >
>> > the soap message after transform is
>> > <soap:Envelope
>> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><ns2:getProtoDTOResponse
>> > xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"
>> >
>> /></getProtoDTOReturn></ns2:getProtoDTOResponse></soap:Body></soap:Envelope>
>> > Everything is there and everything works well.
>> >
>> > Would you please try with the latest trunk?
>> >
>> > Btw, we finish the cxf version update in servicemix, so your huge soap
>> > message issue (> 64 k) should be resovled as well.
>> > Best Regards
>> >
>> > Freeman
>> >
>> > Florent wrote:
>> >> Hi again Freeman,
>> >>
>> >> I managed to do a very simple example to reproduce the "jbi-message
>> <==>
>> >> soap-message" bug. So i can get a complete message log.
>> >> It should be easier to understand.
>> >>
>> >> The WSDL :
>> >>
>> >> <?xml version="1.0" encoding="UTF-8"?>
>> >> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
>> >> xmlns:impl="http://ejb.proto.mycompany.com"
>> >> xmlns:intf="http://ejb.proto.mycompany.com"
>> >> xmlns:tns2="http://dto.proto.mycompany.com"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>> >> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>  <wsdl:types>
>> >>   <schema targetNamespace="http://ejb.proto.mycompany.com"
>> >> xmlns="http://www.w3.org/2001/XMLSchema"
>> >> xmlns:tns2="http://dto.proto.mycompany.com"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>    <import namespace="http://dto.proto.mycompany.com"/>
>> >>    <element name="getProtoDTOResponse">
>> >>     <complexType>
>> >>      <sequence>
>> >>       <element name="getProtoDTOReturn" nillable="true"
>> >> type="tns2:ProtoDTO"/>
>> >>      </sequence>
>> >>     </complexType>
>> >>    </element>
>> >>    <element name="getProtoDTO">
>> >>     <complexType>
>> >>      <sequence>
>> >>       <element name="param" nillable="true" type="xsd:string"/>
>> >>      </sequence>
>> >>     </complexType>
>> >>    </element>
>> >>   </schema>
>> >>   <schema targetNamespace="http://dto.proto.mycompany.com"
>> >> xmlns="http://www.w3.org/2001/XMLSchema"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>    <complexType name="ProtoDTO">
>> >>     <sequence>
>> >>      <element name="id" nillable="true" type="xsd:string"/>
>> >>     </sequence>
>> >>    </complexType>
>> >>   </schema>
>> >>  </wsdl:types>
>> >>
>> >>    <wsdl:message name="getProtoDTORequest">
>> >>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>> >>
>> >>   </wsdl:message>
>> >>
>> >>    <wsdl:message name="getProtoDTOResponse">
>> >>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>> >>
>> >>   </wsdl:message>
>> >>
>> >>    <wsdl:portType name="ProtoBean">
>> >>      <wsdl:operation name="getProtoDTO">
>> >>        <wsdl:input message="intf:getProtoDTORequest"
>> >> name="getProtoDTORequest"/>
>> >>
>> >>        <wsdl:output message="intf:getProtoDTOResponse"
>> >> name="getProtoDTOResponse"/>
>> >>
>> >>     </wsdl:operation>
>> >>
>> >>   </wsdl:portType>
>> >>
>> >>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>> >>  <wsaw:UsingAddressing wsdl:required="false"
>> >> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>> >>
>> >>      <wsdlsoap:binding style="document"
>> >> transport="http://schemas.xmlsoap.org/soap/http"/>
>> >>
>> >>      <wsdl:operation name="getProtoDTO">
>> >>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>> >>
>> >>        <wsdl:input name="getProtoDTORequest">
>> >>          <wsdlsoap:body use="literal"/>
>> >>
>> >>       </wsdl:input>
>> >>
>> >>        <wsdl:output name="getProtoDTOResponse">
>> >>          <wsdlsoap:body use="literal"/>
>> >>
>> >>       </wsdl:output>
>> >>
>> >>     </wsdl:operation>
>> >>
>> >>   </wsdl:binding>
>> >>
>> >>    <wsdl:service name="ProtoBeanService">
>> >>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>> >>        <wsdlsoap:address
>> >> location="http://0.0.0.0:8092/ProtoBeanService"/>
>> >>
>> >>     </wsdl:port>
>> >>
>> >>   </wsdl:service>
>> >>
>> >> </wsdl:definitions>
>> >>
>> >>
>> >> ServiceMix log :
>> >>
>> >> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
>> >> handleMessage
>> >> INFO: Inbound Message
>> >> --------------------------------------
>> >> Encoding: UTF-8
>> >> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
>> >> connection=[keep-alive], SOAPAction=["getProtoDTO"],
>> >> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
>> >> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
>> >> Message:
>> >> <soap:Envelope
>> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
>> >> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
>> >> --------------------------------------
>> >> DEBUG - CxfBcComponent                 - Created correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >> DEBUG - DeliveryChannelImpl            - SendSync
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>> DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - DeliveryChannelImpl            - Waiting for exchange
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
>> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Active
>> >>   role: provider
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - CxfBcComponent                 - Received exchange: status:
>> >> Active,
>> >> role: provider
>> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
>> >> handleMessage
>> >> INFO: Inbound Message
>> >> --------------------------------------
>> >> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
>> >> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
>> >> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
>> >> charset=utf-8]}
>> >> Message:
>> >>
>> >> --------------------------------------
>> >> DEBUG - DeliveryChannelImpl            - Send
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Active
>> >>   role: consumer
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> >> type="msg:getProtoDTOResponse"
>> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - DeliveryChannelImpl            - Notifying exchange
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> >> DeliveryChannel{servicemix-cxf-bc} from
>> processInboundSynchronousExchange
>> >> DEBUG - DeliveryChannelImpl            - Notified:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> >> 13 dÚc. 2007 12:10:28
>> >>
>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallbackonClose
>> >> INFO: Outbound Message
>> >> --------------------------------------
>> >> <soap:Envelope
>> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xsi:nil="true"
>> >>
>> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
>> >> --------------------------------------
>> >> DEBUG - DeliveryChannelImpl            - Send
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>> DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Done
>> >>   role: provider
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> >> type="msg:getProtoDTOResponse"
>> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - CxfBcComponent                 - Received exchange: status:
>> Done,
>> >> role:provider
>> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>
>> >> CXF Client log :
>> >>
>> >> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
>> >> doIntercept
>> >> INFO: Interceptor has thrown exception, unwinding now
>> >> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >> namespace
>> >> prefix "xsi" (for attribute "nil")
>> >>  at [row,col {unknown-source}]: [1,187]
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>      at
>> >> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>      at
>> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>      at
>> >>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>      at
>> >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>      at
>> >>
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> >>      at org.apache.cxf.transport.http.HTTPConduit.close(
>> HTTPConduit.java:575)
>> >>      at
>> >>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>      at
>> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>      at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>> :73)
>> >>      at
>> >>
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> >>      at $Proxy27.getProtoDTO(Unknown Source)
>> >>      at
>> >> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main
>> (ProtoBean_ProtoBean_Client.java:56)
>> >> Caused by: javax.xml.bind.UnmarshalException
>> >>  - with linked exception:
>> >> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> "xsi"
>> >> (for attribute "nil")
>> >>  at [row,col {unknown-source}]: [1,187]]
>> >>      at
>> >>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>      at
>> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> UnmarshallerImpl.java:334)
>> >>      at
>> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>      ... 17 more
>> >>
>> >>
>> >> Best regards,
>> >> Florent.
>> >>
>> >>
>> >> Freeman Fang-2 wrote:
>> >>
>> >>> Hi Florent,
>> >>>
>> >>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc
>> >>> with cxf.
>> >>>
>> >>> But about the prefix missing issue, it seems like something wrong
>> during
>> >>> jbi message <===> soap message transformation.
>> >>>
>> >>> Would you please append the whole jbi message and soap message, or
>> whole
>> >>> logs you get, as well as the wsdl you are using.
>> >>>
>> >>> Best Regards
>> >>>
>> >>> Freeman
>> >>>
>> >>> Florent wrote:
>> >>>
>> >>>> Hi again,
>> >>>>
>> >>>> To bypass the problem, i put an empty object in every nillable array
>> >>>> (instead of a null value).
>> >>>>
>> >>>> But, i got a new error (very similar to the first one) :
>> >>>>
>> >>>> INFO: Interceptor has thrown exception, unwinding now
>> >>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >>>> namespace
>> >>>> prefix "soapenc" (for attribute "arrayType")
>> >>>>  at [row,col {unknown-source}]: [1,680]
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>>>    at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>>>    at
>> >>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>>>    at
>> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>>>    at
>> >>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>>>    at
>> >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>>>    at
>> >>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>> :66)
>> >>>>    at
>> >>>>
>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> >>>>    at
>> >>>>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>>>    at
>> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>>>    at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>> :73)
>> >>>>    at
>> >>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>> :135)
>> >>>>    at
>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> >>>> Source)
>> >>>>    at
>> >>>>
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> >>>> Caused by: javax.xml.bind.UnmarshalException
>> >>>>  - with linked exception:
>> >>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> >>>> "soapenc" (for attribute "arrayType")
>> >>>>  at [row,col {unknown-source}]: [1,680]]
>> >>>>    at
>> >>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>>>    at
>> >>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> UnmarshallerImpl.java:334)
>> >>>>    at
>> >>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>>>    ... 17 more
>> >>>>
>> >>>> That doesn't suprise me, especially regardin the soap message i
>> posted
>> >>>> in
>> >>>> my
>> >>>> previous mail :
>> >>>>
>> >>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> >>>> <subjectToApproval
>> >>>>    soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> >>>>    xmlns:p724="http://dto.fcb.mycompany.com" />
>> >>>> <syndication xsi: nil="true" />
>> >>>> <syndicationReference xsi:nil="true" />
>> >>>> <tolerancePercentage>1.0</tolerancePercentage>
>> >>>>
>> >>>> There is a soapenc namespace prefix, but there is no soapenc
>> namespace
>> >>>> declaration...
>> >>>> I remember from one of my previous post, you said cxf doesn't
>> support
>> >>>> soapenc, isn't it?
>> >>>>
>> >>>> Is it possible to get the get the namespace declaration, even if
>> it's
>> >>>> not
>> >>>> used by cxf?
>> >>>>
>> >>>> Best regards,
>> >>>> Florent.
>> >>>>
>> >>>>
>> >>>>
>> >>>> Florent wrote:
>> >>>>
>> >>>>
>> >>>>> Hello,
>> >>>>>
>> >>>>> I still have the same configuration :
>> >>>>> - Web service server (WAS 6.1)
>> >>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>> >>>>> - Web service client (CXF)
>> >>>>>
>> >>>>> I got some nillable array in my WSDL definition. Everything is ok
>> as
>> >>>>> long
>> >>>>> as those arrays are not null.
>> >>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>> >>>>> Everything is still ok as long as i don't use the bridge (direct WS
>> >>>>> call
>> >>>>> from my CXF client)
>> >>>>>
>> >>>>> When i used the bridge, here is a part of the jbi out message :
>> >>>>>
>> >>>>> <commitmentCode>1130</commitmentCode>
>> >>>>> <companyCode>071</companyCode>
>> >>>>> <consolidatedAutorisation
>> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>   xsi:nil="true" />
>> >>>>> <consolidatedUtilisation
>> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>   xsi:nil="true" />
>> >>>>>
>> >>>>> But here is a part of the soap out message :
>> >>>>>
>> >>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> >>>>> <subjectToApproval
>> >>>>>   soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> >>>>>   xmlns:p724="http://dto.fcb.mycompany.com" />
>> >>>>> <syndication xsi: nil="true" />
>> >>>>> <syndicationReference xsi:nil="true" />
>> >>>>> <tolerancePercentage>1.0</tolerancePercentage>
>> >>>>>
>> >>>>> As you can see, there is no
>> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>
>> >>>>> And here is the error log of cxf client :
>> >>>>>
>> >>>>> INFO: Interceptor has thrown exception, unwinding now
>> >>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >>>>> namespace prefix "xsi" (for attribute "nil")
>> >>>>>  at [row,col {unknown-source}]: [1,613]
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>>>>   at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>>>>   at
>> >>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>>>>   at
>> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>>>>   at
>> >>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>> :66)
>> >>>>>   at
>> >>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java
>> :575)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>>>>   at
>> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>>>>   at
>> >>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>> :135)
>> >>>>>   at
>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> >>>>> Source)
>> >>>>>   at
>> >>>>>
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> >>>>> Caused by: javax.xml.bind.UnmarshalException
>> >>>>>  - with linked exception:
>> >>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> >>>>> "xsi"
>> >>>>> (for attribute "nil")
>> >>>>>  at [row,col {unknown-source}]: [1,613]]
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0
>> (UnmarshallerImpl.java:334)
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>>>>   ... 17 more
>> >>>>>
>> >>>>>
>> >>>>> Does servicemix-cxf supports
>> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace
>> refix?
>> >>>>>
>> >>>>> Thanks in advance,
>> >>>>> Best regards,
>> >>>>> Florent.
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14416125.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14416884.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Freeman Fang <fr...@iona.com>.
It's really wired I cann't reproduce it in my test, and my test is based 
on your wsdl and the output is almost same, except that my soap message 
has the xsi namespace, :-(

Also I go throught the code, since your jbi message part has
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
There is no reason it get lost after transform to soap message.
Any chance you print the soap mesasge sent back from your websphere server?

Best Regards

Freeman
Florent wrote:
> Despite of my maven build error, i still manage to build a working release.
>
> I tried to call a simple WS with a null value, and here is the servicemix
> log (interceptors included) :
>
> 19 dÚc. 2007 15:08:12 org.apache.cxf.interceptor.LoggingInInterceptor
> logging
> INFO: Inbound Message
> ----------------------------
> Encoding: UTF-8
> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
> connection=[keep-alive], SOAPAction=["getProtoDTO"],
> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
> Message:
> <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
> --------------------------------------
> DEBUG - CxfBcComponent                 - Created correlation id:
> ID:172.xx.xxx.xxx-116f2ba0394-4:0
> DEBUG - DeliveryChannelImpl            - SendSync
> ID:172.xx.xxx.xxx-116f2ba0394-4:0 in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> ID:172.xx.xxx.xxx-116f2ba0394-4:0 (1770bec) to be answered in
> DeliveryChannel{servicemix-cxf-bc} from sendSync
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@afbefd dequeued
> exchange: InOut[
>   id: ID:172.xx.xxx.xxx-116f2ba0394-4:0
>   status: Active
>   role: provider
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com"><
> param/></ns2:getProtoDTO></jbi:part></jbi:message>
> ]
> DEBUG - CxfBcComponent                 - Received exchange: status: Active,
> role: provider
> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> ID:172.xx.xxx.xxx-116f2ba0394-4:0
> 19 dÚc. 2007 15:08:12 org.apache.cxf.interceptor.LoggingInInterceptor
> logging
> INFO: Inbound Message
> ----------------------------
> Encoding: UTF-8
> Headers: {Content-Length=[463], Content-Language=[fr-FR], Date=[Wed, 19 Dec
> 2007 14:08:12 GMT], Server=[WebSphere Application Server/6.1],
> content-type=[text/xml; charset=utf-8]}
> Message:
>
> --------------------------------------
> DEBUG - DeliveryChannelImpl            - Send
> ID:172.xx.xxx.xxx-116f2ba0394-4:0 in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@52519 dequeued exchange:
> InOut[
>   id: ID:172.xx.xxx.xxx-116f2ba0394-4:0
>   status: Active
>   role: consumer
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com"><
> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> type="msg:getProtoDTOResponse"
> version="1.0"><jbi:part><p637:getProtoDTOResponse
> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id>id</id><list
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> ]
> DEBUG - DeliveryChannelImpl            - Notifying exchange
> ID:172.xx.xxx.xxx-116f2ba0394-4:0(1770bec) in
> DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
> DEBUG - DeliveryChannelImpl            - Notified:
> ID:172.xx.xxx.xxx-116f2ba0394-4:0(1770bec) in
> DeliveryChannel{servicemix-cxf-bc} from sendSync
> 19 dÚc. 2007 15:08:12
> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
> INFO: Outbound Message
> ---------------------------
> Encoding:
> Headers: <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><p637:getProtoDTOResponse
> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id>id</id><list
> xsi:nil="true"
> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
> --------------------------------------
> DEBUG - DeliveryChannelImpl            - Send
> ID:172.xx.xxx.xxx-116f2ba0394-4:0in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@74e6d dequeued exchange:
> InOut[
>   id: ID:172.xx.xxx.xxx-116f2ba0394-4:0
>   status: Done
>   role: provider
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com"><
> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> type="msg:getProtoDTOResponse"
> version="1.0"><jbi:part><p637:getProtoDTOResponse
> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id>id</id><list
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> ]
> DEBUG - CxfBcComponent                 - Received exchange: status: Done,
> role:provider
> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> ID:172.xx.xxx.xxx-116f2ba0394-4:0
>
>
> So, i still have the same problem :
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  seems to be lost
> during "JBI message <==> SOAP message".
>
> I'll check if huge message size is still an issue ASAP.
>
> Best regards,
> Florent.
>
>
>
> Freeman Fang wrote:
>   
>> Hi Florent,
>> Yes, you have to build the whole servicemix release this time, since we
>> update cxf version for servicemix 3.3 snapshot. Your exception is caused
>> by
>> org.apache.ws.common.xml.schema version changed accordingly (before it was
>> 1.2 used for cxf 2.0.2, now it's 1.3.2).
>>
>> You can build the kit by
>> 1. mvn -Dmaven.test.skip=true -Pstep1 install
>> 2 .mvn -Dmaven.test.skip=true -Pstep2 install
>> 3. cd distribution folder, mvn install, then you can find the kit in
>> distribution/target
>>
>> Best Regards
>>
>> Freeman
>>
>> On 12/19/07, Florent <fl...@sopragroup.com> wrote:
>>     
>>>
>>> Hi Freeman,
>>>
>>> I got the lastest svn trunk, and built a 3.3 release of cxf-bc component
>>> (servicemix-cxf-bc-3.3-SNAPSHOT-installer.zip).
>>> I've deployed it, replacing the old version. But now, i can't deploy my
>>> service assembly, here is the error log :
>>>
>>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>>> java.lang.NoSuchMethodError:
>>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>>>        at
>>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>>> SchemaCollection.java:58)
>>>        at
>>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>>> SchemaCollection.java:53)
>>>        at
>>> org.apache.cxf.service.model.ServiceInfo.<init>(ServiceInfo.java:44)
>>>        at
>>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>>> WSDLServiceBuilder.java:232)
>>>        at
>>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>>> WSDLServiceBuilder.java:150)
>>>        at
>>> org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java
>>> :117)
>>>        at
>>> org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:229)
>>>        at
>>> org.apache.servicemix.common.AbstractDeployer.validate(
>>> AbstractDeployer.java:58)
>>>        at
>>> org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(
>>> BaseXBeanDeployer.java:55)
>>>        at
>>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(
>>> AbstractXBeanDeployer.java:96)
>>>        at
>>> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(
>>> BaseServiceUnitManager.java:88)
>>>        at
>>> org.apache.servicemix.common.BaseServiceUnitManager.deploy(
>>> BaseServiceUnitManager.java:69)
>>>        at
>>>
>>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly
>>> (DeploymentService.java:508)
>>>        at
>>>
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly
>>> (AutoDeploymentService.java:350)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(
>>> AutoDeploymentService.java:253)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory
>>> (AutoDeploymentService.java:647)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(
>>> AutoDeploymentService.java:60)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(
>>> AutoDeploymentService.java:611)
>>>        at java.util.TimerThread.mainLoop(Timer.java:512)
>>>        at java.util.TimerThread.run(Timer.java:462)
>>>
>>> Shall i need to build the whole ServiceMix release? Last time, building
>>> cxf
>>> bc component was enough...
>>>
>>> Best Regards,
>>> Florent.
>>>
>>>
>>>
>>> Freeman Fang-2 wrote:
>>>       
>>>> Hi Florent,
>>>>
>>>> I can't reproduce your problem, I write a test according to your wsdl
>>>> For me, the jbi message is
>>>> <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>>>> type="msg:getProtoDTOResponse"
>>>> version="1.0"><jbi:part><ns2:getProtoDTOResponse
>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>
>>>>         
>>> xsi:nil="true"/></getProtoDTOReturn></ns2:getProtoDTOResponse></jbi:part></jbi:message>
>>>       
>>>> the soap message after transform is
>>>> <soap:Envelope
>>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>>>>         
>>> "><soap:Body><ns2:getProtoDTOResponse
>>>       
>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"
>>>>
>>>>         
>>> /></getProtoDTOReturn></ns2:getProtoDTOResponse></soap:Body></soap:Envelope>
>>>       
>>>> Everything is there and everything works well.
>>>>
>>>> Would you please try with the latest trunk?
>>>>
>>>> Btw, we finish the cxf version update in servicemix, so your huge soap
>>>> message issue (> 64 k) should be resovled as well.
>>>> Best Regards
>>>>
>>>> Freeman
>>>>
>>>> Florent wrote:
>>>>         
>>>>> Hi again Freeman,
>>>>>
>>>>> I managed to do a very simple example to reproduce the "jbi-message
>>>>>           
>>> <==>
>>>       
>>>>> soap-message" bug. So i can get a complete message log.
>>>>> It should be easier to understand.
>>>>>
>>>>> The WSDL :
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
>>>>> xmlns:impl="http://ejb.proto.mycompany.com"
>>>>> xmlns:intf="http://ejb.proto.mycompany.com"
>>>>> xmlns:tns2="http://dto.proto.mycompany.com"
>>>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>>>>> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>>>>> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>>>>  <wsdl:types>
>>>>>   <schema targetNamespace="http://ejb.proto.mycompany.com"
>>>>> xmlns="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:tns2="http://dto.proto.mycompany.com"
>>>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>>>>    <import namespace="http://dto.proto.mycompany.com"/>
>>>>>    <element name="getProtoDTOResponse">
>>>>>     <complexType>
>>>>>      <sequence>
>>>>>       <element name="getProtoDTOReturn" nillable="true"
>>>>> type="tns2:ProtoDTO"/>
>>>>>      </sequence>
>>>>>     </complexType>
>>>>>    </element>
>>>>>    <element name="getProtoDTO">
>>>>>     <complexType>
>>>>>      <sequence>
>>>>>       <element name="param" nillable="true" type="xsd:string"/>
>>>>>      </sequence>
>>>>>     </complexType>
>>>>>    </element>
>>>>>   </schema>
>>>>>   <schema targetNamespace="http://dto.proto.mycompany.com"
>>>>> xmlns="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>>>>    <complexType name="ProtoDTO">
>>>>>     <sequence>
>>>>>      <element name="id" nillable="true" type="xsd:string"/>
>>>>>     </sequence>
>>>>>    </complexType>
>>>>>   </schema>
>>>>>  </wsdl:types>
>>>>>
>>>>>    <wsdl:message name="getProtoDTORequest">
>>>>>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>>>>>
>>>>>   </wsdl:message>
>>>>>
>>>>>    <wsdl:message name="getProtoDTOResponse">
>>>>>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>>>>>
>>>>>   </wsdl:message>
>>>>>
>>>>>    <wsdl:portType name="ProtoBean">
>>>>>      <wsdl:operation name="getProtoDTO">
>>>>>        <wsdl:input message="intf:getProtoDTORequest"
>>>>> name="getProtoDTORequest"/>
>>>>>
>>>>>        <wsdl:output message="intf:getProtoDTOResponse"
>>>>> name="getProtoDTOResponse"/>
>>>>>
>>>>>     </wsdl:operation>
>>>>>
>>>>>   </wsdl:portType>
>>>>>
>>>>>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>>>>>  <wsaw:UsingAddressing wsdl:required="false"
>>>>> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>>>>>
>>>>>      <wsdlsoap:binding style="document"
>>>>> transport="http://schemas.xmlsoap.org/soap/http"/>
>>>>>
>>>>>      <wsdl:operation name="getProtoDTO">
>>>>>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>>>>>
>>>>>        <wsdl:input name="getProtoDTORequest">
>>>>>          <wsdlsoap:body use="literal"/>
>>>>>
>>>>>       </wsdl:input>
>>>>>
>>>>>        <wsdl:output name="getProtoDTOResponse">
>>>>>          <wsdlsoap:body use="literal"/>
>>>>>
>>>>>       </wsdl:output>
>>>>>
>>>>>     </wsdl:operation>
>>>>>
>>>>>   </wsdl:binding>
>>>>>
>>>>>    <wsdl:service name="ProtoBeanService">
>>>>>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>>>>>        <wsdlsoap:address
>>>>> location="http://0.0.0.0:8092/ProtoBeanService"/>
>>>>>
>>>>>     </wsdl:port>
>>>>>
>>>>>   </wsdl:service>
>>>>>
>>>>> </wsdl:definitions>
>>>>>
>>>>>
>>>>> ServiceMix log :
>>>>>
>>>>> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
>>>>> handleMessage
>>>>> INFO: Inbound Message
>>>>> --------------------------------------
>>>>> Encoding: UTF-8
>>>>> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
>>>>> connection=[keep-alive], SOAPAction=["getProtoDTO"],
>>>>> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
>>>>> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
>>>>> Message:
>>>>> <soap:Envelope
>>>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>>>>>           
>>> "><soap:Body><ns2:getProtoDTO
>>>       
>>>>> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
>>>>> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
>>>>> --------------------------------------
>>>>> DEBUG - CxfBcComponent                 - Created correlation id:
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>> DEBUG - DeliveryChannelImpl            - SendSync
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>>>>>           
>>> DeliveryChannel{servicemix-cxf-bc}
>>>       
>>>>> DEBUG - SedaFlow                       - Called Flow send
>>>>> DEBUG - DeliveryChannelImpl            - Waiting for exchange
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
>>>>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>>>>> DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
>>>>> exchange:
>>>>> InOut[
>>>>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>>   status: Active
>>>>>   role: provider
>>>>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>>>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>>>>   endpoint: ProtoBean
>>>>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>>>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>>>>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>>>>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>>>> ]
>>>>> DEBUG - CxfBcComponent                 - Received exchange: status:
>>>>> Active,
>>>>> role: provider
>>>>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
>>>>> handleMessage
>>>>> INFO: Inbound Message
>>>>> --------------------------------------
>>>>> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
>>>>> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
>>>>> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
>>>>> charset=utf-8]}
>>>>> Message:
>>>>>
>>>>> --------------------------------------
>>>>> DEBUG - DeliveryChannelImpl            - Send
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
>>>>> DEBUG - SedaFlow                       - Called Flow send
>>>>> DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
>>>>> exchange:
>>>>> InOut[
>>>>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>>   status: Active
>>>>>   role: consumer
>>>>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>>>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>>>>   endpoint: ProtoBean
>>>>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>>>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>>>>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>>>>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>>>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>>>>> type="msg:getProtoDTOResponse"
>>>>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>>>>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>
>>>>>           
>>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>>>       
>>>>> ]
>>>>> DEBUG - DeliveryChannelImpl            - Notifying exchange
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>>>>> DeliveryChannel{servicemix-cxf-bc} from
>>>>>           
>>> processInboundSynchronousExchange
>>>       
>>>>> DEBUG - DeliveryChannelImpl            - Notified:
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>>>>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>>>>> 13 dÚc. 2007 12:10:28
>>>>>
>>>>>           
>>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallbackonClose
>>>       
>>>>> INFO: Outbound Message
>>>>> --------------------------------------
>>>>> <soap:Envelope
>>>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>>>>>           
>>> "><soap:Body><p637:getProtoDTOResponse
>>>       
>>>>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>>> xsi:nil="true"
>>>>>
>>>>>           
>>> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
>>>       
>>>>> --------------------------------------
>>>>> DEBUG - DeliveryChannelImpl            - Send
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>>>>>           
>>> DeliveryChannel{servicemix-cxf-bc}
>>>       
>>>>> DEBUG - SedaFlow                       - Called Flow send
>>>>> DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
>>>>> exchange:
>>>>> InOut[
>>>>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>>   status: Done
>>>>>   role: provider
>>>>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>>>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>>>>   endpoint: ProtoBean
>>>>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>>>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>>>>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>>>>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>>>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>>>>> type="msg:getProtoDTOResponse"
>>>>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>>>>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>
>>>>>           
>>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>>>       
>>>>> ]
>>>>> DEBUG - CxfBcComponent                 - Received exchange: status:
>>>>>           
>>> Done,
>>>       
>>>>> role:provider
>>>>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>>
>>>>> CXF Client log :
>>>>>
>>>>> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
>>>>> doIntercept
>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>>> namespace
>>>>> prefix "xsi" (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,187]
>>>>>      at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>           
>>> JAXBEncoderDecoder.java:559)
>>>       
>>>>>      at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>           
>>> JAXBEncoderDecoder.java:465)
>>>       
>>>>>      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>>>>>           
>>> :40)
>>>       
>>>>>      at
>>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>>>>>           
>>> DocLiteralInInterceptor.java:102)
>>>       
>>>>>      at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>           
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>>>>>           
>>> :402)
>>>       
>>>>>      at
>>>>>
>>>>>           
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>>> (HTTPConduit.java:1948)
>>>       
>>>>>      at
>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>>>>>           
>>> HTTPConduit.java:1791)
>>>       
>>>>>      at
>>>>>
>>>>>           
>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>       
>>>>>      at org.apache.cxf.transport.http.HTTPConduit.close(
>>>>>           
>>> HTTPConduit.java:575)
>>>       
>>>>>      at
>>>>>
>>>>>           
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>>> (MessageSenderInterceptor.java:62)
>>>       
>>>>>      at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>           
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>>      at
>>>>>           
>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>>> :73)
>>>       
>>>>>      at
>>>>>
>>>>>           
>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>       
>>>>>      at $Proxy27.getProtoDTO(Unknown Source)
>>>>>      at
>>>>> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main
>>>>>           
>>> (ProtoBean_ProtoBean_Client.java:56)
>>>       
>>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>>  - with linked exception:
>>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>>>           
>>> "xsi"
>>>       
>>>>> (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,187]]
>>>>>      at
>>>>>
>>>>>           
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>>> (UnmarshallerImpl.java:396)
>>>       
>>>>>      at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>>>>>           
>>> UnmarshallerImpl.java:334)
>>>       
>>>>>      at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>>>>>           
>>> UnmarshallerImpl.java:311)
>>>       
>>>>>      at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>           
>>> JAXBEncoderDecoder.java:545)
>>>       
>>>>>      ... 17 more
>>>>>
>>>>>
>>>>> Best regards,
>>>>> Florent.
>>>>>
>>>>>
>>>>> Freeman Fang-2 wrote:
>>>>>
>>>>>           
>>>>>> Hi Florent,
>>>>>>
>>>>>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc
>>>>>> with cxf.
>>>>>>
>>>>>> But about the prefix missing issue, it seems like something wrong
>>>>>>             
>>> during
>>>       
>>>>>> jbi message <===> soap message transformation.
>>>>>>
>>>>>> Would you please append the whole jbi message and soap message, or
>>>>>>             
>>> whole
>>>       
>>>>>> logs you get, as well as the wsdl you are using.
>>>>>>
>>>>>> Best Regards
>>>>>>
>>>>>> Freeman
>>>>>>
>>>>>> Florent wrote:
>>>>>>
>>>>>>             
>>>>>>> Hi again,
>>>>>>>
>>>>>>> To bypass the problem, i put an empty object in every nillable array
>>>>>>> (instead of a null value).
>>>>>>>
>>>>>>> But, i got a new error (very similar to the first one) :
>>>>>>>
>>>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>>>>> namespace
>>>>>>> prefix "soapenc" (for attribute "arrayType")
>>>>>>>  at [row,col {unknown-source}]: [1,680]
>>>>>>>    at
>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>               
>>> JAXBEncoderDecoder.java:559)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>               
>>> JAXBEncoderDecoder.java:465)
>>>       
>>>>>>>    at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>>>>>>>               
>>> :40)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>>>>>>>               
>>> DocLiteralInInterceptor.java:102)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>>>               
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>>>    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>>>>>>>               
>>> :402)
>>>       
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>>> (HTTPConduit.java:1948)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>>>>>>>               
>>> HTTPConduit.java:1791)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>>>>>>>               
>>> :66)
>>>       
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>       
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>>> (MessageSenderInterceptor.java:62)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>>>               
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>>>>    at
>>>>>>>               
>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>>> :73)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>>>>>>>               
>>> :135)
>>>       
>>>>>>>    at
>>>>>>>               
>>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>       
>>>>>>> Source)
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>       
>>>>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>>>>  - with linked exception:
>>>>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>>>>> "soapenc" (for attribute "arrayType")
>>>>>>>  at [row,col {unknown-source}]: [1,680]]
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>>> (UnmarshallerImpl.java:396)
>>>       
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>>> UnmarshallerImpl.java:334)
>>>       
>>>>>>>    at
>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>>>>>>>               
>>> UnmarshallerImpl.java:311)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>               
>>> JAXBEncoderDecoder.java:545)
>>>       
>>>>>>>    ... 17 more
>>>>>>>
>>>>>>> That doesn't suprise me, especially regardin the soap message i
>>>>>>>               
>>> posted
>>>       
>>>>>>> in
>>>>>>> my
>>>>>>> previous mail :
>>>>>>>
>>>>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>>>>> <subjectToApproval
>>>>>>>    soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>>>>>    xmlns:p724="http://dto.fcb.mycompany.com" />
>>>>>>> <syndication xsi: nil="true" />
>>>>>>> <syndicationReference xsi:nil="true" />
>>>>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>>>>
>>>>>>> There is a soapenc namespace prefix, but there is no soapenc
>>>>>>>               
>>> namespace
>>>       
>>>>>>> declaration...
>>>>>>> I remember from one of my previous post, you said cxf doesn't
>>>>>>>               
>>> support
>>>       
>>>>>>> soapenc, isn't it?
>>>>>>>
>>>>>>> Is it possible to get the get the namespace declaration, even if
>>>>>>>               
>>> it's
>>>       
>>>>>>> not
>>>>>>> used by cxf?
>>>>>>>
>>>>>>> Best regards,
>>>>>>> Florent.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Florent wrote:
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I still have the same configuration :
>>>>>>>> - Web service server (WAS 6.1)
>>>>>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>>>>>>>> - Web service client (CXF)
>>>>>>>>
>>>>>>>> I got some nillable array in my WSDL definition. Everything is ok
>>>>>>>>                 
>>> as
>>>       
>>>>>>>> long
>>>>>>>> as those arrays are not null.
>>>>>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>>>>>>>> Everything is still ok as long as i don't use the bridge (direct WS
>>>>>>>> call
>>>>>>>> from my CXF client)
>>>>>>>>
>>>>>>>> When i used the bridge, here is a part of the jbi out message :
>>>>>>>>
>>>>>>>> <commitmentCode>1130</commitmentCode>
>>>>>>>> <companyCode>071</companyCode>
>>>>>>>> <consolidatedAutorisation
>>>>>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>>>>   xsi:nil="true" />
>>>>>>>> <consolidatedUtilisation
>>>>>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>>>>   xsi:nil="true" />
>>>>>>>>
>>>>>>>> But here is a part of the soap out message :
>>>>>>>>
>>>>>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>>>>>> <subjectToApproval
>>>>>>>>   soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>>>>>>   xmlns:p724="http://dto.fcb.mycompany.com" />
>>>>>>>> <syndication xsi: nil="true" />
>>>>>>>> <syndicationReference xsi:nil="true" />
>>>>>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>>>>>
>>>>>>>> As you can see, there is no
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>>>>
>>>>>>>> And here is the error log of cxf client :
>>>>>>>>
>>>>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>>>>>> namespace prefix "xsi" (for attribute "nil")
>>>>>>>>  at [row,col {unknown-source}]: [1,613]
>>>>>>>>   at
>>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>>                 
>>> JAXBEncoderDecoder.java:559)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>>                 
>>> JAXBEncoderDecoder.java:465)
>>>       
>>>>>>>>   at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>>>>>>>>                 
>>> :40)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>>>>>>>>                 
>>> DocLiteralInInterceptor.java:102)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>>>>                 
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>>>>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>>>>>>>>                 
>>> :402)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>>> (HTTPConduit.java:1948)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>>> HTTPConduit.java:1791)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>>>>>>>>                 
>>> :66)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java
>>>>>>>>                 
>>> :575)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>>> (MessageSenderInterceptor.java:62)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>>>>                 
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>>>>>   at
>>>>>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>>>>>>   at
>>>>>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>>>>>>>>                 
>>> :135)
>>>       
>>>>>>>>   at
>>>>>>>>                 
>>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>       
>>>>>>>> Source)
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>       
>>>>>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>>>>>  - with linked exception:
>>>>>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>>>>>> "xsi"
>>>>>>>> (for attribute "nil")
>>>>>>>>  at [row,col {unknown-source}]: [1,613]]
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>>> (UnmarshallerImpl.java:396)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0
>>> (UnmarshallerImpl.java:334)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>>> UnmarshallerImpl.java:311)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>>                 
>>> JAXBEncoderDecoder.java:545)
>>>       
>>>>>>>>   ... 17 more
>>>>>>>>
>>>>>>>>
>>>>>>>> Does servicemix-cxf supports
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace
>>>>>>>>                 
>>> refix?
>>>       
>>>>>>>> Thanks in advance,
>>>>>>>> Best regards,
>>>>>>>> Florent.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>>               
>>>>>           
>>>>         
>>> --
>>> View this message in context:
>>> http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14416125.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>>       
>>     
>
>   

Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

Despite of my maven build error, i still manage to build a working release.

I tried to call a simple WS with a null value, and here is the servicemix
log (interceptors included) :

19 dÚc. 2007 15:08:12 org.apache.cxf.interceptor.LoggingInInterceptor
logging
INFO: Inbound Message
----------------------------
Encoding: UTF-8
Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
connection=[keep-alive], SOAPAction=["getProtoDTO"],
transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
Message:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTO
xmlns:ns2="http://ejb.proto.mycompany.com">< param></
param></ns2:getProtoDTO></soap:Body></soap:Envelope>
--------------------------------------
DEBUG - CxfBcComponent                 - Created correlation id:
ID:172.xx.xxx.xxx-116f2ba0394-4:0
DEBUG - DeliveryChannelImpl            - SendSync
ID:172.xx.xxx.xxx-116f2ba0394-4:0 in DeliveryChannel{servicemix-cxf-bc}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - DeliveryChannelImpl            - Waiting for exchange
ID:172.xx.xxx.xxx-116f2ba0394-4:0 (1770bec) to be answered in
DeliveryChannel{servicemix-cxf-bc} from sendSync
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@afbefd dequeued
exchange: InOut[
  id: ID:172.xx.xxx.xxx-116f2ba0394-4:0
  status: Active
  role: provider
  interface: {http://ejb.proto.mycompany.com}ProtoBean
  service: {http://ejb.proto.mycompany.com}ProtoBeanService
  endpoint: ProtoBean
  operation: {http://ejb.proto.mycompany.com}getProtoDTO
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
xmlns:ns2="http://ejb.proto.mycompany.com"><
param/></ns2:getProtoDTO></jbi:part></jbi:message>
]
DEBUG - CxfBcComponent                 - Received exchange: status: Active,
role: provider
DEBUG - CxfBcComponent                 - Retrieved correlation id:
ID:172.xx.xxx.xxx-116f2ba0394-4:0
19 dÚc. 2007 15:08:12 org.apache.cxf.interceptor.LoggingInInterceptor
logging
INFO: Inbound Message
----------------------------
Encoding: UTF-8
Headers: {Content-Length=[463], Content-Language=[fr-FR], Date=[Wed, 19 Dec
2007 14:08:12 GMT], Server=[WebSphere Application Server/6.1],
content-type=[text/xml; charset=utf-8]}
Message:

--------------------------------------
DEBUG - DeliveryChannelImpl            - Send
ID:172.xx.xxx.xxx-116f2ba0394-4:0 in DeliveryChannel{servicemix-cxf-bc}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@52519 dequeued exchange:
InOut[
  id: ID:172.xx.xxx.xxx-116f2ba0394-4:0
  status: Active
  role: consumer
  interface: {http://ejb.proto.mycompany.com}ProtoBean
  service: {http://ejb.proto.mycompany.com}ProtoBeanService
  endpoint: ProtoBean
  operation: {http://ejb.proto.mycompany.com}getProtoDTO
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
xmlns:ns2="http://ejb.proto.mycompany.com"><
param/></ns2:getProtoDTO></jbi:part></jbi:message>
  out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
type="msg:getProtoDTOResponse"
version="1.0"><jbi:part><p637:getProtoDTOResponse
xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id>id</id><list
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
]
DEBUG - DeliveryChannelImpl            - Notifying exchange
ID:172.xx.xxx.xxx-116f2ba0394-4:0(1770bec) in
DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
DEBUG - DeliveryChannelImpl            - Notified:
ID:172.xx.xxx.xxx-116f2ba0394-4:0(1770bec) in
DeliveryChannel{servicemix-cxf-bc} from sendSync
19 dÚc. 2007 15:08:12
org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
INFO: Outbound Message
---------------------------
Encoding:
Headers: <soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><p637:getProtoDTOResponse
xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id>id</id><list
xsi:nil="true"
/></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
--------------------------------------
DEBUG - DeliveryChannelImpl            - Send
ID:172.xx.xxx.xxx-116f2ba0394-4:0in DeliveryChannel{servicemix-cxf-bc}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@74e6d dequeued exchange:
InOut[
  id: ID:172.xx.xxx.xxx-116f2ba0394-4:0
  status: Done
  role: provider
  interface: {http://ejb.proto.mycompany.com}ProtoBean
  service: {http://ejb.proto.mycompany.com}ProtoBeanService
  endpoint: ProtoBean
  operation: {http://ejb.proto.mycompany.com}getProtoDTO
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
xmlns:ns2="http://ejb.proto.mycompany.com"><
param/></ns2:getProtoDTO></jbi:part></jbi:message>
  out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
type="msg:getProtoDTOResponse"
version="1.0"><jbi:part><p637:getProtoDTOResponse
xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id>id</id><list
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
]
DEBUG - CxfBcComponent                 - Received exchange: status: Done,
role:provider
DEBUG - CxfBcComponent                 - Retrieved correlation id:
ID:172.xx.xxx.xxx-116f2ba0394-4:0


So, i still have the same problem :
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  seems to be lost
during "JBI message <==> SOAP message".

I'll check if huge message size is still an issue ASAP.

Best regards,
Florent.



Freeman Fang wrote:
> 
> Hi Florent,
> Yes, you have to build the whole servicemix release this time, since we
> update cxf version for servicemix 3.3 snapshot. Your exception is caused
> by
> org.apache.ws.common.xml.schema version changed accordingly (before it was
> 1.2 used for cxf 2.0.2, now it's 1.3.2).
> 
> You can build the kit by
> 1. mvn -Dmaven.test.skip=true -Pstep1 install
> 2 .mvn -Dmaven.test.skip=true -Pstep2 install
> 3. cd distribution folder, mvn install, then you can find the kit in
> distribution/target
> 
> Best Regards
> 
> Freeman
> 
> On 12/19/07, Florent <fl...@sopragroup.com> wrote:
>>
>>
>>
>> Hi Freeman,
>>
>> I got the lastest svn trunk, and built a 3.3 release of cxf-bc component
>> (servicemix-cxf-bc-3.3-SNAPSHOT-installer.zip).
>> I've deployed it, replacing the old version. But now, i can't deploy my
>> service assembly, here is the error log :
>>
>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>> java.lang.NoSuchMethodError:
>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>>        at
>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>> SchemaCollection.java:58)
>>        at
>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>> SchemaCollection.java:53)
>>        at
>> org.apache.cxf.service.model.ServiceInfo.<init>(ServiceInfo.java:44)
>>        at
>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>> WSDLServiceBuilder.java:232)
>>        at
>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>> WSDLServiceBuilder.java:150)
>>        at
>> org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java
>> :117)
>>        at
>> org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:229)
>>        at
>> org.apache.servicemix.common.AbstractDeployer.validate(
>> AbstractDeployer.java:58)
>>        at
>> org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(
>> BaseXBeanDeployer.java:55)
>>        at
>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(
>> AbstractXBeanDeployer.java:96)
>>        at
>> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(
>> BaseServiceUnitManager.java:88)
>>        at
>> org.apache.servicemix.common.BaseServiceUnitManager.deploy(
>> BaseServiceUnitManager.java:69)
>>        at
>>
>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly
>> (DeploymentService.java:508)
>>        at
>>
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly
>> (AutoDeploymentService.java:350)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(
>> AutoDeploymentService.java:253)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory
>> (AutoDeploymentService.java:647)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(
>> AutoDeploymentService.java:60)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(
>> AutoDeploymentService.java:611)
>>        at java.util.TimerThread.mainLoop(Timer.java:512)
>>        at java.util.TimerThread.run(Timer.java:462)
>>
>> Shall i need to build the whole ServiceMix release? Last time, building
>> cxf
>> bc component was enough...
>>
>> Best Regards,
>> Florent.
>>
>>
>>
>> Freeman Fang-2 wrote:
>> >
>> > Hi Florent,
>> >
>> > I can't reproduce your problem, I write a test according to your wsdl
>> > For me, the jbi message is
>> > <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> > xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> > xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> > type="msg:getProtoDTOResponse"
>> > version="1.0"><jbi:part><ns2:getProtoDTOResponse
>> > xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >
>> xsi:nil="true"/></getProtoDTOReturn></ns2:getProtoDTOResponse></jbi:part></jbi:message>
>> >
>> > the soap message after transform is
>> > <soap:Envelope
>> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><ns2:getProtoDTOResponse
>> > xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"
>> >
>> /></getProtoDTOReturn></ns2:getProtoDTOResponse></soap:Body></soap:Envelope>
>> > Everything is there and everything works well.
>> >
>> > Would you please try with the latest trunk?
>> >
>> > Btw, we finish the cxf version update in servicemix, so your huge soap
>> > message issue (> 64 k) should be resovled as well.
>> > Best Regards
>> >
>> > Freeman
>> >
>> > Florent wrote:
>> >> Hi again Freeman,
>> >>
>> >> I managed to do a very simple example to reproduce the "jbi-message
>> <==>
>> >> soap-message" bug. So i can get a complete message log.
>> >> It should be easier to understand.
>> >>
>> >> The WSDL :
>> >>
>> >> <?xml version="1.0" encoding="UTF-8"?>
>> >> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
>> >> xmlns:impl="http://ejb.proto.mycompany.com"
>> >> xmlns:intf="http://ejb.proto.mycompany.com"
>> >> xmlns:tns2="http://dto.proto.mycompany.com"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>> >> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>  <wsdl:types>
>> >>   <schema targetNamespace="http://ejb.proto.mycompany.com"
>> >> xmlns="http://www.w3.org/2001/XMLSchema"
>> >> xmlns:tns2="http://dto.proto.mycompany.com"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>    <import namespace="http://dto.proto.mycompany.com"/>
>> >>    <element name="getProtoDTOResponse">
>> >>     <complexType>
>> >>      <sequence>
>> >>       <element name="getProtoDTOReturn" nillable="true"
>> >> type="tns2:ProtoDTO"/>
>> >>      </sequence>
>> >>     </complexType>
>> >>    </element>
>> >>    <element name="getProtoDTO">
>> >>     <complexType>
>> >>      <sequence>
>> >>       <element name="param" nillable="true" type="xsd:string"/>
>> >>      </sequence>
>> >>     </complexType>
>> >>    </element>
>> >>   </schema>
>> >>   <schema targetNamespace="http://dto.proto.mycompany.com"
>> >> xmlns="http://www.w3.org/2001/XMLSchema"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>    <complexType name="ProtoDTO">
>> >>     <sequence>
>> >>      <element name="id" nillable="true" type="xsd:string"/>
>> >>     </sequence>
>> >>    </complexType>
>> >>   </schema>
>> >>  </wsdl:types>
>> >>
>> >>    <wsdl:message name="getProtoDTORequest">
>> >>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>> >>
>> >>   </wsdl:message>
>> >>
>> >>    <wsdl:message name="getProtoDTOResponse">
>> >>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>> >>
>> >>   </wsdl:message>
>> >>
>> >>    <wsdl:portType name="ProtoBean">
>> >>      <wsdl:operation name="getProtoDTO">
>> >>        <wsdl:input message="intf:getProtoDTORequest"
>> >> name="getProtoDTORequest"/>
>> >>
>> >>        <wsdl:output message="intf:getProtoDTOResponse"
>> >> name="getProtoDTOResponse"/>
>> >>
>> >>     </wsdl:operation>
>> >>
>> >>   </wsdl:portType>
>> >>
>> >>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>> >>  <wsaw:UsingAddressing wsdl:required="false"
>> >> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>> >>
>> >>      <wsdlsoap:binding style="document"
>> >> transport="http://schemas.xmlsoap.org/soap/http"/>
>> >>
>> >>      <wsdl:operation name="getProtoDTO">
>> >>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>> >>
>> >>        <wsdl:input name="getProtoDTORequest">
>> >>          <wsdlsoap:body use="literal"/>
>> >>
>> >>       </wsdl:input>
>> >>
>> >>        <wsdl:output name="getProtoDTOResponse">
>> >>          <wsdlsoap:body use="literal"/>
>> >>
>> >>       </wsdl:output>
>> >>
>> >>     </wsdl:operation>
>> >>
>> >>   </wsdl:binding>
>> >>
>> >>    <wsdl:service name="ProtoBeanService">
>> >>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>> >>        <wsdlsoap:address
>> >> location="http://0.0.0.0:8092/ProtoBeanService"/>
>> >>
>> >>     </wsdl:port>
>> >>
>> >>   </wsdl:service>
>> >>
>> >> </wsdl:definitions>
>> >>
>> >>
>> >> ServiceMix log :
>> >>
>> >> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
>> >> handleMessage
>> >> INFO: Inbound Message
>> >> --------------------------------------
>> >> Encoding: UTF-8
>> >> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
>> >> connection=[keep-alive], SOAPAction=["getProtoDTO"],
>> >> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
>> >> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
>> >> Message:
>> >> <soap:Envelope
>> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
>> >> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
>> >> --------------------------------------
>> >> DEBUG - CxfBcComponent                 - Created correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >> DEBUG - DeliveryChannelImpl            - SendSync
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>> DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - DeliveryChannelImpl            - Waiting for exchange
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
>> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Active
>> >>   role: provider
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - CxfBcComponent                 - Received exchange: status:
>> >> Active,
>> >> role: provider
>> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
>> >> handleMessage
>> >> INFO: Inbound Message
>> >> --------------------------------------
>> >> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
>> >> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
>> >> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
>> >> charset=utf-8]}
>> >> Message:
>> >>
>> >> --------------------------------------
>> >> DEBUG - DeliveryChannelImpl            - Send
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Active
>> >>   role: consumer
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> >> type="msg:getProtoDTOResponse"
>> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - DeliveryChannelImpl            - Notifying exchange
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> >> DeliveryChannel{servicemix-cxf-bc} from
>> processInboundSynchronousExchange
>> >> DEBUG - DeliveryChannelImpl            - Notified:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> >> 13 dÚc. 2007 12:10:28
>> >>
>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallbackonClose
>> >> INFO: Outbound Message
>> >> --------------------------------------
>> >> <soap:Envelope
>> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xsi:nil="true"
>> >>
>> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
>> >> --------------------------------------
>> >> DEBUG - DeliveryChannelImpl            - Send
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>> DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Done
>> >>   role: provider
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> >> type="msg:getProtoDTOResponse"
>> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - CxfBcComponent                 - Received exchange: status:
>> Done,
>> >> role:provider
>> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>
>> >> CXF Client log :
>> >>
>> >> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
>> >> doIntercept
>> >> INFO: Interceptor has thrown exception, unwinding now
>> >> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >> namespace
>> >> prefix "xsi" (for attribute "nil")
>> >>  at [row,col {unknown-source}]: [1,187]
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>      at
>> >> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>      at
>> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>      at
>> >>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>      at
>> >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>      at
>> >>
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> >>      at org.apache.cxf.transport.http.HTTPConduit.close(
>> HTTPConduit.java:575)
>> >>      at
>> >>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>      at
>> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>      at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>> :73)
>> >>      at
>> >>
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> >>      at $Proxy27.getProtoDTO(Unknown Source)
>> >>      at
>> >> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main
>> (ProtoBean_ProtoBean_Client.java:56)
>> >> Caused by: javax.xml.bind.UnmarshalException
>> >>  - with linked exception:
>> >> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> "xsi"
>> >> (for attribute "nil")
>> >>  at [row,col {unknown-source}]: [1,187]]
>> >>      at
>> >>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>      at
>> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> UnmarshallerImpl.java:334)
>> >>      at
>> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>      ... 17 more
>> >>
>> >>
>> >> Best regards,
>> >> Florent.
>> >>
>> >>
>> >> Freeman Fang-2 wrote:
>> >>
>> >>> Hi Florent,
>> >>>
>> >>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc
>> >>> with cxf.
>> >>>
>> >>> But about the prefix missing issue, it seems like something wrong
>> during
>> >>> jbi message <===> soap message transformation.
>> >>>
>> >>> Would you please append the whole jbi message and soap message, or
>> whole
>> >>> logs you get, as well as the wsdl you are using.
>> >>>
>> >>> Best Regards
>> >>>
>> >>> Freeman
>> >>>
>> >>> Florent wrote:
>> >>>
>> >>>> Hi again,
>> >>>>
>> >>>> To bypass the problem, i put an empty object in every nillable array
>> >>>> (instead of a null value).
>> >>>>
>> >>>> But, i got a new error (very similar to the first one) :
>> >>>>
>> >>>> INFO: Interceptor has thrown exception, unwinding now
>> >>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >>>> namespace
>> >>>> prefix "soapenc" (for attribute "arrayType")
>> >>>>  at [row,col {unknown-source}]: [1,680]
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>>>    at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>>>    at
>> >>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>>>    at
>> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>>>    at
>> >>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>>>    at
>> >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>>>    at
>> >>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>> :66)
>> >>>>    at
>> >>>>
>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> >>>>    at
>> >>>>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>>>    at
>> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>>>    at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>> :73)
>> >>>>    at
>> >>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>> :135)
>> >>>>    at
>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> >>>> Source)
>> >>>>    at
>> >>>>
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> >>>> Caused by: javax.xml.bind.UnmarshalException
>> >>>>  - with linked exception:
>> >>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> >>>> "soapenc" (for attribute "arrayType")
>> >>>>  at [row,col {unknown-source}]: [1,680]]
>> >>>>    at
>> >>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>>>    at
>> >>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> UnmarshallerImpl.java:334)
>> >>>>    at
>> >>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>>>    ... 17 more
>> >>>>
>> >>>> That doesn't suprise me, especially regardin the soap message i
>> posted
>> >>>> in
>> >>>> my
>> >>>> previous mail :
>> >>>>
>> >>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> >>>> <subjectToApproval
>> >>>>    soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> >>>>    xmlns:p724="http://dto.fcb.mycompany.com" />
>> >>>> <syndication xsi: nil="true" />
>> >>>> <syndicationReference xsi:nil="true" />
>> >>>> <tolerancePercentage>1.0</tolerancePercentage>
>> >>>>
>> >>>> There is a soapenc namespace prefix, but there is no soapenc
>> namespace
>> >>>> declaration...
>> >>>> I remember from one of my previous post, you said cxf doesn't
>> support
>> >>>> soapenc, isn't it?
>> >>>>
>> >>>> Is it possible to get the get the namespace declaration, even if
>> it's
>> >>>> not
>> >>>> used by cxf?
>> >>>>
>> >>>> Best regards,
>> >>>> Florent.
>> >>>>
>> >>>>
>> >>>>
>> >>>> Florent wrote:
>> >>>>
>> >>>>
>> >>>>> Hello,
>> >>>>>
>> >>>>> I still have the same configuration :
>> >>>>> - Web service server (WAS 6.1)
>> >>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>> >>>>> - Web service client (CXF)
>> >>>>>
>> >>>>> I got some nillable array in my WSDL definition. Everything is ok
>> as
>> >>>>> long
>> >>>>> as those arrays are not null.
>> >>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>> >>>>> Everything is still ok as long as i don't use the bridge (direct WS
>> >>>>> call
>> >>>>> from my CXF client)
>> >>>>>
>> >>>>> When i used the bridge, here is a part of the jbi out message :
>> >>>>>
>> >>>>> <commitmentCode>1130</commitmentCode>
>> >>>>> <companyCode>071</companyCode>
>> >>>>> <consolidatedAutorisation
>> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>   xsi:nil="true" />
>> >>>>> <consolidatedUtilisation
>> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>   xsi:nil="true" />
>> >>>>>
>> >>>>> But here is a part of the soap out message :
>> >>>>>
>> >>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> >>>>> <subjectToApproval
>> >>>>>   soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> >>>>>   xmlns:p724="http://dto.fcb.mycompany.com" />
>> >>>>> <syndication xsi: nil="true" />
>> >>>>> <syndicationReference xsi:nil="true" />
>> >>>>> <tolerancePercentage>1.0</tolerancePercentage>
>> >>>>>
>> >>>>> As you can see, there is no
>> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>
>> >>>>> And here is the error log of cxf client :
>> >>>>>
>> >>>>> INFO: Interceptor has thrown exception, unwinding now
>> >>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >>>>> namespace prefix "xsi" (for attribute "nil")
>> >>>>>  at [row,col {unknown-source}]: [1,613]
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>>>>   at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>>>>   at
>> >>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>>>>   at
>> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>>>>   at
>> >>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>> :66)
>> >>>>>   at
>> >>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java
>> :575)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>>>>   at
>> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>>>>   at
>> >>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>> :135)
>> >>>>>   at
>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> >>>>> Source)
>> >>>>>   at
>> >>>>>
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> >>>>> Caused by: javax.xml.bind.UnmarshalException
>> >>>>>  - with linked exception:
>> >>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> >>>>> "xsi"
>> >>>>> (for attribute "nil")
>> >>>>>  at [row,col {unknown-source}]: [1,613]]
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0
>> (UnmarshallerImpl.java:334)
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>>>>   ... 17 more
>> >>>>>
>> >>>>>
>> >>>>> Does servicemix-cxf supports
>> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace
>> refix?
>> >>>>>
>> >>>>> Thanks in advance,
>> >>>>> Best regards,
>> >>>>> Florent.
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14416125.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14417666.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Freeman Fang <fr...@gmail.com>.
Hi Florent,

Huge size message with Logging interceptor problem should have be 
resolved in cxf, [1] & [2] is related jira
And I also test it, but can't reproduce your problem.

I suppose this may caused by your websphere server? My test env is cxf 
client and cxf server, bridged by servicemix 3.3 snapshot
Would you please replace your websphere server with standalone cxf 
server to see if this problem happen again?
[1]https://issues.apache.org/jira/browse/CXF-1059
[2]http://issues.apache.org/jira/browse/CXF-986

Thanks very much

Freeman


Florent wrote:
> About the huge soap message issue : it seems to be solved.
>
> But if i add interceptors to my xbean.xml :
> <cxfbc:inInterceptors>
> <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
> </cxfbc:inInterceptors>
> <cxfbc:outInterceptors>
> <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
> </cxfbc:outInterceptors>
> <cxfbc:inFaultInterceptors>
> <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
> </cxfbc:inFaultInterceptors>
> <cxfbc:outFaultInterceptors>
> <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
> </cxfbc:outFaultInterceptors>
>
> I get the following error :
>
> 19 dÚc. 2007 15:50:59 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: stream is closed
>         at
> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.getBodyElement(JbiInWsdl1Interceptor.java:217)
>         at
> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:108)
>         at
> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:60)
>         at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>         at
> org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:119)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1957)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>         at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:166)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: com.ctc.wstx.exc.WstxIOException: stream is closed
>         at
> com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:683)
>         at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1086)
>         at
> org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:215)
>         at
> org.apache.cxf.staxutils.PartialXMLStreamReader.next(PartialXMLStreamReader.java:41)
>         at
> org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:671)
>         at
> org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
>         at
> org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
>         at
> org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
>         at
> org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
>         at
> org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
>         at
> org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
>         at
> org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
>         at
> org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
>         at
> org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
>         at
> org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
>         at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:530)
>         at
> org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.getBodyElement(JbiInWsdl1Interceptor.java:214)
>         ... 17 more
> Caused by: java.io.IOException: stream is closed
>         at
> sun.net.www.http.ChunkedInputStream.ensureOpen(ChunkedInputStream.java:151)
>         at
> sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:646)
>         at java.io.FilterInputStream.read(FilterInputStream.java:111)
>         at
> sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2147)
>         at
> sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2142)
>         at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:362)
>         at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:110)
>         at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84)
>         at
> com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57)
>         at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:967)
>         at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:1009)
>         at com.ctc.wstx.sr.StreamScanner.getNextChar(StreamScanner.java:769)
>         at
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2811)
>         at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
>         ... 32 more
>
>
> Thanks again,
> Best regards,
> Florent.
>
>
> Freeman Fang wrote:
>   
>> Hi Florent,
>> Yes, you have to build the whole servicemix release this time, since we
>> update cxf version for servicemix 3.3 snapshot. Your exception is caused
>> by
>> org.apache.ws.common.xml.schema version changed accordingly (before it was
>> 1.2 used for cxf 2.0.2, now it's 1.3.2).
>>
>> You can build the kit by
>> 1. mvn -Dmaven.test.skip=true -Pstep1 install
>> 2 .mvn -Dmaven.test.skip=true -Pstep2 install
>> 3. cd distribution folder, mvn install, then you can find the kit in
>> distribution/target
>>
>> Best Regards
>>
>> Freeman
>>
>> On 12/19/07, Florent <fl...@sopragroup.com> wrote:
>>     
>>>
>>> Hi Freeman,
>>>
>>> I got the lastest svn trunk, and built a 3.3 release of cxf-bc component
>>> (servicemix-cxf-bc-3.3-SNAPSHOT-installer.zip).
>>> I've deployed it, replacing the old version. But now, i can't deploy my
>>> service assembly, here is the error log :
>>>
>>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>>> java.lang.NoSuchMethodError:
>>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>>>        at
>>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>>> SchemaCollection.java:58)
>>>        at
>>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>>> SchemaCollection.java:53)
>>>        at
>>> org.apache.cxf.service.model.ServiceInfo.<init>(ServiceInfo.java:44)
>>>        at
>>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>>> WSDLServiceBuilder.java:232)
>>>        at
>>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>>> WSDLServiceBuilder.java:150)
>>>        at
>>> org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java
>>> :117)
>>>        at
>>> org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:229)
>>>        at
>>> org.apache.servicemix.common.AbstractDeployer.validate(
>>> AbstractDeployer.java:58)
>>>        at
>>> org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(
>>> BaseXBeanDeployer.java:55)
>>>        at
>>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(
>>> AbstractXBeanDeployer.java:96)
>>>        at
>>> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(
>>> BaseServiceUnitManager.java:88)
>>>        at
>>> org.apache.servicemix.common.BaseServiceUnitManager.deploy(
>>> BaseServiceUnitManager.java:69)
>>>        at
>>>
>>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly
>>> (DeploymentService.java:508)
>>>        at
>>>
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly
>>> (AutoDeploymentService.java:350)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(
>>> AutoDeploymentService.java:253)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory
>>> (AutoDeploymentService.java:647)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(
>>> AutoDeploymentService.java:60)
>>>        at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(
>>> AutoDeploymentService.java:611)
>>>        at java.util.TimerThread.mainLoop(Timer.java:512)
>>>        at java.util.TimerThread.run(Timer.java:462)
>>>
>>> Shall i need to build the whole ServiceMix release? Last time, building
>>> cxf
>>> bc component was enough...
>>>
>>> Best Regards,
>>> Florent.
>>>
>>>
>>>
>>> Freeman Fang-2 wrote:
>>>       
>>>> Hi Florent,
>>>>
>>>> I can't reproduce your problem, I write a test according to your wsdl
>>>> For me, the jbi message is
>>>> <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>>>> type="msg:getProtoDTOResponse"
>>>> version="1.0"><jbi:part><ns2:getProtoDTOResponse
>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>
>>>>         
>>> xsi:nil="true"/></getProtoDTOReturn></ns2:getProtoDTOResponse></jbi:part></jbi:message>
>>>       
>>>> the soap message after transform is
>>>> <soap:Envelope
>>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>>>>         
>>> "><soap:Body><ns2:getProtoDTOResponse
>>>       
>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"
>>>>
>>>>         
>>> /></getProtoDTOReturn></ns2:getProtoDTOResponse></soap:Body></soap:Envelope>
>>>       
>>>> Everything is there and everything works well.
>>>>
>>>> Would you please try with the latest trunk?
>>>>
>>>> Btw, we finish the cxf version update in servicemix, so your huge soap
>>>> message issue (> 64 k) should be resovled as well.
>>>> Best Regards
>>>>
>>>> Freeman
>>>>
>>>> Florent wrote:
>>>>         
>>>>> Hi again Freeman,
>>>>>
>>>>> I managed to do a very simple example to reproduce the "jbi-message
>>>>>           
>>> <==>
>>>       
>>>>> soap-message" bug. So i can get a complete message log.
>>>>> It should be easier to understand.
>>>>>
>>>>> The WSDL :
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
>>>>> xmlns:impl="http://ejb.proto.mycompany.com"
>>>>> xmlns:intf="http://ejb.proto.mycompany.com"
>>>>> xmlns:tns2="http://dto.proto.mycompany.com"
>>>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>>>>> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>>>>> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>>>>  <wsdl:types>
>>>>>   <schema targetNamespace="http://ejb.proto.mycompany.com"
>>>>> xmlns="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:tns2="http://dto.proto.mycompany.com"
>>>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>>>>    <import namespace="http://dto.proto.mycompany.com"/>
>>>>>    <element name="getProtoDTOResponse">
>>>>>     <complexType>
>>>>>      <sequence>
>>>>>       <element name="getProtoDTOReturn" nillable="true"
>>>>> type="tns2:ProtoDTO"/>
>>>>>      </sequence>
>>>>>     </complexType>
>>>>>    </element>
>>>>>    <element name="getProtoDTO">
>>>>>     <complexType>
>>>>>      <sequence>
>>>>>       <element name="param" nillable="true" type="xsd:string"/>
>>>>>      </sequence>
>>>>>     </complexType>
>>>>>    </element>
>>>>>   </schema>
>>>>>   <schema targetNamespace="http://dto.proto.mycompany.com"
>>>>> xmlns="http://www.w3.org/2001/XMLSchema"
>>>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>>>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>>>>    <complexType name="ProtoDTO">
>>>>>     <sequence>
>>>>>      <element name="id" nillable="true" type="xsd:string"/>
>>>>>     </sequence>
>>>>>    </complexType>
>>>>>   </schema>
>>>>>  </wsdl:types>
>>>>>
>>>>>    <wsdl:message name="getProtoDTORequest">
>>>>>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>>>>>
>>>>>   </wsdl:message>
>>>>>
>>>>>    <wsdl:message name="getProtoDTOResponse">
>>>>>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>>>>>
>>>>>   </wsdl:message>
>>>>>
>>>>>    <wsdl:portType name="ProtoBean">
>>>>>      <wsdl:operation name="getProtoDTO">
>>>>>        <wsdl:input message="intf:getProtoDTORequest"
>>>>> name="getProtoDTORequest"/>
>>>>>
>>>>>        <wsdl:output message="intf:getProtoDTOResponse"
>>>>> name="getProtoDTOResponse"/>
>>>>>
>>>>>     </wsdl:operation>
>>>>>
>>>>>   </wsdl:portType>
>>>>>
>>>>>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>>>>>  <wsaw:UsingAddressing wsdl:required="false"
>>>>> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>>>>>
>>>>>      <wsdlsoap:binding style="document"
>>>>> transport="http://schemas.xmlsoap.org/soap/http"/>
>>>>>
>>>>>      <wsdl:operation name="getProtoDTO">
>>>>>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>>>>>
>>>>>        <wsdl:input name="getProtoDTORequest">
>>>>>          <wsdlsoap:body use="literal"/>
>>>>>
>>>>>       </wsdl:input>
>>>>>
>>>>>        <wsdl:output name="getProtoDTOResponse">
>>>>>          <wsdlsoap:body use="literal"/>
>>>>>
>>>>>       </wsdl:output>
>>>>>
>>>>>     </wsdl:operation>
>>>>>
>>>>>   </wsdl:binding>
>>>>>
>>>>>    <wsdl:service name="ProtoBeanService">
>>>>>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>>>>>        <wsdlsoap:address
>>>>> location="http://0.0.0.0:8092/ProtoBeanService"/>
>>>>>
>>>>>     </wsdl:port>
>>>>>
>>>>>   </wsdl:service>
>>>>>
>>>>> </wsdl:definitions>
>>>>>
>>>>>
>>>>> ServiceMix log :
>>>>>
>>>>> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
>>>>> handleMessage
>>>>> INFO: Inbound Message
>>>>> --------------------------------------
>>>>> Encoding: UTF-8
>>>>> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
>>>>> connection=[keep-alive], SOAPAction=["getProtoDTO"],
>>>>> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
>>>>> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
>>>>> Message:
>>>>> <soap:Envelope
>>>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>>>>>           
>>> "><soap:Body><ns2:getProtoDTO
>>>       
>>>>> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
>>>>> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
>>>>> --------------------------------------
>>>>> DEBUG - CxfBcComponent                 - Created correlation id:
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>> DEBUG - DeliveryChannelImpl            - SendSync
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>>>>>           
>>> DeliveryChannel{servicemix-cxf-bc}
>>>       
>>>>> DEBUG - SedaFlow                       - Called Flow send
>>>>> DEBUG - DeliveryChannelImpl            - Waiting for exchange
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
>>>>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>>>>> DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
>>>>> exchange:
>>>>> InOut[
>>>>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>>   status: Active
>>>>>   role: provider
>>>>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>>>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>>>>   endpoint: ProtoBean
>>>>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>>>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>>>>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>>>>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>>>> ]
>>>>> DEBUG - CxfBcComponent                 - Received exchange: status:
>>>>> Active,
>>>>> role: provider
>>>>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
>>>>> handleMessage
>>>>> INFO: Inbound Message
>>>>> --------------------------------------
>>>>> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
>>>>> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
>>>>> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
>>>>> charset=utf-8]}
>>>>> Message:
>>>>>
>>>>> --------------------------------------
>>>>> DEBUG - DeliveryChannelImpl            - Send
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
>>>>> DEBUG - SedaFlow                       - Called Flow send
>>>>> DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
>>>>> exchange:
>>>>> InOut[
>>>>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>>   status: Active
>>>>>   role: consumer
>>>>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>>>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>>>>   endpoint: ProtoBean
>>>>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>>>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>>>>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>>>>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>>>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>>>>> type="msg:getProtoDTOResponse"
>>>>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>>>>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>
>>>>>           
>>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>>>       
>>>>> ]
>>>>> DEBUG - DeliveryChannelImpl            - Notifying exchange
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>>>>> DeliveryChannel{servicemix-cxf-bc} from
>>>>>           
>>> processInboundSynchronousExchange
>>>       
>>>>> DEBUG - DeliveryChannelImpl            - Notified:
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>>>>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>>>>> 13 dÚc. 2007 12:10:28
>>>>>
>>>>>           
>>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallbackonClose
>>>       
>>>>> INFO: Outbound Message
>>>>> --------------------------------------
>>>>> <soap:Envelope
>>>>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>>>>>           
>>> "><soap:Body><p637:getProtoDTOResponse
>>>       
>>>>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>>> xsi:nil="true"
>>>>>
>>>>>           
>>> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
>>>       
>>>>> --------------------------------------
>>>>> DEBUG - DeliveryChannelImpl            - Send
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>>>>>           
>>> DeliveryChannel{servicemix-cxf-bc}
>>>       
>>>>> DEBUG - SedaFlow                       - Called Flow send
>>>>> DEBUG - SedaQueue                      -
>>>>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
>>>>> exchange:
>>>>> InOut[
>>>>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>>   status: Done
>>>>>   role: provider
>>>>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>>>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>>>>   endpoint: ProtoBean
>>>>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>>>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>>>>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>>>>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>>>>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>>>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>>>>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>>>>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>>>>> type="msg:getProtoDTOResponse"
>>>>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>>>>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>
>>>>>           
>>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>>>       
>>>>> ]
>>>>> DEBUG - CxfBcComponent                 - Received exchange: status:
>>>>>           
>>> Done,
>>>       
>>>>> role:provider
>>>>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>>>>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>>>>
>>>>> CXF Client log :
>>>>>
>>>>> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
>>>>> doIntercept
>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>>> namespace
>>>>> prefix "xsi" (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,187]
>>>>>      at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>           
>>> JAXBEncoderDecoder.java:559)
>>>       
>>>>>      at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>           
>>> JAXBEncoderDecoder.java:465)
>>>       
>>>>>      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>>>>>           
>>> :40)
>>>       
>>>>>      at
>>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>>>>>           
>>> DocLiteralInInterceptor.java:102)
>>>       
>>>>>      at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>           
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>>>>>           
>>> :402)
>>>       
>>>>>      at
>>>>>
>>>>>           
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>>> (HTTPConduit.java:1948)
>>>       
>>>>>      at
>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>>>>>           
>>> HTTPConduit.java:1791)
>>>       
>>>>>      at
>>>>>
>>>>>           
>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>       
>>>>>      at org.apache.cxf.transport.http.HTTPConduit.close(
>>>>>           
>>> HTTPConduit.java:575)
>>>       
>>>>>      at
>>>>>
>>>>>           
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>>> (MessageSenderInterceptor.java:62)
>>>       
>>>>>      at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>           
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>>      at
>>>>>           
>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>>> :73)
>>>       
>>>>>      at
>>>>>
>>>>>           
>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>       
>>>>>      at $Proxy27.getProtoDTO(Unknown Source)
>>>>>      at
>>>>> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main
>>>>>           
>>> (ProtoBean_ProtoBean_Client.java:56)
>>>       
>>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>>  - with linked exception:
>>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>>>           
>>> "xsi"
>>>       
>>>>> (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,187]]
>>>>>      at
>>>>>
>>>>>           
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>>> (UnmarshallerImpl.java:396)
>>>       
>>>>>      at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>>>>>           
>>> UnmarshallerImpl.java:334)
>>>       
>>>>>      at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>>>>>           
>>> UnmarshallerImpl.java:311)
>>>       
>>>>>      at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>           
>>> JAXBEncoderDecoder.java:545)
>>>       
>>>>>      ... 17 more
>>>>>
>>>>>
>>>>> Best regards,
>>>>> Florent.
>>>>>
>>>>>
>>>>> Freeman Fang-2 wrote:
>>>>>
>>>>>           
>>>>>> Hi Florent,
>>>>>>
>>>>>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc
>>>>>> with cxf.
>>>>>>
>>>>>> But about the prefix missing issue, it seems like something wrong
>>>>>>             
>>> during
>>>       
>>>>>> jbi message <===> soap message transformation.
>>>>>>
>>>>>> Would you please append the whole jbi message and soap message, or
>>>>>>             
>>> whole
>>>       
>>>>>> logs you get, as well as the wsdl you are using.
>>>>>>
>>>>>> Best Regards
>>>>>>
>>>>>> Freeman
>>>>>>
>>>>>> Florent wrote:
>>>>>>
>>>>>>             
>>>>>>> Hi again,
>>>>>>>
>>>>>>> To bypass the problem, i put an empty object in every nillable array
>>>>>>> (instead of a null value).
>>>>>>>
>>>>>>> But, i got a new error (very similar to the first one) :
>>>>>>>
>>>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>>>>> namespace
>>>>>>> prefix "soapenc" (for attribute "arrayType")
>>>>>>>  at [row,col {unknown-source}]: [1,680]
>>>>>>>    at
>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>               
>>> JAXBEncoderDecoder.java:559)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>               
>>> JAXBEncoderDecoder.java:465)
>>>       
>>>>>>>    at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>>>>>>>               
>>> :40)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>>>>>>>               
>>> DocLiteralInInterceptor.java:102)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>>>               
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>>>    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>>>>>>>               
>>> :402)
>>>       
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>>> (HTTPConduit.java:1948)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>>>>>>>               
>>> HTTPConduit.java:1791)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>>>>>>>               
>>> :66)
>>>       
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>       
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>>> (MessageSenderInterceptor.java:62)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>>>               
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>>>>    at
>>>>>>>               
>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>>> :73)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>>>>>>>               
>>> :135)
>>>       
>>>>>>>    at
>>>>>>>               
>>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>       
>>>>>>> Source)
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>       
>>>>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>>>>  - with linked exception:
>>>>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>>>>> "soapenc" (for attribute "arrayType")
>>>>>>>  at [row,col {unknown-source}]: [1,680]]
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>>> (UnmarshallerImpl.java:396)
>>>       
>>>>>>>    at
>>>>>>>
>>>>>>>               
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>>> UnmarshallerImpl.java:334)
>>>       
>>>>>>>    at
>>>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>>>>>>>               
>>> UnmarshallerImpl.java:311)
>>>       
>>>>>>>    at
>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>               
>>> JAXBEncoderDecoder.java:545)
>>>       
>>>>>>>    ... 17 more
>>>>>>>
>>>>>>> That doesn't suprise me, especially regardin the soap message i
>>>>>>>               
>>> posted
>>>       
>>>>>>> in
>>>>>>> my
>>>>>>> previous mail :
>>>>>>>
>>>>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>>>>> <subjectToApproval
>>>>>>>    soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>>>>>    xmlns:p724="http://dto.fcb.mycompany.com" />
>>>>>>> <syndication xsi: nil="true" />
>>>>>>> <syndicationReference xsi:nil="true" />
>>>>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>>>>
>>>>>>> There is a soapenc namespace prefix, but there is no soapenc
>>>>>>>               
>>> namespace
>>>       
>>>>>>> declaration...
>>>>>>> I remember from one of my previous post, you said cxf doesn't
>>>>>>>               
>>> support
>>>       
>>>>>>> soapenc, isn't it?
>>>>>>>
>>>>>>> Is it possible to get the get the namespace declaration, even if
>>>>>>>               
>>> it's
>>>       
>>>>>>> not
>>>>>>> used by cxf?
>>>>>>>
>>>>>>> Best regards,
>>>>>>> Florent.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Florent wrote:
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I still have the same configuration :
>>>>>>>> - Web service server (WAS 6.1)
>>>>>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>>>>>>>> - Web service client (CXF)
>>>>>>>>
>>>>>>>> I got some nillable array in my WSDL definition. Everything is ok
>>>>>>>>                 
>>> as
>>>       
>>>>>>>> long
>>>>>>>> as those arrays are not null.
>>>>>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>>>>>>>> Everything is still ok as long as i don't use the bridge (direct WS
>>>>>>>> call
>>>>>>>> from my CXF client)
>>>>>>>>
>>>>>>>> When i used the bridge, here is a part of the jbi out message :
>>>>>>>>
>>>>>>>> <commitmentCode>1130</commitmentCode>
>>>>>>>> <companyCode>071</companyCode>
>>>>>>>> <consolidatedAutorisation
>>>>>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>>>>   xsi:nil="true" />
>>>>>>>> <consolidatedUtilisation
>>>>>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>>>>   xsi:nil="true" />
>>>>>>>>
>>>>>>>> But here is a part of the soap out message :
>>>>>>>>
>>>>>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>>>>>> <subjectToApproval
>>>>>>>>   soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>>>>>>   xmlns:p724="http://dto.fcb.mycompany.com" />
>>>>>>>> <syndication xsi: nil="true" />
>>>>>>>> <syndicationReference xsi:nil="true" />
>>>>>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>>>>>
>>>>>>>> As you can see, there is no
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>>>>
>>>>>>>> And here is the error log of cxf client :
>>>>>>>>
>>>>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>>>>>> namespace prefix "xsi" (for attribute "nil")
>>>>>>>>  at [row,col {unknown-source}]: [1,613]
>>>>>>>>   at
>>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>>                 
>>> JAXBEncoderDecoder.java:559)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>>                 
>>> JAXBEncoderDecoder.java:465)
>>>       
>>>>>>>>   at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>>>>>>>>                 
>>> :40)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>>>>>>>>                 
>>> DocLiteralInInterceptor.java:102)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>>>>                 
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>>>>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>>>>>>>>                 
>>> :402)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>>> (HTTPConduit.java:1948)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>>> HTTPConduit.java:1791)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>>>>>>>>                 
>>> :66)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java
>>>>>>>>                 
>>> :575)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>>> (MessageSenderInterceptor.java:62)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>>>>>>>>                 
>>> PhaseInterceptorChain.java:207)
>>>       
>>>>>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>>>>>   at
>>>>>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>>>>>>   at
>>>>>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>>>>>>>>                 
>>> :135)
>>>       
>>>>>>>>   at
>>>>>>>>                 
>>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>       
>>>>>>>> Source)
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>       
>>>>>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>>>>>  - with linked exception:
>>>>>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>>>>>> "xsi"
>>>>>>>> (for attribute "nil")
>>>>>>>>  at [row,col {unknown-source}]: [1,613]]
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>>> (UnmarshallerImpl.java:396)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0
>>> (UnmarshallerImpl.java:334)
>>>       
>>>>>>>>   at
>>>>>>>>
>>>>>>>>                 
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>>> UnmarshallerImpl.java:311)
>>>       
>>>>>>>>   at
>>>>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>>>>>>>>                 
>>> JAXBEncoderDecoder.java:545)
>>>       
>>>>>>>>   ... 17 more
>>>>>>>>
>>>>>>>>
>>>>>>>> Does servicemix-cxf supports
>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace
>>>>>>>>                 
>>> refix?
>>>       
>>>>>>>> Thanks in advance,
>>>>>>>> Best regards,
>>>>>>>> Florent.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>>               
>>>>>           
>>>>         
>>> --
>>> View this message in context:
>>> http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14416125.html
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>>       
>>     
>
>   

Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

About the huge soap message issue : it seems to be solved.

But if i add interceptors to my xbean.xml :
<cxfbc:inInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
</cxfbc:inInterceptors>
<cxfbc:outInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
</cxfbc:outInterceptors>
<cxfbc:inFaultInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
</cxfbc:inFaultInterceptors>
<cxfbc:outFaultInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
</cxfbc:outFaultInterceptors>

I get the following error :

19 dÚc. 2007 15:50:59 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: stream is closed
        at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.getBodyElement(JbiInWsdl1Interceptor.java:217)
        at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:108)
        at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:60)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
        at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:119)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1957)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
        at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:166)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
Caused by: com.ctc.wstx.exc.WstxIOException: stream is closed
        at
com.ctc.wstx.sr.StreamScanner.throwFromIOE(StreamScanner.java:683)
        at
com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1086)
        at
org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:215)
        at
org.apache.cxf.staxutils.PartialXMLStreamReader.next(PartialXMLStreamReader.java:41)
        at
org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:671)
        at
org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
        at
org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
        at
org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
        at
org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
        at
org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
        at
org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
        at
org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
        at
org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
        at
org.apache.cxf.staxutils.StaxUtils.startElement(StaxUtils.java:593)
        at
org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:630)
        at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:530)
        at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.getBodyElement(JbiInWsdl1Interceptor.java:214)
        ... 17 more
Caused by: java.io.IOException: stream is closed
        at
sun.net.www.http.ChunkedInputStream.ensureOpen(ChunkedInputStream.java:151)
        at
sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:646)
        at java.io.FilterInputStream.read(FilterInputStream.java:111)
        at
sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2147)
        at
sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2142)
        at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:362)
        at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:110)
        at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84)
        at
com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57)
        at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:967)
        at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:1009)
        at com.ctc.wstx.sr.StreamScanner.getNextChar(StreamScanner.java:769)
        at
com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2811)
        at
com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
        ... 32 more


Thanks again,
Best regards,
Florent.


Freeman Fang wrote:
> 
> Hi Florent,
> Yes, you have to build the whole servicemix release this time, since we
> update cxf version for servicemix 3.3 snapshot. Your exception is caused
> by
> org.apache.ws.common.xml.schema version changed accordingly (before it was
> 1.2 used for cxf 2.0.2, now it's 1.3.2).
> 
> You can build the kit by
> 1. mvn -Dmaven.test.skip=true -Pstep1 install
> 2 .mvn -Dmaven.test.skip=true -Pstep2 install
> 3. cd distribution folder, mvn install, then you can find the kit in
> distribution/target
> 
> Best Regards
> 
> Freeman
> 
> On 12/19/07, Florent <fl...@sopragroup.com> wrote:
>>
>>
>>
>> Hi Freeman,
>>
>> I got the lastest svn trunk, and built a 3.3 release of cxf-bc component
>> (servicemix-cxf-bc-3.3-SNAPSHOT-installer.zip).
>> I've deployed it, replacing the old version. But now, i can't deploy my
>> service assembly, here is the error log :
>>
>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>> java.lang.NoSuchMethodError:
>> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
>> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>>        at
>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>> SchemaCollection.java:58)
>>        at
>> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
>> SchemaCollection.java:53)
>>        at
>> org.apache.cxf.service.model.ServiceInfo.<init>(ServiceInfo.java:44)
>>        at
>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>> WSDLServiceBuilder.java:232)
>>        at
>> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
>> WSDLServiceBuilder.java:150)
>>        at
>> org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java
>> :117)
>>        at
>> org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:229)
>>        at
>> org.apache.servicemix.common.AbstractDeployer.validate(
>> AbstractDeployer.java:58)
>>        at
>> org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(
>> BaseXBeanDeployer.java:55)
>>        at
>> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(
>> AbstractXBeanDeployer.java:96)
>>        at
>> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(
>> BaseServiceUnitManager.java:88)
>>        at
>> org.apache.servicemix.common.BaseServiceUnitManager.deploy(
>> BaseServiceUnitManager.java:69)
>>        at
>>
>> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly
>> (DeploymentService.java:508)
>>        at
>>
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly
>> (AutoDeploymentService.java:350)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(
>> AutoDeploymentService.java:253)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory
>> (AutoDeploymentService.java:647)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(
>> AutoDeploymentService.java:60)
>>        at
>> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(
>> AutoDeploymentService.java:611)
>>        at java.util.TimerThread.mainLoop(Timer.java:512)
>>        at java.util.TimerThread.run(Timer.java:462)
>>
>> Shall i need to build the whole ServiceMix release? Last time, building
>> cxf
>> bc component was enough...
>>
>> Best Regards,
>> Florent.
>>
>>
>>
>> Freeman Fang-2 wrote:
>> >
>> > Hi Florent,
>> >
>> > I can't reproduce your problem, I write a test according to your wsdl
>> > For me, the jbi message is
>> > <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> > xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> > xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> > type="msg:getProtoDTOResponse"
>> > version="1.0"><jbi:part><ns2:getProtoDTOResponse
>> > xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >
>> xsi:nil="true"/></getProtoDTOReturn></ns2:getProtoDTOResponse></jbi:part></jbi:message>
>> >
>> > the soap message after transform is
>> > <soap:Envelope
>> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><ns2:getProtoDTOResponse
>> > xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"
>> >
>> /></getProtoDTOReturn></ns2:getProtoDTOResponse></soap:Body></soap:Envelope>
>> > Everything is there and everything works well.
>> >
>> > Would you please try with the latest trunk?
>> >
>> > Btw, we finish the cxf version update in servicemix, so your huge soap
>> > message issue (> 64 k) should be resovled as well.
>> > Best Regards
>> >
>> > Freeman
>> >
>> > Florent wrote:
>> >> Hi again Freeman,
>> >>
>> >> I managed to do a very simple example to reproduce the "jbi-message
>> <==>
>> >> soap-message" bug. So i can get a complete message log.
>> >> It should be easier to understand.
>> >>
>> >> The WSDL :
>> >>
>> >> <?xml version="1.0" encoding="UTF-8"?>
>> >> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
>> >> xmlns:impl="http://ejb.proto.mycompany.com"
>> >> xmlns:intf="http://ejb.proto.mycompany.com"
>> >> xmlns:tns2="http://dto.proto.mycompany.com"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>> >> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>  <wsdl:types>
>> >>   <schema targetNamespace="http://ejb.proto.mycompany.com"
>> >> xmlns="http://www.w3.org/2001/XMLSchema"
>> >> xmlns:tns2="http://dto.proto.mycompany.com"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>    <import namespace="http://dto.proto.mycompany.com"/>
>> >>    <element name="getProtoDTOResponse">
>> >>     <complexType>
>> >>      <sequence>
>> >>       <element name="getProtoDTOReturn" nillable="true"
>> >> type="tns2:ProtoDTO"/>
>> >>      </sequence>
>> >>     </complexType>
>> >>    </element>
>> >>    <element name="getProtoDTO">
>> >>     <complexType>
>> >>      <sequence>
>> >>       <element name="param" nillable="true" type="xsd:string"/>
>> >>      </sequence>
>> >>     </complexType>
>> >>    </element>
>> >>   </schema>
>> >>   <schema targetNamespace="http://dto.proto.mycompany.com"
>> >> xmlns="http://www.w3.org/2001/XMLSchema"
>> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>> >>    <complexType name="ProtoDTO">
>> >>     <sequence>
>> >>      <element name="id" nillable="true" type="xsd:string"/>
>> >>     </sequence>
>> >>    </complexType>
>> >>   </schema>
>> >>  </wsdl:types>
>> >>
>> >>    <wsdl:message name="getProtoDTORequest">
>> >>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>> >>
>> >>   </wsdl:message>
>> >>
>> >>    <wsdl:message name="getProtoDTOResponse">
>> >>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>> >>
>> >>   </wsdl:message>
>> >>
>> >>    <wsdl:portType name="ProtoBean">
>> >>      <wsdl:operation name="getProtoDTO">
>> >>        <wsdl:input message="intf:getProtoDTORequest"
>> >> name="getProtoDTORequest"/>
>> >>
>> >>        <wsdl:output message="intf:getProtoDTOResponse"
>> >> name="getProtoDTOResponse"/>
>> >>
>> >>     </wsdl:operation>
>> >>
>> >>   </wsdl:portType>
>> >>
>> >>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>> >>  <wsaw:UsingAddressing wsdl:required="false"
>> >> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>> >>
>> >>      <wsdlsoap:binding style="document"
>> >> transport="http://schemas.xmlsoap.org/soap/http"/>
>> >>
>> >>      <wsdl:operation name="getProtoDTO">
>> >>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>> >>
>> >>        <wsdl:input name="getProtoDTORequest">
>> >>          <wsdlsoap:body use="literal"/>
>> >>
>> >>       </wsdl:input>
>> >>
>> >>        <wsdl:output name="getProtoDTOResponse">
>> >>          <wsdlsoap:body use="literal"/>
>> >>
>> >>       </wsdl:output>
>> >>
>> >>     </wsdl:operation>
>> >>
>> >>   </wsdl:binding>
>> >>
>> >>    <wsdl:service name="ProtoBeanService">
>> >>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>> >>        <wsdlsoap:address
>> >> location="http://0.0.0.0:8092/ProtoBeanService"/>
>> >>
>> >>     </wsdl:port>
>> >>
>> >>   </wsdl:service>
>> >>
>> >> </wsdl:definitions>
>> >>
>> >>
>> >> ServiceMix log :
>> >>
>> >> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
>> >> handleMessage
>> >> INFO: Inbound Message
>> >> --------------------------------------
>> >> Encoding: UTF-8
>> >> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
>> >> connection=[keep-alive], SOAPAction=["getProtoDTO"],
>> >> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
>> >> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
>> >> Message:
>> >> <soap:Envelope
>> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
>> >> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
>> >> --------------------------------------
>> >> DEBUG - CxfBcComponent                 - Created correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >> DEBUG - DeliveryChannelImpl            - SendSync
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>> DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - DeliveryChannelImpl            - Waiting for exchange
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
>> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Active
>> >>   role: provider
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - CxfBcComponent                 - Received exchange: status:
>> >> Active,
>> >> role: provider
>> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
>> >> handleMessage
>> >> INFO: Inbound Message
>> >> --------------------------------------
>> >> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
>> >> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
>> >> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
>> >> charset=utf-8]}
>> >> Message:
>> >>
>> >> --------------------------------------
>> >> DEBUG - DeliveryChannelImpl            - Send
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Active
>> >>   role: consumer
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> >> type="msg:getProtoDTOResponse"
>> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - DeliveryChannelImpl            - Notifying exchange
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> >> DeliveryChannel{servicemix-cxf-bc} from
>> processInboundSynchronousExchange
>> >> DEBUG - DeliveryChannelImpl            - Notified:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> >> 13 dÚc. 2007 12:10:28
>> >>
>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallbackonClose
>> >> INFO: Outbound Message
>> >> --------------------------------------
>> >> <soap:Envelope
>> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
>> "><soap:Body><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xsi:nil="true"
>> >>
>> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
>> >> --------------------------------------
>> >> DEBUG - DeliveryChannelImpl            - Send
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in
>> DeliveryChannel{servicemix-cxf-bc}
>> >> DEBUG - SedaFlow                       - Called Flow send
>> >> DEBUG - SedaQueue                      -
>> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
>> >> exchange:
>> >> InOut[
>> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>   status: Done
>> >>   role: provider
>> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>> >>   endpoint: ProtoBean
>> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> >> type="msg:getProtoDTOResponse"
>> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> >> ]
>> >> DEBUG - CxfBcComponent                 - Received exchange: status:
>> Done,
>> >> role:provider
>> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> >>
>> >> CXF Client log :
>> >>
>> >> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
>> >> doIntercept
>> >> INFO: Interceptor has thrown exception, unwinding now
>> >> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >> namespace
>> >> prefix "xsi" (for attribute "nil")
>> >>  at [row,col {unknown-source}]: [1,187]
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>      at
>> >> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>      at
>> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>      at
>> >>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>      at
>> >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>      at
>> >>
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> >>      at org.apache.cxf.transport.http.HTTPConduit.close(
>> HTTPConduit.java:575)
>> >>      at
>> >>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>      at
>> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>      at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>> :73)
>> >>      at
>> >>
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> >>      at $Proxy27.getProtoDTO(Unknown Source)
>> >>      at
>> >> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main
>> (ProtoBean_ProtoBean_Client.java:56)
>> >> Caused by: javax.xml.bind.UnmarshalException
>> >>  - with linked exception:
>> >> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> "xsi"
>> >> (for attribute "nil")
>> >>  at [row,col {unknown-source}]: [1,187]]
>> >>      at
>> >>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>      at
>> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> UnmarshallerImpl.java:334)
>> >>      at
>> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>      at
>> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>      ... 17 more
>> >>
>> >>
>> >> Best regards,
>> >> Florent.
>> >>
>> >>
>> >> Freeman Fang-2 wrote:
>> >>
>> >>> Hi Florent,
>> >>>
>> >>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc
>> >>> with cxf.
>> >>>
>> >>> But about the prefix missing issue, it seems like something wrong
>> during
>> >>> jbi message <===> soap message transformation.
>> >>>
>> >>> Would you please append the whole jbi message and soap message, or
>> whole
>> >>> logs you get, as well as the wsdl you are using.
>> >>>
>> >>> Best Regards
>> >>>
>> >>> Freeman
>> >>>
>> >>> Florent wrote:
>> >>>
>> >>>> Hi again,
>> >>>>
>> >>>> To bypass the problem, i put an empty object in every nillable array
>> >>>> (instead of a null value).
>> >>>>
>> >>>> But, i got a new error (very similar to the first one) :
>> >>>>
>> >>>> INFO: Interceptor has thrown exception, unwinding now
>> >>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >>>> namespace
>> >>>> prefix "soapenc" (for attribute "arrayType")
>> >>>>  at [row,col {unknown-source}]: [1,680]
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>>>    at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>>>    at
>> >>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>>>    at
>> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>>>    at
>> >>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>>>    at
>> >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>>>    at
>> >>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>> :66)
>> >>>>    at
>> >>>>
>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> >>>>    at
>> >>>>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>>>    at
>> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>>>    at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
>> :73)
>> >>>>    at
>> >>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>> :135)
>> >>>>    at
>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> >>>> Source)
>> >>>>    at
>> >>>>
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> >>>> Caused by: javax.xml.bind.UnmarshalException
>> >>>>  - with linked exception:
>> >>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> >>>> "soapenc" (for attribute "arrayType")
>> >>>>  at [row,col {unknown-source}]: [1,680]]
>> >>>>    at
>> >>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>>>    at
>> >>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
>> UnmarshallerImpl.java:334)
>> >>>>    at
>> >>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>>>    at
>> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>>>    ... 17 more
>> >>>>
>> >>>> That doesn't suprise me, especially regardin the soap message i
>> posted
>> >>>> in
>> >>>> my
>> >>>> previous mail :
>> >>>>
>> >>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> >>>> <subjectToApproval
>> >>>>    soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> >>>>    xmlns:p724="http://dto.fcb.mycompany.com" />
>> >>>> <syndication xsi: nil="true" />
>> >>>> <syndicationReference xsi:nil="true" />
>> >>>> <tolerancePercentage>1.0</tolerancePercentage>
>> >>>>
>> >>>> There is a soapenc namespace prefix, but there is no soapenc
>> namespace
>> >>>> declaration...
>> >>>> I remember from one of my previous post, you said cxf doesn't
>> support
>> >>>> soapenc, isn't it?
>> >>>>
>> >>>> Is it possible to get the get the namespace declaration, even if
>> it's
>> >>>> not
>> >>>> used by cxf?
>> >>>>
>> >>>> Best regards,
>> >>>> Florent.
>> >>>>
>> >>>>
>> >>>>
>> >>>> Florent wrote:
>> >>>>
>> >>>>
>> >>>>> Hello,
>> >>>>>
>> >>>>> I still have the same configuration :
>> >>>>> - Web service server (WAS 6.1)
>> >>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>> >>>>> - Web service client (CXF)
>> >>>>>
>> >>>>> I got some nillable array in my WSDL definition. Everything is ok
>> as
>> >>>>> long
>> >>>>> as those arrays are not null.
>> >>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>> >>>>> Everything is still ok as long as i don't use the bridge (direct WS
>> >>>>> call
>> >>>>> from my CXF client)
>> >>>>>
>> >>>>> When i used the bridge, here is a part of the jbi out message :
>> >>>>>
>> >>>>> <commitmentCode>1130</commitmentCode>
>> >>>>> <companyCode>071</companyCode>
>> >>>>> <consolidatedAutorisation
>> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>   xsi:nil="true" />
>> >>>>> <consolidatedUtilisation
>> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>   xsi:nil="true" />
>> >>>>>
>> >>>>> But here is a part of the soap out message :
>> >>>>>
>> >>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> >>>>> <subjectToApproval
>> >>>>>   soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> >>>>>   xmlns:p724="http://dto.fcb.mycompany.com" />
>> >>>>> <syndication xsi: nil="true" />
>> >>>>> <syndicationReference xsi:nil="true" />
>> >>>>> <tolerancePercentage>1.0</tolerancePercentage>
>> >>>>>
>> >>>>> As you can see, there is no
>> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>>>
>> >>>>> And here is the error log of cxf client :
>> >>>>>
>> >>>>> INFO: Interceptor has thrown exception, unwinding now
>> >>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> >>>>> namespace prefix "xsi" (for attribute "nil")
>> >>>>>  at [row,col {unknown-source}]: [1,613]
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:559)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:465)
>> >>>>>   at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
>> :40)
>> >>>>>   at
>> >>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
>> DocLiteralInInterceptor.java:102)
>> >>>>>   at
>> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
>> :402)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
>> (HTTPConduit.java:1948)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
>> HTTPConduit.java:1791)
>> >>>>>   at
>> >>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
>> :66)
>> >>>>>   at
>> >>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java
>> :575)
>> >>>>>   at
>> >>>>>
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
>> (MessageSenderInterceptor.java:62)
>> >>>>>   at
>> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
>> PhaseInterceptorChain.java:207)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> >>>>>   at
>> >>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
>> :135)
>> >>>>>   at
>> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> >>>>> Source)
>> >>>>>   at
>> >>>>>
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
>> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> >>>>> Caused by: javax.xml.bind.UnmarshalException
>> >>>>>  - with linked exception:
>> >>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> >>>>> "xsi"
>> >>>>> (for attribute "nil")
>> >>>>>  at [row,col {unknown-source}]: [1,613]]
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
>> (UnmarshallerImpl.java:396)
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0
>> (UnmarshallerImpl.java:334)
>> >>>>>   at
>> >>>>>
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
>> UnmarshallerImpl.java:311)
>> >>>>>   at
>> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
>> JAXBEncoderDecoder.java:545)
>> >>>>>   ... 17 more
>> >>>>>
>> >>>>>
>> >>>>> Does servicemix-cxf supports
>> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace
>> refix?
>> >>>>>
>> >>>>> Thanks in advance,
>> >>>>> Best regards,
>> >>>>> Florent.
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14416125.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14418497.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Freeman Fang <fr...@gmail.com>.
Hi Florent,
Yes, you have to build the whole servicemix release this time, since we
update cxf version for servicemix 3.3 snapshot. Your exception is caused by
org.apache.ws.common.xml.schema version changed accordingly (before it was
1.2 used for cxf 2.0.2, now it's 1.3.2).

You can build the kit by
1. mvn -Dmaven.test.skip=true -Pstep1 install
2 .mvn -Dmaven.test.skip=true -Pstep2 install
3. cd distribution folder, mvn install, then you can find the kit in
distribution/target

Best Regards

Freeman

On 12/19/07, Florent <fl...@sopragroup.com> wrote:
>
>
>
> Hi Freeman,
>
> I got the lastest svn trunk, and built a 3.3 release of cxf-bc component
> (servicemix-cxf-bc-3.3-SNAPSHOT-installer.zip).
> I've deployed it, replacing the old version. But now, i can't deploy my
> service assembly, here is the error log :
>
> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
> java.lang.NoSuchMethodError:
> org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg
> ()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
>        at
> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
> SchemaCollection.java:58)
>        at
> org.apache.cxf.common.xmlschema.SchemaCollection.<init>(
> SchemaCollection.java:53)
>        at
> org.apache.cxf.service.model.ServiceInfo.<init>(ServiceInfo.java:44)
>        at
> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
> WSDLServiceBuilder.java:232)
>        at
> org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(
> WSDLServiceBuilder.java:150)
>        at
> org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java
> :117)
>        at
> org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:229)
>        at
> org.apache.servicemix.common.AbstractDeployer.validate(
> AbstractDeployer.java:58)
>        at
> org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(
> BaseXBeanDeployer.java:55)
>        at
> org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(
> AbstractXBeanDeployer.java:96)
>        at
> org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(
> BaseServiceUnitManager.java:88)
>        at
> org.apache.servicemix.common.BaseServiceUnitManager.deploy(
> BaseServiceUnitManager.java:69)
>        at
>
> org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly
> (DeploymentService.java:508)
>        at
>
> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly
> (AutoDeploymentService.java:350)
>        at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(
> AutoDeploymentService.java:253)
>        at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory
> (AutoDeploymentService.java:647)
>        at
> org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(
> AutoDeploymentService.java:60)
>        at
> org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(
> AutoDeploymentService.java:611)
>        at java.util.TimerThread.mainLoop(Timer.java:512)
>        at java.util.TimerThread.run(Timer.java:462)
>
> Shall i need to build the whole ServiceMix release? Last time, building
> cxf
> bc component was enough...
>
> Best Regards,
> Florent.
>
>
>
> Freeman Fang-2 wrote:
> >
> > Hi Florent,
> >
> > I can't reproduce your problem, I write a test according to your wsdl
> > For me, the jbi message is
> > <?xml version="1.0" encoding="UTF-8"?><jbi:message
> > xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> > xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> > type="msg:getProtoDTOResponse"
> > version="1.0"><jbi:part><ns2:getProtoDTOResponse
> > xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >
> xsi:nil="true"/></getProtoDTOReturn></ns2:getProtoDTOResponse></jbi:part></jbi:message>
> >
> > the soap message after transform is
> > <soap:Envelope
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> "><soap:Body><ns2:getProtoDTOResponse
> > xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"
> >
> /></getProtoDTOReturn></ns2:getProtoDTOResponse></soap:Body></soap:Envelope>
> > Everything is there and everything works well.
> >
> > Would you please try with the latest trunk?
> >
> > Btw, we finish the cxf version update in servicemix, so your huge soap
> > message issue (> 64 k) should be resovled as well.
> > Best Regards
> >
> > Freeman
> >
> > Florent wrote:
> >> Hi again Freeman,
> >>
> >> I managed to do a very simple example to reproduce the "jbi-message
> <==>
> >> soap-message" bug. So i can get a complete message log.
> >> It should be easier to understand.
> >>
> >> The WSDL :
> >>
> >> <?xml version="1.0" encoding="UTF-8"?>
> >> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
> >> xmlns:impl="http://ejb.proto.mycompany.com"
> >> xmlns:intf="http://ejb.proto.mycompany.com"
> >> xmlns:tns2="http://dto.proto.mycompany.com"
> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> >> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> >>  <wsdl:types>
> >>   <schema targetNamespace="http://ejb.proto.mycompany.com"
> >> xmlns="http://www.w3.org/2001/XMLSchema"
> >> xmlns:tns2="http://dto.proto.mycompany.com"
> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> >>    <import namespace="http://dto.proto.mycompany.com"/>
> >>    <element name="getProtoDTOResponse">
> >>     <complexType>
> >>      <sequence>
> >>       <element name="getProtoDTOReturn" nillable="true"
> >> type="tns2:ProtoDTO"/>
> >>      </sequence>
> >>     </complexType>
> >>    </element>
> >>    <element name="getProtoDTO">
> >>     <complexType>
> >>      <sequence>
> >>       <element name="param" nillable="true" type="xsd:string"/>
> >>      </sequence>
> >>     </complexType>
> >>    </element>
> >>   </schema>
> >>   <schema targetNamespace="http://dto.proto.mycompany.com"
> >> xmlns="http://www.w3.org/2001/XMLSchema"
> >> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> >>    <complexType name="ProtoDTO">
> >>     <sequence>
> >>      <element name="id" nillable="true" type="xsd:string"/>
> >>     </sequence>
> >>    </complexType>
> >>   </schema>
> >>  </wsdl:types>
> >>
> >>    <wsdl:message name="getProtoDTORequest">
> >>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
> >>
> >>   </wsdl:message>
> >>
> >>    <wsdl:message name="getProtoDTOResponse">
> >>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
> >>
> >>   </wsdl:message>
> >>
> >>    <wsdl:portType name="ProtoBean">
> >>      <wsdl:operation name="getProtoDTO">
> >>        <wsdl:input message="intf:getProtoDTORequest"
> >> name="getProtoDTORequest"/>
> >>
> >>        <wsdl:output message="intf:getProtoDTOResponse"
> >> name="getProtoDTOResponse"/>
> >>
> >>     </wsdl:operation>
> >>
> >>   </wsdl:portType>
> >>
> >>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
> >>  <wsaw:UsingAddressing wsdl:required="false"
> >> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
> >>
> >>      <wsdlsoap:binding style="document"
> >> transport="http://schemas.xmlsoap.org/soap/http"/>
> >>
> >>      <wsdl:operation name="getProtoDTO">
> >>        <wsdlsoap:operation soapAction="getProtoDTO"/>
> >>
> >>        <wsdl:input name="getProtoDTORequest">
> >>          <wsdlsoap:body use="literal"/>
> >>
> >>       </wsdl:input>
> >>
> >>        <wsdl:output name="getProtoDTOResponse">
> >>          <wsdlsoap:body use="literal"/>
> >>
> >>       </wsdl:output>
> >>
> >>     </wsdl:operation>
> >>
> >>   </wsdl:binding>
> >>
> >>    <wsdl:service name="ProtoBeanService">
> >>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
> >>        <wsdlsoap:address
> >> location="http://0.0.0.0:8092/ProtoBeanService"/>
> >>
> >>     </wsdl:port>
> >>
> >>   </wsdl:service>
> >>
> >> </wsdl:definitions>
> >>
> >>
> >> ServiceMix log :
> >>
> >> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
> >> handleMessage
> >> INFO: Inbound Message
> >> --------------------------------------
> >> Encoding: UTF-8
> >> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
> >> connection=[keep-alive], SOAPAction=["getProtoDTO"],
> >> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
> >> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
> >> Message:
> >> <soap:Envelope
> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> "><soap:Body><ns2:getProtoDTO
> >> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
> >> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
> >> --------------------------------------
> >> DEBUG - CxfBcComponent                 - Created correlation id:
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >> DEBUG - DeliveryChannelImpl            - SendSync
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
> >> DEBUG - SedaFlow                       - Called Flow send
> >> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
> >> DEBUG - SedaQueue                      -
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
> >> exchange:
> >> InOut[
> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >>   status: Active
> >>   role: provider
> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
> >>   endpoint: ProtoBean
> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
> >> ]
> >> DEBUG - CxfBcComponent                 - Received exchange: status:
> >> Active,
> >> role: provider
> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
> >> handleMessage
> >> INFO: Inbound Message
> >> --------------------------------------
> >> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
> >> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
> >> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
> >> charset=utf-8]}
> >> Message:
> >>
> >> --------------------------------------
> >> DEBUG - DeliveryChannelImpl            - Send
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
> >> DEBUG - SedaFlow                       - Called Flow send
> >> DEBUG - SedaQueue                      -
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
> >> exchange:
> >> InOut[
> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >>   status: Active
> >>   role: consumer
> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
> >>   endpoint: ProtoBean
> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> >> type="msg:getProtoDTOResponse"
> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> >> ]
> >> DEBUG - DeliveryChannelImpl            - Notifying exchange
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
> >> DeliveryChannel{servicemix-cxf-bc} from
> processInboundSynchronousExchange
> >> DEBUG - DeliveryChannelImpl            - Notified:
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
> >> DeliveryChannel{servicemix-cxf-bc} from sendSync
> >> 13 dÚc. 2007 12:10:28
> >> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallbackonClose
> >> INFO: Outbound Message
> >> --------------------------------------
> >> <soap:Envelope
> >> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> "><soap:Body><p637:getProtoDTOResponse
> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> >> xsi:nil="true"
> >>
> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
> >> --------------------------------------
> >> DEBUG - DeliveryChannelImpl            - Send
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
> >> DEBUG - SedaFlow                       - Called Flow send
> >> DEBUG - SedaQueue                      -
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
> >> exchange:
> >> InOut[
> >>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >>   status: Done
> >>   role: provider
> >>   interface: {http://ejb.proto.mycompany.com}ProtoBean
> >>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
> >>   endpoint: ProtoBean
> >>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
> >>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> >> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> >> xmlns:ns2="http://ejb.proto.mycompany.com"><
> >> param/></ns2:getProtoDTO></jbi:part></jbi:message>
> >>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> >> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> >> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> >> type="msg:getProtoDTOResponse"
> >> version="1.0"><jbi:part><p637:getProtoDTOResponse
> >> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> >> ]
> >> DEBUG - CxfBcComponent                 - Received exchange: status:
> Done,
> >> role:provider
> >> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> >> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> >>
> >> CXF Client log :
> >>
> >> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
> >> doIntercept
> >> INFO: Interceptor has thrown exception, unwinding now
> >> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
> >> namespace
> >> prefix "xsi" (for attribute "nil")
> >>  at [row,col {unknown-source}]: [1,187]
> >>      at
> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:559)
> >>      at
> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:465)
> >>      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
> :40)
> >>      at
> >> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
> DocLiteralInInterceptor.java:102)
> >>      at
> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
> :402)
> >>      at
> >>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
> (HTTPConduit.java:1948)
> >>      at
> >> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
> HTTPConduit.java:1791)
> >>      at
> >> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> >>      at org.apache.cxf.transport.http.HTTPConduit.close(
> HTTPConduit.java:575)
> >>      at
> >>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
> (MessageSenderInterceptor.java:62)
> >>      at
> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> >>      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> >>      at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
> :73)
> >>      at
> >> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> >>      at $Proxy27.getProtoDTO(Unknown Source)
> >>      at
> >> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main
> (ProtoBean_ProtoBean_Client.java:56)
> >> Caused by: javax.xml.bind.UnmarshalException
> >>  - with linked exception:
> >> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
> "xsi"
> >> (for attribute "nil")
> >>  at [row,col {unknown-source}]: [1,187]]
> >>      at
> >>
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
> (UnmarshallerImpl.java:396)
> >>      at
> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
> UnmarshallerImpl.java:334)
> >>      at
> >> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
> UnmarshallerImpl.java:311)
> >>      at
> >> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:545)
> >>      ... 17 more
> >>
> >>
> >> Best regards,
> >> Florent.
> >>
> >>
> >> Freeman Fang-2 wrote:
> >>
> >>> Hi Florent,
> >>>
> >>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc
> >>> with cxf.
> >>>
> >>> But about the prefix missing issue, it seems like something wrong
> during
> >>> jbi message <===> soap message transformation.
> >>>
> >>> Would you please append the whole jbi message and soap message, or
> whole
> >>> logs you get, as well as the wsdl you are using.
> >>>
> >>> Best Regards
> >>>
> >>> Freeman
> >>>
> >>> Florent wrote:
> >>>
> >>>> Hi again,
> >>>>
> >>>> To bypass the problem, i put an empty object in every nillable array
> >>>> (instead of a null value).
> >>>>
> >>>> But, i got a new error (very similar to the first one) :
> >>>>
> >>>> INFO: Interceptor has thrown exception, unwinding now
> >>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
> >>>> namespace
> >>>> prefix "soapenc" (for attribute "arrayType")
> >>>>  at [row,col {unknown-source}]: [1,680]
> >>>>    at
> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:559)
> >>>>    at
> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:465)
> >>>>    at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
> :40)
> >>>>    at
> >>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
> DocLiteralInInterceptor.java:102)
> >>>>    at
> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>>>    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
> :402)
> >>>>    at
> >>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
> (HTTPConduit.java:1948)
> >>>>    at
> >>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
> HTTPConduit.java:1791)
> >>>>    at
> >>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
> :66)
> >>>>    at
> >>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
> >>>>    at
> >>>>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
> (MessageSenderInterceptor.java:62)
> >>>>    at
> >>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> >>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> >>>>    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java
> :73)
> >>>>    at
> >>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
> :135)
> >>>>    at
> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
> >>>> Source)
> >>>>    at
> >>>>
> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
> >>>> Caused by: javax.xml.bind.UnmarshalException
> >>>>  - with linked exception:
> >>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
> >>>> "soapenc" (for attribute "arrayType")
> >>>>  at [row,col {unknown-source}]: [1,680]]
> >>>>    at
> >>>>
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
> (UnmarshallerImpl.java:396)
> >>>>    at
> >>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(
> UnmarshallerImpl.java:334)
> >>>>    at
> >>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
> UnmarshallerImpl.java:311)
> >>>>    at
> >>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:545)
> >>>>    ... 17 more
> >>>>
> >>>> That doesn't suprise me, especially regardin the soap message i
> posted
> >>>> in
> >>>> my
> >>>> previous mail :
> >>>>
> >>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
> >>>> <subjectToApproval
> >>>>    soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
> >>>>    xmlns:p724="http://dto.fcb.mycompany.com" />
> >>>> <syndication xsi: nil="true" />
> >>>> <syndicationReference xsi:nil="true" />
> >>>> <tolerancePercentage>1.0</tolerancePercentage>
> >>>>
> >>>> There is a soapenc namespace prefix, but there is no soapenc
> namespace
> >>>> declaration...
> >>>> I remember from one of my previous post, you said cxf doesn't support
> >>>> soapenc, isn't it?
> >>>>
> >>>> Is it possible to get the get the namespace declaration, even if it's
> >>>> not
> >>>> used by cxf?
> >>>>
> >>>> Best regards,
> >>>> Florent.
> >>>>
> >>>>
> >>>>
> >>>> Florent wrote:
> >>>>
> >>>>
> >>>>> Hello,
> >>>>>
> >>>>> I still have the same configuration :
> >>>>> - Web service server (WAS 6.1)
> >>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
> >>>>> - Web service client (CXF)
> >>>>>
> >>>>> I got some nillable array in my WSDL definition. Everything is ok as
> >>>>> long
> >>>>> as those arrays are not null.
> >>>>> But when they are, "xsi:nil="true"" is added to the soap message.
> >>>>> Everything is still ok as long as i don't use the bridge (direct WS
> >>>>> call
> >>>>> from my CXF client)
> >>>>>
> >>>>> When i used the bridge, here is a part of the jbi out message :
> >>>>>
> >>>>> <commitmentCode>1130</commitmentCode>
> >>>>> <companyCode>071</companyCode>
> >>>>> <consolidatedAutorisation
> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>>>   xsi:nil="true" />
> >>>>> <consolidatedUtilisation
> >>>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>>>   xsi:nil="true" />
> >>>>>
> >>>>> But here is a part of the soap out message :
> >>>>>
> >>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
> >>>>> <subjectToApproval
> >>>>>   soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
> >>>>>   xmlns:p724="http://dto.fcb.mycompany.com" />
> >>>>> <syndication xsi: nil="true" />
> >>>>> <syndicationReference xsi:nil="true" />
> >>>>> <tolerancePercentage>1.0</tolerancePercentage>
> >>>>>
> >>>>> As you can see, there is no
> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>>>
> >>>>> And here is the error log of cxf client :
> >>>>>
> >>>>> INFO: Interceptor has thrown exception, unwinding now
> >>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
> >>>>> namespace prefix "xsi" (for attribute "nil")
> >>>>>  at [row,col {unknown-source}]: [1,613]
> >>>>>   at
> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:559)
> >>>>>   at
> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:465)
> >>>>>   at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java
> :40)
> >>>>>   at
> >>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(
> DocLiteralInInterceptor.java:102)
> >>>>>   at
> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>>>>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java
> :402)
> >>>>>   at
> >>>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
> (HTTPConduit.java:1948)
> >>>>>   at
> >>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
> HTTPConduit.java:1791)
> >>>>>   at
> >>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java
> :66)
> >>>>>   at
> >>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java
> :575)
> >>>>>   at
> >>>>>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
> (MessageSenderInterceptor.java:62)
> >>>>>   at
> >>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:207)
> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> >>>>>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> >>>>>   at
> >>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> >>>>>   at
> >>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
> :135)
> >>>>>   at
> $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
> >>>>> Source)
> >>>>>   at
> >>>>>
> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main
> (ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
> >>>>> Caused by: javax.xml.bind.UnmarshalException
> >>>>>  - with linked exception:
> >>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
> >>>>> "xsi"
> >>>>> (for attribute "nil")
> >>>>>  at [row,col {unknown-source}]: [1,613]]
> >>>>>   at
> >>>>>
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException
> (UnmarshallerImpl.java:396)
> >>>>>   at
> >>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0
> (UnmarshallerImpl.java:334)
> >>>>>   at
> >>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
> UnmarshallerImpl.java:311)
> >>>>>   at
> >>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(
> JAXBEncoderDecoder.java:545)
> >>>>>   ... 17 more
> >>>>>
> >>>>>
> >>>>> Does servicemix-cxf supports
> >>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace
> refix?
> >>>>>
> >>>>> Thanks in advance,
> >>>>> Best regards,
> >>>>> Florent.
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14416125.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

Hi Freeman,

I got the lastest svn trunk, and built a 3.3 release of cxf-bc component
(servicemix-cxf-bc-3.3-SNAPSHOT-installer.zip).
I've deployed it, replacing the old version. But now, i can't deploy my
service assembly, here is the error log :

org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
java.lang.NoSuchMethodError:
org.apache.ws.commons.schema.XmlSchemaCollection.getExtReg()Lorg/apache/ws/commons/schema/extensions/ExtensionRegistry;
        at
org.apache.cxf.common.xmlschema.SchemaCollection.<init>(SchemaCollection.java:58)
        at
org.apache.cxf.common.xmlschema.SchemaCollection.<init>(SchemaCollection.java:53)
        at
org.apache.cxf.service.model.ServiceInfo.<init>(ServiceInfo.java:44)
        at
org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:232)
        at
org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:150)
        at
org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:117)
        at
org.apache.servicemix.cxfbc.CxfBcConsumer.validate(CxfBcConsumer.java:229)
        at
org.apache.servicemix.common.AbstractDeployer.validate(AbstractDeployer.java:58)
        at
org.apache.servicemix.common.xbean.BaseXBeanDeployer.validate(BaseXBeanDeployer.java:55)
        at
org.apache.servicemix.common.xbean.AbstractXBeanDeployer.deploy(AbstractXBeanDeployer.java:96)
        at
org.apache.servicemix.common.BaseServiceUnitManager.doDeploy(BaseServiceUnitManager.java:88)
        at
org.apache.servicemix.common.BaseServiceUnitManager.deploy(BaseServiceUnitManager.java:69)
        at
org.apache.servicemix.jbi.framework.DeploymentService.deployServiceAssembly(DeploymentService.java:508)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateServiceAssembly(AutoDeploymentService.java:350)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchive(AutoDeploymentService.java:253)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.monitorDirectory(AutoDeploymentService.java:647)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService.access$800(AutoDeploymentService.java:60)
        at
org.apache.servicemix.jbi.framework.AutoDeploymentService$1.run(AutoDeploymentService.java:611)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)

Shall i need to build the whole ServiceMix release? Last time, building cxf
bc component was enough...

Best Regards,
Florent.



Freeman Fang-2 wrote:
> 
> Hi Florent,
> 
> I can't reproduce your problem, I write a test according to your wsdl
> For me, the jbi message is
> <?xml version="1.0" encoding="UTF-8"?><jbi:message 
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" 
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse" 
> type="msg:getProtoDTOResponse" 
> version="1.0"><jbi:part><ns2:getProtoDTOResponse 
> xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
> xsi:nil="true"/></getProtoDTOReturn></ns2:getProtoDTOResponse></jbi:part></jbi:message>
> 
> the soap message after transform is
> <soap:Envelope 
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTOResponse 
> xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" 
> /></getProtoDTOReturn></ns2:getProtoDTOResponse></soap:Body></soap:Envelope>
> Everything is there and everything works well.
> 
> Would you please try with the latest trunk?
> 
> Btw, we finish the cxf version update in servicemix, so your huge soap 
> message issue (> 64 k) should be resovled as well.
> Best Regards
> 
> Freeman
> 
> Florent wrote:
>> Hi again Freeman,
>>
>> I managed to do a very simple example to reproduce the "jbi-message <==>
>> soap-message" bug. So i can get a complete message log.
>> It should be easier to understand.
>>
>> The WSDL : 
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
>> xmlns:impl="http://ejb.proto.mycompany.com"
>> xmlns:intf="http://ejb.proto.mycompany.com"
>> xmlns:tns2="http://dto.proto.mycompany.com"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>  <wsdl:types>
>>   <schema targetNamespace="http://ejb.proto.mycompany.com"
>> xmlns="http://www.w3.org/2001/XMLSchema"
>> xmlns:tns2="http://dto.proto.mycompany.com"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>    <import namespace="http://dto.proto.mycompany.com"/>
>>    <element name="getProtoDTOResponse">
>>     <complexType>
>>      <sequence>
>>       <element name="getProtoDTOReturn" nillable="true"
>> type="tns2:ProtoDTO"/>
>>      </sequence>
>>     </complexType>
>>    </element>
>>    <element name="getProtoDTO">
>>     <complexType>
>>      <sequence>
>>       <element name="param" nillable="true" type="xsd:string"/>
>>      </sequence>
>>     </complexType>
>>    </element>
>>   </schema>
>>   <schema targetNamespace="http://dto.proto.mycompany.com"
>> xmlns="http://www.w3.org/2001/XMLSchema"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>    <complexType name="ProtoDTO">
>>     <sequence>
>>      <element name="id" nillable="true" type="xsd:string"/>
>>     </sequence>
>>    </complexType>
>>   </schema>
>>  </wsdl:types>
>>
>>    <wsdl:message name="getProtoDTORequest">
>>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>>
>>   </wsdl:message>
>>
>>    <wsdl:message name="getProtoDTOResponse">
>>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>>
>>   </wsdl:message>
>>
>>    <wsdl:portType name="ProtoBean">
>>      <wsdl:operation name="getProtoDTO">
>>        <wsdl:input message="intf:getProtoDTORequest"
>> name="getProtoDTORequest"/>
>>
>>        <wsdl:output message="intf:getProtoDTOResponse"
>> name="getProtoDTOResponse"/>
>>
>>     </wsdl:operation>
>>
>>   </wsdl:portType>
>>
>>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>>  <wsaw:UsingAddressing wsdl:required="false"
>> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>>
>>      <wsdlsoap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"/>
>>
>>      <wsdl:operation name="getProtoDTO">
>>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>>
>>        <wsdl:input name="getProtoDTORequest">
>>          <wsdlsoap:body use="literal"/>
>>
>>       </wsdl:input>
>>
>>        <wsdl:output name="getProtoDTOResponse">
>>          <wsdlsoap:body use="literal"/>
>>
>>       </wsdl:output>
>>
>>     </wsdl:operation>
>>
>>   </wsdl:binding>
>>
>>    <wsdl:service name="ProtoBeanService">
>>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>>        <wsdlsoap:address
>> location="http://0.0.0.0:8092/ProtoBeanService"/>
>>
>>     </wsdl:port>
>>
>>   </wsdl:service>
>>
>> </wsdl:definitions>
>>
>>
>> ServiceMix log :
>>
>> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
>> handleMessage
>> INFO: Inbound Message
>> --------------------------------------
>> Encoding: UTF-8
>> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
>> connection=[keep-alive], SOAPAction=["getProtoDTO"],
>> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
>> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
>> Message:
>> <soap:Envelope
>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
>> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
>> --------------------------------------
>> DEBUG - CxfBcComponent                 - Created correlation id:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> DEBUG - DeliveryChannelImpl            - SendSync
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - DeliveryChannelImpl            - Waiting for exchange
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
>> exchange: 
>> InOut[
>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>   status: Active
>>   role: provider
>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>   endpoint: ProtoBean
>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> ]
>> DEBUG - CxfBcComponent                 - Received exchange: status:
>> Active,
>> role: provider
>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
>> handleMessage
>> INFO: Inbound Message
>> --------------------------------------
>> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
>> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
>> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
>> charset=utf-8]}
>> Message:
>>
>> --------------------------------------
>> DEBUG - DeliveryChannelImpl            - Send
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
>> exchange: 
>> InOut[
>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>   status: Active
>>   role: consumer
>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>   endpoint: ProtoBean
>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> type="msg:getProtoDTOResponse"
>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> ]
>> DEBUG - DeliveryChannelImpl            - Notifying exchange
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
>> DEBUG - DeliveryChannelImpl            - Notified:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> 13 dÚc. 2007 12:10:28
>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
>> INFO: Outbound Message
>> --------------------------------------
>> <soap:Envelope
>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><p637:getProtoDTOResponse
>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> xsi:nil="true"
>> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
>> --------------------------------------
>> DEBUG - DeliveryChannelImpl            - Send
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
>> exchange: 
>> InOut[
>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>   status: Done
>>   role: provider
>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>   endpoint: ProtoBean
>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> type="msg:getProtoDTOResponse"
>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> ]
>> DEBUG - CxfBcComponent                 - Received exchange: status: Done,
>> role:provider
>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>
>> CXF Client log :
>>
>> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
>> doIntercept
>> INFO: Interceptor has thrown exception, unwinding now
>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> namespace
>> prefix "xsi" (for attribute "nil")
>>  at [row,col {unknown-source}]: [1,187] 
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>> 	at
>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>> 	at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> 	at
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> 	at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> 	at $Proxy27.getProtoDTO(Unknown Source)
>> 	at
>> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main(ProtoBean_ProtoBean_Client.java:56)
>> Caused by: javax.xml.bind.UnmarshalException
>>  - with linked exception:
>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi"
>> (for attribute "nil")
>>  at [row,col {unknown-source}]: [1,187]]
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>> 	... 17 more
>>
>>
>> Best regards,
>> Florent.
>>
>>
>> Freeman Fang-2 wrote:
>>   
>>> Hi Florent,
>>>
>>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc 
>>> with cxf.
>>>
>>> But about the prefix missing issue, it seems like something wrong during 
>>> jbi message <===> soap message transformation.
>>>
>>> Would you please append the whole jbi message and soap message, or whole 
>>> logs you get, as well as the wsdl you are using.
>>>
>>> Best Regards
>>>
>>> Freeman
>>>
>>> Florent wrote:
>>>     
>>>> Hi again,
>>>>
>>>> To bypass the problem, i put an empty object in every nillable array
>>>> (instead of a null value).
>>>>
>>>> But, i got a new error (very similar to the first one) :
>>>>
>>>> INFO: Interceptor has thrown exception, unwinding now
>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>> namespace
>>>> prefix "soapenc" (for attribute "arrayType")
>>>>  at [row,col {unknown-source}]: [1,680] 
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>>> 	at
>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>>> 	at
>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>> 	at
>>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>> 	at
>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>> Source)
>>>> 	at
>>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>  - with linked exception:
>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>> "soapenc" (for attribute "arrayType")
>>>>  at [row,col {unknown-source}]: [1,680]]
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>>> 	... 17 more
>>>>
>>>> That doesn't suprise me, especially regardin the soap message i posted
>>>> in
>>>> my
>>>> previous mail :
>>>>
>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>> <subjectToApproval
>>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>>> <syndication xsi: nil="true" />
>>>> <syndicationReference xsi:nil="true" />
>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>
>>>> There is a soapenc namespace prefix, but there is no soapenc namespace
>>>> declaration...
>>>> I remember from one of my previous post, you said cxf doesn't support
>>>> soapenc, isn't it?
>>>>
>>>> Is it possible to get the get the namespace declaration, even if it's
>>>> not
>>>> used by cxf?
>>>>
>>>> Best regards,
>>>> Florent.
>>>>
>>>>
>>>>
>>>> Florent wrote:
>>>>   
>>>>       
>>>>> Hello,
>>>>>
>>>>> I still have the same configuration :
>>>>> - Web service server (WAS 6.1)
>>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>>>>> - Web service client (CXF)
>>>>>
>>>>> I got some nillable array in my WSDL definition. Everything is ok as
>>>>> long
>>>>> as those arrays are not null.
>>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>>>>> Everything is still ok as long as i don't use the bridge (direct WS
>>>>> call
>>>>> from my CXF client)
>>>>>
>>>>> When i used the bridge, here is a part of the jbi out message :
>>>>>
>>>>> <commitmentCode>1130</commitmentCode>
>>>>> <companyCode>071</companyCode>
>>>>> <consolidatedAutorisation
>>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> 	xsi:nil="true" />
>>>>> <consolidatedUtilisation
>>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> 	xsi:nil="true" />
>>>>>
>>>>> But here is a part of the soap out message :
>>>>>
>>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>>> <subjectToApproval
>>>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>>>> <syndication xsi: nil="true" />
>>>>> <syndicationReference xsi:nil="true" />
>>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>>
>>>>> As you can see, there is no
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>
>>>>> And here is the error log of cxf client :
>>>>>
>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>>> namespace prefix "xsi" (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,613] 
>>>>> 	at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>>>> 	at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>>>> 	at
>>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>>>> 	at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>>>> 	at
>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>>>> 	at
>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>>>> 	at
>>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>>> 	at
>>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>>> 	at
>>>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>>> 	at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>> 	at
>>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>>> 	at
>>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>>> Source)
>>>>> 	at
>>>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>>  - with linked exception:
>>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>>> "xsi"
>>>>> (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,613]]
>>>>> 	at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>>>> 	at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>>>> 	at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>>>> 	at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>>>> 	... 17 more
>>>>>
>>>>>
>>>>> Does servicemix-cxf supports
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?
>>>>>
>>>>> Thanks in advance,
>>>>> Best regards,
>>>>> Florent.
>>>>>
>>>>>     
>>>>>         
>>>>   
>>>>       
>>>     
>>
>>   
> 
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14416125.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

Hi Freeman,

Thanks, i'll try it tonight, when i'll be back home.

Best Regards,
Florent.



Freeman Fang-2 wrote:
> 
> Hi Florent,
> 
> I can't reproduce your problem, I write a test according to your wsdl
> For me, the jbi message is
> <?xml version="1.0" encoding="UTF-8"?><jbi:message 
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" 
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse" 
> type="msg:getProtoDTOResponse" 
> version="1.0"><jbi:part><ns2:getProtoDTOResponse 
> xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
> xsi:nil="true"/></getProtoDTOReturn></ns2:getProtoDTOResponse></jbi:part></jbi:message>
> 
> the soap message after transform is
> <soap:Envelope 
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTOResponse 
> xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" 
> /></getProtoDTOReturn></ns2:getProtoDTOResponse></soap:Body></soap:Envelope>
> Everything is there and everything works well.
> 
> Would you please try with the latest trunk?
> 
> Btw, we finish the cxf version update in servicemix, so your huge soap 
> message issue (> 64 k) should be resovled as well.
> Best Regards
> 
> Freeman
> 
> Florent wrote:
>> Hi again Freeman,
>>
>> I managed to do a very simple example to reproduce the "jbi-message <==>
>> soap-message" bug. So i can get a complete message log.
>> It should be easier to understand.
>>
>> The WSDL : 
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
>> xmlns:impl="http://ejb.proto.mycompany.com"
>> xmlns:intf="http://ejb.proto.mycompany.com"
>> xmlns:tns2="http://dto.proto.mycompany.com"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>  <wsdl:types>
>>   <schema targetNamespace="http://ejb.proto.mycompany.com"
>> xmlns="http://www.w3.org/2001/XMLSchema"
>> xmlns:tns2="http://dto.proto.mycompany.com"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>    <import namespace="http://dto.proto.mycompany.com"/>
>>    <element name="getProtoDTOResponse">
>>     <complexType>
>>      <sequence>
>>       <element name="getProtoDTOReturn" nillable="true"
>> type="tns2:ProtoDTO"/>
>>      </sequence>
>>     </complexType>
>>    </element>
>>    <element name="getProtoDTO">
>>     <complexType>
>>      <sequence>
>>       <element name="param" nillable="true" type="xsd:string"/>
>>      </sequence>
>>     </complexType>
>>    </element>
>>   </schema>
>>   <schema targetNamespace="http://dto.proto.mycompany.com"
>> xmlns="http://www.w3.org/2001/XMLSchema"
>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>>    <complexType name="ProtoDTO">
>>     <sequence>
>>      <element name="id" nillable="true" type="xsd:string"/>
>>     </sequence>
>>    </complexType>
>>   </schema>
>>  </wsdl:types>
>>
>>    <wsdl:message name="getProtoDTORequest">
>>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>>
>>   </wsdl:message>
>>
>>    <wsdl:message name="getProtoDTOResponse">
>>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>>
>>   </wsdl:message>
>>
>>    <wsdl:portType name="ProtoBean">
>>      <wsdl:operation name="getProtoDTO">
>>        <wsdl:input message="intf:getProtoDTORequest"
>> name="getProtoDTORequest"/>
>>
>>        <wsdl:output message="intf:getProtoDTOResponse"
>> name="getProtoDTOResponse"/>
>>
>>     </wsdl:operation>
>>
>>   </wsdl:portType>
>>
>>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>>  <wsaw:UsingAddressing wsdl:required="false"
>> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>>
>>      <wsdlsoap:binding style="document"
>> transport="http://schemas.xmlsoap.org/soap/http"/>
>>
>>      <wsdl:operation name="getProtoDTO">
>>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>>
>>        <wsdl:input name="getProtoDTORequest">
>>          <wsdlsoap:body use="literal"/>
>>
>>       </wsdl:input>
>>
>>        <wsdl:output name="getProtoDTOResponse">
>>          <wsdlsoap:body use="literal"/>
>>
>>       </wsdl:output>
>>
>>     </wsdl:operation>
>>
>>   </wsdl:binding>
>>
>>    <wsdl:service name="ProtoBeanService">
>>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>>        <wsdlsoap:address
>> location="http://0.0.0.0:8092/ProtoBeanService"/>
>>
>>     </wsdl:port>
>>
>>   </wsdl:service>
>>
>> </wsdl:definitions>
>>
>>
>> ServiceMix log :
>>
>> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
>> handleMessage
>> INFO: Inbound Message
>> --------------------------------------
>> Encoding: UTF-8
>> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
>> connection=[keep-alive], SOAPAction=["getProtoDTO"],
>> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
>> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
>> Message:
>> <soap:Envelope
>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
>> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
>> --------------------------------------
>> DEBUG - CxfBcComponent                 - Created correlation id:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> DEBUG - DeliveryChannelImpl            - SendSync
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - DeliveryChannelImpl            - Waiting for exchange
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
>> exchange: 
>> InOut[
>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>   status: Active
>>   role: provider
>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>   endpoint: ProtoBean
>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>> ]
>> DEBUG - CxfBcComponent                 - Received exchange: status:
>> Active,
>> role: provider
>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
>> handleMessage
>> INFO: Inbound Message
>> --------------------------------------
>> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
>> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
>> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
>> charset=utf-8]}
>> Message:
>>
>> --------------------------------------
>> DEBUG - DeliveryChannelImpl            - Send
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
>> exchange: 
>> InOut[
>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>   status: Active
>>   role: consumer
>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>   endpoint: ProtoBean
>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> type="msg:getProtoDTOResponse"
>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> ]
>> DEBUG - DeliveryChannelImpl            - Notifying exchange
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
>> DEBUG - DeliveryChannelImpl            - Notified:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
>> DeliveryChannel{servicemix-cxf-bc} from sendSync
>> 13 dÚc. 2007 12:10:28
>> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
>> INFO: Outbound Message
>> --------------------------------------
>> <soap:Envelope
>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><p637:getProtoDTOResponse
>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> xsi:nil="true"
>> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
>> --------------------------------------
>> DEBUG - DeliveryChannelImpl            - Send
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
>> DEBUG - SedaFlow                       - Called Flow send
>> DEBUG - SedaQueue                      -
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
>> exchange: 
>> InOut[
>>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>   status: Done
>>   role: provider
>>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>>   endpoint: ProtoBean
>>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
>> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
>> xmlns:ns2="http://ejb.proto.mycompany.com"><
>> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
>> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
>> type="msg:getProtoDTOResponse"
>> version="1.0"><jbi:part><p637:getProtoDTOResponse
>> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
>> ]
>> DEBUG - CxfBcComponent                 - Received exchange: status: Done,
>> role:provider
>> DEBUG - CxfBcComponent                 - Retrieved correlation id:
>> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>>
>> CXF Client log :
>>
>> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain
>> doIntercept
>> INFO: Interceptor has thrown exception, unwinding now
>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> namespace
>> prefix "xsi" (for attribute "nil")
>>  at [row,col {unknown-source}]: [1,187] 
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>> 	at
>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>> 	at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> 	at
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> 	at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> 	at $Proxy27.getProtoDTO(Unknown Source)
>> 	at
>> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main(ProtoBean_ProtoBean_Client.java:56)
>> Caused by: javax.xml.bind.UnmarshalException
>>  - with linked exception:
>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi"
>> (for attribute "nil")
>>  at [row,col {unknown-source}]: [1,187]]
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>> 	... 17 more
>>
>>
>> Best regards,
>> Florent.
>>
>>
>> Freeman Fang-2 wrote:
>>   
>>> Hi Florent,
>>>
>>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc 
>>> with cxf.
>>>
>>> But about the prefix missing issue, it seems like something wrong during 
>>> jbi message <===> soap message transformation.
>>>
>>> Would you please append the whole jbi message and soap message, or whole 
>>> logs you get, as well as the wsdl you are using.
>>>
>>> Best Regards
>>>
>>> Freeman
>>>
>>> Florent wrote:
>>>     
>>>> Hi again,
>>>>
>>>> To bypass the problem, i put an empty object in every nillable array
>>>> (instead of a null value).
>>>>
>>>> But, i got a new error (very similar to the first one) :
>>>>
>>>> INFO: Interceptor has thrown exception, unwinding now
>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>> namespace
>>>> prefix "soapenc" (for attribute "arrayType")
>>>>  at [row,col {unknown-source}]: [1,680] 
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>>> 	at
>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>>> 	at
>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>> 	at
>>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>> 	at
>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>> Source)
>>>> 	at
>>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>  - with linked exception:
>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>> "soapenc" (for attribute "arrayType")
>>>>  at [row,col {unknown-source}]: [1,680]]
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>>> 	... 17 more
>>>>
>>>> That doesn't suprise me, especially regardin the soap message i posted
>>>> in
>>>> my
>>>> previous mail :
>>>>
>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>> <subjectToApproval
>>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>>> <syndication xsi: nil="true" />
>>>> <syndicationReference xsi:nil="true" />
>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>
>>>> There is a soapenc namespace prefix, but there is no soapenc namespace
>>>> declaration...
>>>> I remember from one of my previous post, you said cxf doesn't support
>>>> soapenc, isn't it?
>>>>
>>>> Is it possible to get the get the namespace declaration, even if it's
>>>> not
>>>> used by cxf?
>>>>
>>>> Best regards,
>>>> Florent.
>>>>
>>>>
>>>>
>>>> Florent wrote:
>>>>   
>>>>       
>>>>> Hello,
>>>>>
>>>>> I still have the same configuration :
>>>>> - Web service server (WAS 6.1)
>>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>>>>> - Web service client (CXF)
>>>>>
>>>>> I got some nillable array in my WSDL definition. Everything is ok as
>>>>> long
>>>>> as those arrays are not null.
>>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>>>>> Everything is still ok as long as i don't use the bridge (direct WS
>>>>> call
>>>>> from my CXF client)
>>>>>
>>>>> When i used the bridge, here is a part of the jbi out message :
>>>>>
>>>>> <commitmentCode>1130</commitmentCode>
>>>>> <companyCode>071</companyCode>
>>>>> <consolidatedAutorisation
>>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> 	xsi:nil="true" />
>>>>> <consolidatedUtilisation
>>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>> 	xsi:nil="true" />
>>>>>
>>>>> But here is a part of the soap out message :
>>>>>
>>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>>> <subjectToApproval
>>>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>>>> <syndication xsi: nil="true" />
>>>>> <syndicationReference xsi:nil="true" />
>>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>>
>>>>> As you can see, there is no
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>
>>>>> And here is the error log of cxf client :
>>>>>
>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>>> namespace prefix "xsi" (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,613] 
>>>>> 	at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>>>> 	at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>>>> 	at
>>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>>>> 	at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>>>> 	at
>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>>>> 	at
>>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>>>> 	at
>>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>>> 	at
>>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>>> 	at
>>>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>>> 	at
>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>> 	at
>>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>>> 	at
>>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>>> Source)
>>>>> 	at
>>>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>>  - with linked exception:
>>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>>> "xsi"
>>>>> (for attribute "nil")
>>>>>  at [row,col {unknown-source}]: [1,613]]
>>>>> 	at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>>>> 	at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>>>> 	at
>>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>>>> 	at
>>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>>>> 	... 17 more
>>>>>
>>>>>
>>>>> Does servicemix-cxf supports
>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?
>>>>>
>>>>> Thanks in advance,
>>>>> Best regards,
>>>>> Florent.
>>>>>
>>>>>     
>>>>>         
>>>>   
>>>>       
>>>     
>>
>>   
> 
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14393061.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Freeman Fang <fr...@iona.com>.
Hi Florent,

I can't reproduce your problem, I write a test according to your wsdl
For me, the jbi message is
<?xml version="1.0" encoding="UTF-8"?><jbi:message 
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper" 
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse" 
type="msg:getProtoDTOResponse" 
version="1.0"><jbi:part><ns2:getProtoDTOResponse 
xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:nil="true"/></getProtoDTOReturn></ns2:getProtoDTOResponse></jbi:part></jbi:message>

the soap message after transform is
<soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTOResponse 
xmlns:ns2="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" 
/></getProtoDTOReturn></ns2:getProtoDTOResponse></soap:Body></soap:Envelope>
Everything is there and everything works well.

Would you please try with the latest trunk?

Btw, we finish the cxf version update in servicemix, so your huge soap 
message issue (> 64 k) should be resovled as well.
Best Regards

Freeman

Florent wrote:
> Hi again Freeman,
>
> I managed to do a very simple example to reproduce the "jbi-message <==>
> soap-message" bug. So i can get a complete message log.
> It should be easier to understand.
>
> The WSDL : 
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
> xmlns:impl="http://ejb.proto.mycompany.com"
> xmlns:intf="http://ejb.proto.mycompany.com"
> xmlns:tns2="http://dto.proto.mycompany.com"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>  <wsdl:types>
>   <schema targetNamespace="http://ejb.proto.mycompany.com"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:tns2="http://dto.proto.mycompany.com"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>    <import namespace="http://dto.proto.mycompany.com"/>
>    <element name="getProtoDTOResponse">
>     <complexType>
>      <sequence>
>       <element name="getProtoDTOReturn" nillable="true"
> type="tns2:ProtoDTO"/>
>      </sequence>
>     </complexType>
>    </element>
>    <element name="getProtoDTO">
>     <complexType>
>      <sequence>
>       <element name="param" nillable="true" type="xsd:string"/>
>      </sequence>
>     </complexType>
>    </element>
>   </schema>
>   <schema targetNamespace="http://dto.proto.mycompany.com"
> xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>    <complexType name="ProtoDTO">
>     <sequence>
>      <element name="id" nillable="true" type="xsd:string"/>
>     </sequence>
>    </complexType>
>   </schema>
>  </wsdl:types>
>
>    <wsdl:message name="getProtoDTORequest">
>      <wsdl:part element="intf:getProtoDTO" name="parameters"/>
>
>   </wsdl:message>
>
>    <wsdl:message name="getProtoDTOResponse">
>      <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>
>
>   </wsdl:message>
>
>    <wsdl:portType name="ProtoBean">
>      <wsdl:operation name="getProtoDTO">
>        <wsdl:input message="intf:getProtoDTORequest"
> name="getProtoDTORequest"/>
>
>        <wsdl:output message="intf:getProtoDTOResponse"
> name="getProtoDTOResponse"/>
>
>     </wsdl:operation>
>
>   </wsdl:portType>
>
>    <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
>  <wsaw:UsingAddressing wsdl:required="false"
> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>
>
>      <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>
>      <wsdl:operation name="getProtoDTO">
>        <wsdlsoap:operation soapAction="getProtoDTO"/>
>
>        <wsdl:input name="getProtoDTORequest">
>          <wsdlsoap:body use="literal"/>
>
>       </wsdl:input>
>
>        <wsdl:output name="getProtoDTOResponse">
>          <wsdlsoap:body use="literal"/>
>
>       </wsdl:output>
>
>     </wsdl:operation>
>
>   </wsdl:binding>
>
>    <wsdl:service name="ProtoBeanService">
>      <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
>        <wsdlsoap:address location="http://0.0.0.0:8092/ProtoBeanService"/>
>
>     </wsdl:port>
>
>   </wsdl:service>
>
> </wsdl:definitions>
>
>
> ServiceMix log :
>
> 13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
> handleMessage
> INFO: Inbound Message
> --------------------------------------
> Encoding: UTF-8
> Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
> connection=[keep-alive], SOAPAction=["getProtoDTO"],
> transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
> charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
> Message:
> <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com">< param></
> param></ns2:getProtoDTO></soap:Body></soap:Envelope>
> --------------------------------------
> DEBUG - CxfBcComponent                 - Created correlation id:
> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> DEBUG - DeliveryChannelImpl            - SendSync
> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
> DeliveryChannel{servicemix-cxf-bc} from sendSync
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
> exchange: 
> InOut[
>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>   status: Active
>   role: provider
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com"><
> param/></ns2:getProtoDTO></jbi:part></jbi:message>
> ]
> DEBUG - CxfBcComponent                 - Received exchange: status: Active,
> role: provider
> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> ID:172.xx.xxx.xxx-116d3309a4d-4:0
> 13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
> handleMessage
> INFO: Inbound Message
> --------------------------------------
> Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
> Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
> Server=[WebSphere Application Server/6.1], content-type=[text/xml;
> charset=utf-8]}
> Message:
>
> --------------------------------------
> DEBUG - DeliveryChannelImpl            - Send
> ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
> exchange: 
> InOut[
>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>   status: Active
>   role: consumer
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com"><
> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> type="msg:getProtoDTOResponse"
> version="1.0"><jbi:part><p637:getProtoDTOResponse
> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> ]
> DEBUG - DeliveryChannelImpl            - Notifying exchange
> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
> DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
> DEBUG - DeliveryChannelImpl            - Notified:
> ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
> DeliveryChannel{servicemix-cxf-bc} from sendSync
> 13 dÚc. 2007 12:10:28
> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
> INFO: Outbound Message
> --------------------------------------
> <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><p637:getProtoDTOResponse
> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> xsi:nil="true"
> /></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
> --------------------------------------
> DEBUG - DeliveryChannelImpl            - Send
> ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - SedaQueue                      -
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
> exchange: 
> InOut[
>   id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
>   status: Done
>   role: provider
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
> type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
> xmlns:ns2="http://ejb.proto.mycompany.com"><
> param/></ns2:getProtoDTO></jbi:part></jbi:message>
>   out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
> xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
> xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
> type="msg:getProtoDTOResponse"
> version="1.0"><jbi:part><p637:getProtoDTOResponse
> xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
> ]
> DEBUG - CxfBcComponent                 - Received exchange: status: Done,
> role:provider
> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> ID:172.xx.xxx.xxx-116d3309a4d-4:0
>
> CXF Client log :
>
> 13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace
> prefix "xsi" (for attribute "nil")
>  at [row,col {unknown-source}]: [1,187] 
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
> 	at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
> 	at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
> 	at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
> 	at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
> 	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
> 	at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 	at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> 	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> 	at $Proxy27.getProtoDTO(Unknown Source)
> 	at
> com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main(ProtoBean_ProtoBean_Client.java:56)
> Caused by: javax.xml.bind.UnmarshalException
>  - with linked exception:
> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi"
> (for attribute "nil")
>  at [row,col {unknown-source}]: [1,187]]
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
> 	... 17 more
>
>
> Best regards,
> Florent.
>
>
> Freeman Fang-2 wrote:
>   
>> Hi Florent,
>>
>> Yes, cxf doesn't support soap encoded, you should avoid using soapenc 
>> with cxf.
>>
>> But about the prefix missing issue, it seems like something wrong during 
>> jbi message <===> soap message transformation.
>>
>> Would you please append the whole jbi message and soap message, or whole 
>> logs you get, as well as the wsdl you are using.
>>
>> Best Regards
>>
>> Freeman
>>
>> Florent wrote:
>>     
>>> Hi again,
>>>
>>> To bypass the problem, i put an empty object in every nillable array
>>> (instead of a null value).
>>>
>>> But, i got a new error (very similar to the first one) :
>>>
>>> INFO: Interceptor has thrown exception, unwinding now
>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>> namespace
>>> prefix "soapenc" (for attribute "arrayType")
>>>  at [row,col {unknown-source}]: [1,680] 
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>> 	at
>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>> 	at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>> 	at
>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>> 	at
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>> 	at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>> 	at
>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>> Source)
>>> 	at
>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>> Caused by: javax.xml.bind.UnmarshalException
>>>  - with linked exception:
>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>> "soapenc" (for attribute "arrayType")
>>>  at [row,col {unknown-source}]: [1,680]]
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>> 	... 17 more
>>>
>>> That doesn't suprise me, especially regardin the soap message i posted in
>>> my
>>> previous mail :
>>>
>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>> <subjectToApproval
>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>> <syndication xsi: nil="true" />
>>> <syndicationReference xsi:nil="true" />
>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>
>>> There is a soapenc namespace prefix, but there is no soapenc namespace
>>> declaration...
>>> I remember from one of my previous post, you said cxf doesn't support
>>> soapenc, isn't it?
>>>
>>> Is it possible to get the get the namespace declaration, even if it's not
>>> used by cxf?
>>>
>>> Best regards,
>>> Florent.
>>>
>>>
>>>
>>> Florent wrote:
>>>   
>>>       
>>>> Hello,
>>>>
>>>> I still have the same configuration :
>>>> - Web service server (WAS 6.1)
>>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>>>> - Web service client (CXF)
>>>>
>>>> I got some nillable array in my WSDL definition. Everything is ok as
>>>> long
>>>> as those arrays are not null.
>>>> But when they are, "xsi:nil="true"" is added to the soap message.
>>>> Everything is still ok as long as i don't use the bridge (direct WS call
>>>> from my CXF client)
>>>>
>>>> When i used the bridge, here is a part of the jbi out message :
>>>>
>>>> <commitmentCode>1130</commitmentCode>
>>>> <companyCode>071</companyCode>
>>>> <consolidatedAutorisation
>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> 	xsi:nil="true" />
>>>> <consolidatedUtilisation
>>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>> 	xsi:nil="true" />
>>>>
>>>> But here is a part of the soap out message :
>>>>
>>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>>> <subjectToApproval
>>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>>> <syndication xsi: nil="true" />
>>>> <syndicationReference xsi:nil="true" />
>>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>>
>>>> As you can see, there is no
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>
>>>> And here is the error log of cxf client :
>>>>
>>>> INFO: Interceptor has thrown exception, unwinding now
>>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>>> namespace prefix "xsi" (for attribute "nil")
>>>>  at [row,col {unknown-source}]: [1,613] 
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>>> 	at
>>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>>> 	at
>>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>>> 	at
>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>>> 	at
>>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>> 	at
>>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>> 	at
>>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>>> Source)
>>>> 	at
>>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>>> Caused by: javax.xml.bind.UnmarshalException
>>>>  - with linked exception:
>>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>>> "xsi"
>>>> (for attribute "nil")
>>>>  at [row,col {unknown-source}]: [1,613]]
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>>> 	at
>>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>>> 	at
>>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>>> 	... 17 more
>>>>
>>>>
>>>> Does servicemix-cxf supports
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?
>>>>
>>>> Thanks in advance,
>>>> Best regards,
>>>> Florent.
>>>>
>>>>     
>>>>         
>>>   
>>>       
>>     
>
>   

Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

Hi again Freeman,

I managed to do a very simple example to reproduce the "jbi-message <==>
soap-message" bug. So i can get a complete message log.
It should be easier to understand.

The WSDL : 

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com"
xmlns:impl="http://ejb.proto.mycompany.com"
xmlns:intf="http://ejb.proto.mycompany.com"
xmlns:tns2="http://dto.proto.mycompany.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <wsdl:types>
  <schema targetNamespace="http://ejb.proto.mycompany.com"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns2="http://dto.proto.mycompany.com"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://dto.proto.mycompany.com"/>
   <element name="getProtoDTOResponse">
    <complexType>
     <sequence>
      <element name="getProtoDTOReturn" nillable="true"
type="tns2:ProtoDTO"/>
     </sequence>
    </complexType>
   </element>
   <element name="getProtoDTO">
    <complexType>
     <sequence>
      <element name="param" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
  </schema>
  <schema targetNamespace="http://dto.proto.mycompany.com"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <complexType name="ProtoDTO">
    <sequence>
     <element name="id" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
  </schema>
 </wsdl:types>

   <wsdl:message name="getProtoDTORequest">
     <wsdl:part element="intf:getProtoDTO" name="parameters"/>

  </wsdl:message>

   <wsdl:message name="getProtoDTOResponse">
     <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/>

  </wsdl:message>

   <wsdl:portType name="ProtoBean">
     <wsdl:operation name="getProtoDTO">
       <wsdl:input message="intf:getProtoDTORequest"
name="getProtoDTORequest"/>

       <wsdl:output message="intf:getProtoDTOResponse"
name="getProtoDTOResponse"/>

    </wsdl:operation>

  </wsdl:portType>

   <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
 <wsaw:UsingAddressing wsdl:required="false"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"/>

     <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>

     <wsdl:operation name="getProtoDTO">
       <wsdlsoap:operation soapAction="getProtoDTO"/>

       <wsdl:input name="getProtoDTORequest">
         <wsdlsoap:body use="literal"/>

      </wsdl:input>

       <wsdl:output name="getProtoDTOResponse">
         <wsdlsoap:body use="literal"/>

      </wsdl:output>

    </wsdl:operation>

  </wsdl:binding>

   <wsdl:service name="ProtoBeanService">
     <wsdl:port binding="intf:ProtoBeanSoapBinding" name="ProtoBean">
       <wsdlsoap:address location="http://0.0.0.0:8092/ProtoBeanService"/>

    </wsdl:port>

  </wsdl:service>

</wsdl:definitions>


ServiceMix log :

13 dÚc. 2007 12:10:27 org.apache.cxf.interceptor.LoggingInInterceptor
handleMessage
INFO: Inbound Message
--------------------------------------
Encoding: UTF-8
Headers: {Host=[0.0.0.0:8092], User-Agent=[Java/1.5.0_09],
connection=[keep-alive], SOAPAction=["getProtoDTO"],
transfer-encoding=[chunked], Pragma=[no-cache],content-type=[text/xml;
charset=UTF-8], Cache-Control=[no-cache], Accept=[*]}
Message:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:getProtoDTO
xmlns:ns2="http://ejb.proto.mycompany.com">< param></
param></ns2:getProtoDTO></soap:Body></soap:Envelope>
--------------------------------------
DEBUG - CxfBcComponent                 - Created correlation id:
ID:172.xx.xxx.xxx-116d3309a4d-4:0
DEBUG - DeliveryChannelImpl            - SendSync
ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - DeliveryChannelImpl            - Waiting for exchange
ID:172.xx.xxx.xxx-116d3309a4d-4:0 (4904c8) to be answered in
DeliveryChannel{servicemix-cxf-bc} from sendSync
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1d9024f dequeued
exchange: 
InOut[
  id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
  status: Active
  role: provider
  interface: {http://ejb.proto.mycompany.com}ProtoBean
  service: {http://ejb.proto.mycompany.com}ProtoBeanService
  endpoint: ProtoBean
  operation: {http://ejb.proto.mycompany.com}getProtoDTO
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
xmlns:ns2="http://ejb.proto.mycompany.com"><
param/></ns2:getProtoDTO></jbi:part></jbi:message>
]
DEBUG - CxfBcComponent                 - Received exchange: status: Active,
role: provider
DEBUG - CxfBcComponent                 - Retrieved correlation id:
ID:172.xx.xxx.xxx-116d3309a4d-4:0
13 dÚc. 2007 12:10:28 org.apache.cxf.interceptor.LoggingInInterceptor
handleMessage
INFO: Inbound Message
--------------------------------------
Headers: {null=[HTTP/1.1 200 OK], Content-Length=[450],
Content-Language=[fr-FR], Date=[Thu, 13 Dec 2007 11:10:28 GMT],
Server=[WebSphere Application Server/6.1], content-type=[text/xml;
charset=utf-8]}
Message:

--------------------------------------
DEBUG - DeliveryChannelImpl            - Send
ID:172.xx.xxx.xxx-116d3309a4d-4:0in DeliveryChannel{servicemix-cxf-bc}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@502d56 dequeued
exchange: 
InOut[
  id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
  status: Active
  role: consumer
  interface: {http://ejb.proto.mycompany.com}ProtoBean
  service: {http://ejb.proto.mycompany.com}ProtoBeanService
  endpoint: ProtoBean
  operation: {http://ejb.proto.mycompany.com}getProtoDTO
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
xmlns:ns2="http://ejb.proto.mycompany.com"><
param/></ns2:getProtoDTO></jbi:part></jbi:message>
  out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
type="msg:getProtoDTOResponse"
version="1.0"><jbi:part><p637:getProtoDTOResponse
xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
]
DEBUG - DeliveryChannelImpl            - Notifying exchange
ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
DEBUG - DeliveryChannelImpl            - Notified:
ID:172.xx.xxx.xxx-116d3309a4d-4:0(4904c8) in
DeliveryChannel{servicemix-cxf-bc} from sendSync
13 dÚc. 2007 12:10:28
org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
INFO: Outbound Message
--------------------------------------
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><p637:getProtoDTOResponse
xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
xsi:nil="true"
/></getProtoDTOReturn></p637:getProtoDTOResponse></soap:Body></soap:Envelope>
--------------------------------------
DEBUG - DeliveryChannelImpl            - Send
ID:172.xx.xxx.xxx-116d3309a4d-4:0 in DeliveryChannel{servicemix-cxf-bc}
DEBUG - SedaFlow                       - Called Flow send
DEBUG - SedaQueue                      -
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1@1e3bb9e dequeued
exchange: 
InOut[
  id: ID:172.xx.xxx.xxx-116d3309a4d-4:0
  status: Done
  role: provider
  interface: {http://ejb.proto.mycompany.com}ProtoBean
  service: {http://ejb.proto.mycompany.com}ProtoBeanService
  endpoint: ProtoBean
  operation: {http://ejb.proto.mycompany.com}getProtoDTO
  in: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTORequest"
type="msg:getProtoDTORequest" version="1.0"><jbi:part><ns2:getProtoDTO
xmlns:ns2="http://ejb.proto.mycompany.com"><
param/></ns2:getProtoDTO></jbi:part></jbi:message>
  out: <?xml version="1.0" encoding="UTF-8"?><jbi:message
xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"
xmlns:msg="http://ejb.proto.mycompany.com" name="getProtoDTOResponse"
type="msg:getProtoDTOResponse"
version="1.0"><jbi:part><p637:getProtoDTOResponse
xmlns:p637="http://ejb.proto.mycompany.com"><getProtoDTOReturn><id
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:nil="true"/></getProtoDTOReturn></p637:getProtoDTOResponse></jbi:part></jbi:message>
]
DEBUG - CxfBcComponent                 - Received exchange: status: Done,
role:provider
DEBUG - CxfBcComponent                 - Retrieved correlation id:
ID:172.xx.xxx.xxx-116d3309a4d-4:0

CXF Client log :

13 déc. 2007 12:10:29 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace
prefix "xsi" (for attribute "nil")
 at [row,col {unknown-source}]: [1,187] 
	at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
	at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
	at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
	at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
	at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
	at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
	at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
	at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
	at $Proxy27.getProtoDTO(Unknown Source)
	at
com.sopra.proto.ejb.ProtoBean_ProtoBean_Client.main(ProtoBean_ProtoBean_Client.java:56)
Caused by: javax.xml.bind.UnmarshalException
 - with linked exception:
[com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi"
(for attribute "nil")
 at [row,col {unknown-source}]: [1,187]]
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
	at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
	... 17 more


Best regards,
Florent.


Freeman Fang-2 wrote:
> 
> Hi Florent,
> 
> Yes, cxf doesn't support soap encoded, you should avoid using soapenc 
> with cxf.
> 
> But about the prefix missing issue, it seems like something wrong during 
> jbi message <===> soap message transformation.
> 
> Would you please append the whole jbi message and soap message, or whole 
> logs you get, as well as the wsdl you are using.
> 
> Best Regards
> 
> Freeman
> 
> Florent wrote:
>> Hi again,
>>
>> To bypass the problem, i put an empty object in every nillable array
>> (instead of a null value).
>>
>> But, i got a new error (very similar to the first one) :
>>
>> INFO: Interceptor has thrown exception, unwinding now
>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> namespace
>> prefix "soapenc" (for attribute "arrayType")
>>  at [row,col {unknown-source}]: [1,680] 
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>> 	at
>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>> 	at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> 	at
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> 	at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> Source)
>> 	at
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> Caused by: javax.xml.bind.UnmarshalException
>>  - with linked exception:
>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>> "soapenc" (for attribute "arrayType")
>>  at [row,col {unknown-source}]: [1,680]]
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>> 	... 17 more
>>
>> That doesn't suprise me, especially regardin the soap message i posted in
>> my
>> previous mail :
>>
>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> <subjectToApproval
>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>> <syndication xsi: nil="true" />
>> <syndicationReference xsi:nil="true" />
>> <tolerancePercentage>1.0</tolerancePercentage>
>>
>> There is a soapenc namespace prefix, but there is no soapenc namespace
>> declaration...
>> I remember from one of my previous post, you said cxf doesn't support
>> soapenc, isn't it?
>>
>> Is it possible to get the get the namespace declaration, even if it's not
>> used by cxf?
>>
>> Best regards,
>> Florent.
>>
>>
>>
>> Florent wrote:
>>   
>>> Hello,
>>>
>>> I still have the same configuration :
>>> - Web service server (WAS 6.1)
>>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>>> - Web service client (CXF)
>>>
>>> I got some nillable array in my WSDL definition. Everything is ok as
>>> long
>>> as those arrays are not null.
>>> But when they are, "xsi:nil="true"" is added to the soap message.
>>> Everything is still ok as long as i don't use the bridge (direct WS call
>>> from my CXF client)
>>>
>>> When i used the bridge, here is a part of the jbi out message :
>>>
>>> <commitmentCode>1130</commitmentCode>
>>> <companyCode>071</companyCode>
>>> <consolidatedAutorisation
>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> 	xsi:nil="true" />
>>> <consolidatedUtilisation
>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> 	xsi:nil="true" />
>>>
>>> But here is a part of the soap out message :
>>>
>>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>>> <subjectToApproval
>>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>>> <syndication xsi: nil="true" />
>>> <syndicationReference xsi:nil="true" />
>>> <tolerancePercentage>1.0</tolerancePercentage>
>>>
>>> As you can see, there is no
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>
>>> And here is the error log of cxf client :
>>>
>>> INFO: Interceptor has thrown exception, unwinding now
>>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>>> namespace prefix "xsi" (for attribute "nil")
>>>  at [row,col {unknown-source}]: [1,613] 
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>>> 	at
>>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>>> 	at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>>> 	at
>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>> 	at
>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>>> 	at
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>> 	at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>> 	at
>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>>> Source)
>>> 	at
>>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>>> Caused by: javax.xml.bind.UnmarshalException
>>>  - with linked exception:
>>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
>>> "xsi"
>>> (for attribute "nil")
>>>  at [row,col {unknown-source}]: [1,613]]
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>>> 	at
>>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>>> 	at
>>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>>> 	... 17 more
>>>
>>>
>>> Does servicemix-cxf supports
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?
>>>
>>> Thanks in advance,
>>> Best regards,
>>> Florent.
>>>
>>>     
>>
>>   
> 
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14314128.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: servicemix-cxf-bc missing namespace prefix

Posted by Freeman Fang <fr...@iona.com>.
Hi Florent,

Yes, cxf doesn't support soap encoded, you should avoid using soapenc 
with cxf.

But about the prefix missing issue, it seems like something wrong during 
jbi message <===> soap message transformation.

Would you please append the whole jbi message and soap message, or whole 
logs you get, as well as the wsdl you are using.

Best Regards

Freeman

Florent wrote:
> Hi again,
>
> To bypass the problem, i put an empty object in every nillable array
> (instead of a null value).
>
> But, i got a new error (very similar to the first one) :
>
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace
> prefix "soapenc" (for attribute "arrayType")
>  at [row,col {unknown-source}]: [1,680] 
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
> 	at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
> 	at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
> 	at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
> 	at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
> 	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
> 	at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 	at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> 	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
> Source)
> 	at
> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
> Caused by: javax.xml.bind.UnmarshalException
>  - with linked exception:
> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
> "soapenc" (for attribute "arrayType")
>  at [row,col {unknown-source}]: [1,680]]
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
> 	... 17 more
>
> That doesn't suprise me, especially regardin the soap message i posted in my
> previous mail :
>
> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
> <subjectToApproval
> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
> 	xmlns:p724="http://dto.fcb.mycompany.com" />
> <syndication xsi: nil="true" />
> <syndicationReference xsi:nil="true" />
> <tolerancePercentage>1.0</tolerancePercentage>
>
> There is a soapenc namespace prefix, but there is no soapenc namespace
> declaration...
> I remember from one of my previous post, you said cxf doesn't support
> soapenc, isn't it?
>
> Is it possible to get the get the namespace declaration, even if it's not
> used by cxf?
>
> Best regards,
> Florent.
>
>
>
> Florent wrote:
>   
>> Hello,
>>
>> I still have the same configuration :
>> - Web service server (WAS 6.1)
>> - Servicemix-cxf-bc consumer / provier (used as a bridge)
>> - Web service client (CXF)
>>
>> I got some nillable array in my WSDL definition. Everything is ok as long
>> as those arrays are not null.
>> But when they are, "xsi:nil="true"" is added to the soap message.
>> Everything is still ok as long as i don't use the bridge (direct WS call
>> from my CXF client)
>>
>> When i used the bridge, here is a part of the jbi out message :
>>
>> <commitmentCode>1130</commitmentCode>
>> <companyCode>071</companyCode>
>> <consolidatedAutorisation
>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> 	xsi:nil="true" />
>> <consolidatedUtilisation
>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> 	xsi:nil="true" />
>>
>> But here is a part of the soap out message :
>>
>> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
>> <subjectToApproval
>> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
>> 	xmlns:p724="http://dto.fcb.mycompany.com" />
>> <syndication xsi: nil="true" />
>> <syndicationReference xsi:nil="true" />
>> <tolerancePercentage>1.0</tolerancePercentage>
>>
>> As you can see, there is no
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>
>> And here is the error log of cxf client :
>>
>> INFO: Interceptor has thrown exception, unwinding now
>> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
>> namespace prefix "xsi" (for attribute "nil")
>>  at [row,col {unknown-source}]: [1,613] 
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
>> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
>> 	at
>> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
>> 	at
>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
>> 	at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
>> 	at
>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>> 	at
>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> 	at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
>> Source)
>> 	at
>> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
>> Caused by: javax.xml.bind.UnmarshalException
>>  - with linked exception:
>> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi"
>> (for attribute "nil")
>>  at [row,col {unknown-source}]: [1,613]]
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
>> 	at
>> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
>> 	at
>> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
>> 	... 17 more
>>
>>
>> Does servicemix-cxf supports
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?
>>
>> Thanks in advance,
>> Best regards,
>> Florent.
>>
>>     
>
>   

Re: servicemix-cxf-bc missing namespace prefix

Posted by Florent <fl...@sopragroup.com>.

Hi again,

To bypass the problem, i put an empty object in every nillable array
(instead of a null value).

But, i got a new error (very similar to the first one) :

INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace
prefix "soapenc" (for attribute "arrayType")
 at [row,col {unknown-source}]: [1,680] 
	at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
	at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
	at
org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
	at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
	at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
	at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
	at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
	at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
Source)
	at
com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
Caused by: javax.xml.bind.UnmarshalException
 - with linked exception:
[com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix
"soapenc" (for attribute "arrayType")
 at [row,col {unknown-source}]: [1,680]]
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
	at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
	at
org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
	... 17 more

That doesn't suprise me, especially regardin the soap message i posted in my
previous mail :

<repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
<subjectToApproval
	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
	xmlns:p724="http://dto.fcb.mycompany.com" />
<syndication xsi: nil="true" />
<syndicationReference xsi:nil="true" />
<tolerancePercentage>1.0</tolerancePercentage>

There is a soapenc namespace prefix, but there is no soapenc namespace
declaration...
I remember from one of my previous post, you said cxf doesn't support
soapenc, isn't it?

Is it possible to get the get the namespace declaration, even if it's not
used by cxf?

Best regards,
Florent.



Florent wrote:
> 
> 
> Hello,
> 
> I still have the same configuration :
> - Web service server (WAS 6.1)
> - Servicemix-cxf-bc consumer / provier (used as a bridge)
> - Web service client (CXF)
> 
> I got some nillable array in my WSDL definition. Everything is ok as long
> as those arrays are not null.
> But when they are, "xsi:nil="true"" is added to the soap message.
> Everything is still ok as long as i don't use the bridge (direct WS call
> from my CXF client)
> 
> When i used the bridge, here is a part of the jbi out message :
> 
> <commitmentCode>1130</commitmentCode>
> <companyCode>071</companyCode>
> <consolidatedAutorisation
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xsi:nil="true" />
> <consolidatedUtilisation
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xsi:nil="true" />
> 
> But here is a part of the soap out message :
> 
> <repaymentDate>2007-12-31T23:00:00.000Z</repaymentDate>
> <subjectToApproval
> 	soapenc:arrayType="p724:SubjectToApprovalDTO[0]"
> 	xmlns:p724="http://dto.fcb.mycompany.com" />
> <syndication xsi: nil="true" />
> <syndicationReference xsi:nil="true" />
> <tolerancePercentage>1.0</tolerancePercentage>
> 
> As you can see, there is no
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 
> And here is the error log of cxf client :
> 
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared
> namespace prefix "xsi" (for attribute "nil")
>  at [row,col {unknown-source}]: [1,613] 
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)
> 	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)
> 	at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
> 	at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)
> 	at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)
> 	at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)
> 	at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)
> 	at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 	at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> 	at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> 	at $Proxy27.searchAutorisationByInternalAutorisationNumberDTO(Unknown
> Source)
> 	at
> com.mycompany.fcb.ejb.ejb.ReadAutorisationBean_ReadAutorisationBean_Client.main(ReadAutorisationBean_ReadAutorisationBean_Client.java:59)
> Caused by: javax.xml.bind.UnmarshalException
>  - with linked exception:
> [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi"
> (for attribute "nil")
>  at [row,col {unknown-source}]: [1,613]]
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:396)
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:334)
> 	at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:311)
> 	at
> org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:545)
> 	... 17 more
> 
> 
> Does servicemix-cxf supports
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" namespace refix?
> 
> Thanks in advance,
> Best regards,
> Florent.
> 

-- 
View this message in context: http://www.nabble.com/servicemix-cxf-bc-missing-namespace-prefix-tp14292666s12049p14298282.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.