Please ignore my comment at the end about the HolderOutInterceptor. It is not correct.
tirtza wrote: > > Here is my client code. I am able to see the soap message logged but my > response object is empty. > I am using CXF 2.0.2 > > ApplicationContext beans > ------------------------------------------------------------------------------------- > <bean id="balanceclient" > class="net.idt.svp.Nomad.client.service.BalanceEnquiry" > factory-bean="nomadclientFactory" factory-method="create" > scope="prototype"/> > <bean id="nomadclientFactory" > class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> > <property name="serviceClass" > value="net.idt.svp.Nomad.client.service.BalanceEnquiry"/> > <property name="address" > value="http://abc.def.ghi:20903/webservices/services/BalanceEnquiry"/> > </bean> > > Client > -------------------------------------------------------------------------------------- > FileSystemXmlApplicationContext ctx=new > FileSystemXmlApplicationContext("config/backendAppContext.xml"); > BalanceEnquiry bal=(BalanceEnquiry)ctx.getBean("balanceclient"); > BalanceEnquiryRspsInfo res=bal.balanceEnquiry(getRequest()); > > cxf config file > ---------------------------------------------------------------------------------- > <cxf:bus> > <cxf:features> > <cxf:logging/> > </cxf:features> > <cxf:outInterceptors> > <bean > class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor"/> > <bean > class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor"> > <property name="properties"> > <map> > <entry key="action" value="Signature"/> > <entry key="user" value="wally"/> > <entry key="passwordCallbackClass" > value="net.c.security.PWCallback"/> > <entry key="signaturePropFile" > value="crypto.properties"/> > <entry key="signatureKeyIdentifier" > value="DirectReference"/> > </map> > </property> > </bean> > </cxf:outInterceptors> > </cxf:bus> > <http-conf:conduit name="*.http-conduit"> > <http-conf:client ConnectionTimeout="30000" > ReceiveTimeout="30000"/> > </http-conf:conduit> > > wsdl > -------------------------------------------------------------------------------------------- > <wsdl:definitions targetNamespace="urn:BalanceEnquiry" > xmlns:apachesoap="http://xml.apache.org/xml-soap" > xmlns:impl="urn:BalanceEnquiry" xmlns:intf="urn:BalanceEnquiry" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:tns2="http://wsvalueobj.BalanceEnquiry.prepaid.webservices.cortex.com" > xmlns:tns3="http://wsvalueobj.common.prepaid.webservices.cortex.com" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <wsdl:types> > <schema > targetNamespace="http://wsvalueobj.common.prepaid.webservices.cortex.com" > xmlns="http://www.w3.org/2001/XMLSchema"> > <import > namespace="http://wsvalueobj.BalanceEnquiry.prepaid.webservices.cortex.com" > /> > <import namespace="urn:BalanceEnquiry" /> > <import namespace="http://schemas.xmlsoap.org/soap/encoding/" > /> > <complexType name="SecurityDetailsInfo"> > <sequence> > <element name="charPos" nillable="true" type="xsd:int" > /> > <element name="secChkID" nillable="true" > type="xsd:long" /> > <element name="secValue" nillable="true" > type="xsd:string" /> > </sequence> > </complexType> > </schema> > <schema targetNamespace="urn:BalanceEnquiry" > xmlns="http://www.w3.org/2001/XMLSchema"> > <import > namespace="http://wsvalueobj.BalanceEnquiry.prepaid.webservices.cortex.com" > /> > <import > namespace="http://wsvalueobj.common.prepaid.webservices.cortex.com" /> > <import namespace="http://schemas.xmlsoap.org/soap/encoding/" > /> > <complexType name="ArrayOf_tns3_SecurityDetailsInfo" > type="tns3:SecurityDetailsInfo[]" maxOccurs="unbounded" /> > </schema> > <schema > targetNamespace="http://wsvalueobj.BalanceEnquiry.prepaid.webservices.cortex.com" > xmlns="http://www.w3.org/2001/XMLSchema"> > <import > namespace="http://wsvalueobj.common.prepaid.webservices.cortex.com" /> > <import namespace="urn:BalanceEnquiry" /> > <import namespace="http://schemas.xmlsoap.org/soap/encoding/" > /> > <complexType name="BalanceEnquiryRqstInfo"> > <sequence> > <element name="messageID" type="xsd:int" /> > <element name="instCode" nillable="false" > type="xsd:string" /> > <element name="txnType" nillable="false" > type="xsd:string" /> > <element name="authMethod" nillable="false" > type="xsd:string" /> > <element name="PAN" nillable="true" type="xsd:string" > /> > <element name="DOB" nillable="true" type="xsd:date" /> > <element name="track2" nillable="true" > type="xsd:string" /> > <element name="CVV" nillable="true" type="xsd:string" > /> > <element name="accessCode" nillable="true" > type="xsd:string" /> > <element name="lastName" nillable="true" > type="xsd:string" /> > <element name="localDate" nillable="false" > type="xsd:date" /> > <element name="localTime" type="xsd:long" /> > <element name="crdActpID" nillable="true" > type="xsd:string" /> > <element name="loginID" nillable="true" > type="xsd:string" /> > <element name="secDet" nillable="true" > type="impl:ArrayOf_tns3_SecurityDetailsInfo" /> > </sequence> > </complexType> > <complexType name="BalanceEnquiryRspsInfo"> > <sequence> > <element name="messageID" type="xsd:int" /> > <element name="instCode" nillable="false" > type="xsd:string" /> > <element name="txnType" nillable="false" > type="xsd:string" /> > <element name="PAN" nillable="false" type="xsd:string" > /> > <element name="localDate" nillable="false" > type="xsd:date" /> > <element name="localTime" type="xsd:long" /> > <element name="avlBal" type="xsd:double" /> > <element name="blkAmt" type="xsd:double" /> > <element name="currCode" nillable="true" > type="xsd:string" /> > <element name="loginID" nillable="true" > type="xsd:string" /> > <element name="sysDate" nillable="true" > type="xsd:date" /> > <element name="actionCode" nillable="false" > type="xsd:string" /> > </sequence> > </complexType> > </schema> > </wsdl:types> > <wsdl:message name="balanceEnquiryRequest"> > <wsdl:part name="pobjBalanceEnquiryRqstInfo" > type="tns2:BalanceEnquiryRqstInfo" /> > </wsdl:message> > <wsdl:message name="balanceEnquiryResponse"> > <wsdl:part name="balanceEnquiryReturn" > type="tns2:BalanceEnquiryRspsInfo" /> > </wsdl:message> > <wsdl:portType name="BalanceEnquiry"> > <wsdl:operation name="balanceEnquiry" > parameterOrder="pobjBalanceEnquiryRqstInfo"> > <wsdl:input message="impl:balanceEnquiryRequest" > name="balanceEnquiryRequest" /> > <wsdl:output message="impl:balanceEnquiryResponse" > name="balanceEnquiryResponse" /> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="BalanceEnquirySoapBinding" > type="impl:BalanceEnquiry"> > <wsdlsoap:binding style="rpc" > transport="http://schemas.xmlsoap.org/soap/http" /> > <wsdl:operation name="balanceEnquiry"> > <wsdlsoap:operation soapAction="" /> > <wsdl:input name="balanceEnquiryRequest"> > <wsdlsoap:body namespace="urn:BalanceEnquiry" > use="literal" /> > </wsdl:input> > <wsdl:output name="balanceEnquiryResponse"> > <wsdlsoap:body namespace="urn:BalanceEnquiry" > use="literal" /> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="BalanceEnquiryService"> > <wsdl:port binding="impl:BalanceEnquirySoapBinding" > name="BalanceEnquiry"> > <wsdlsoap:address > location="http://macari:20003/axis/services/BalanceEnquiry" /> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > > I stepped through cxf and this is the point where object is not getting > populated. > > HolderOutInterceptor.java > message.put(HolderInInterceptor.CLIENT_HOLDERS, holders); > for (MessagePartInfo part : parts) { > if (part.getIndex() > 0) { > Holder holder = (Holder)outObjects.get(part.getIndex() > - 1); > outObjects.set(part.getIndex() - 1, holder.value); > } > } > Since there is only 1 part (response object) the index is never greater > than 0 > > > > Willem2 wrote: >> >> Hi , >> >> Did this message is created by CXF Server ? >> And please tell me the CXF version that you uses. >> If it is CXF's bug, please fill a JIRA[1] for it , and a simple test >> case will be helpful for us to debug. >> >> [1] http://issues.apache.org/jira/browse/CXF >> >> >> Willem >> >> tirtza wrote: >>> I get an empty response object when using JaxWsProxyFactoryBean as >>> well. >>> >>> >> >> > > -- View this message in context: http://www.nabble.com/empty-response-object-tf4706733.html#a13468821 Sent from the cxf-user mailing list archive at Nabble.com.