As a point of reference for folks that may come across this in the future:
This is because the user is not using CXF. They are using the JAX-WS implementation built into the JDK. Those annotations will not work if CXF is picked up instead. Dan On Dec 2, 2013, at 7:19 PM, Rahul Somasunderam <[email protected]> wrote: > Solved. I just needed to use the OneWayFeature > > import com.sun.xml.internal.ws.api.addressing.AddressingVersion > import com.sun.xml.internal.ws.api.addressing.OneWayFeature > import com.sun.xml.internal.ws.api.addressing.WSEndpointReference > @Grapes([ > @Grab(group = 'com.github.rahulsom', module = 'ihe-iti', version = '0.3'), > @Grab(group = 'org.apache.cxf', module = 'cxf-rt-ws-addr', version = > '2.6.7'), > ]) > > import ihe.iti.xds_b._2007.RespondingGatewayQueryService > import oasis.names.tc.ebxml_regrep.xsd.query._3.AdhocQueryRequest > import oasis.names.tc.ebxml_regrep.xsd.query._3.ResponseOptionType > import oasis.names.tc.ebxml_regrep.xsd.rim._3.AdhocQueryType > import oasis.names.tc.ebxml_regrep.xsd.rim._3.SlotType1 > import oasis.names.tc.ebxml_regrep.xsd.rim._3.ValueListType > > import javax.xml.ws.BindingProvider > import javax.xml.ws.soap.AddressingFeature > > RespondingGatewayQueryService theService = new > RespondingGatewayQueryService(new > URL('http://localhost:8080/healthdock/alpine/xca-r-query?wsdl')) > > def thePort = theService.getRespondingGatewayQueryPortSoap12( > new AddressingFeature(true, true), > new OneWayFeature( > true, > new WSEndpointReference('http://localhost:9000/dec', > AddressingVersion.W3C), > new WSEndpointReference('urn:oid:1.2.3.4', AddressingVersion.W3C), > 'something' > ) > ) > def bp = thePort as BindingProvider > > bp.requestContext[BindingProvider.ENDPOINT_ADDRESS_PROPERTY] = > 'http://localhost:8080/healthdock/alpine/xca-r-query' > > def query = > new AdhocQueryRequest().withAdhocQuery( > new AdhocQueryType() > .withId('urn:uuid:14d4debf-8f97-4251-9a74-a90016b0af0d') > .withSlot( > new SlotType1() > .withName('$XDSDocumentEntryPatientId') > .withValueList(new > ValueListType().withValue('123^^^&1.2.3.4&ISO')), > new SlotType1() > .withName('$XDSDocumentEntryStatus') > .withValueList(new > ValueListType().withValue('urn:oasis:names:tc:ebxml-regrep:StatusType:Approved')) > ) > ).withResponseOption( > new ResponseOptionType() > .withReturnType('LeafClass') > .withReturnComposedObjects(true) > ) > > thePort.respondingGatewayCrossGatewayQuery(query) > > On Dec 2, 2013, at 2:55 PM, Rahul Somasunderam <[email protected]> > wrote: > >> Hi, >> >> I'm trying to set the ReplyTo header in my soap request. This is my code. It >> doesn't seem to set the header correctly. >> >> @Grapes([ >> @Grab(group = 'com.github.rahulsom', module = 'ihe-iti', version = '0.3'), >> @Grab(group = 'org.apache.cxf', module = 'cxf-rt-ws-addr', version = >> '2.6.7'), >> ]) >> >> import ihe.iti.xds_b._2007.RespondingGatewayQueryService >> import oasis.names.tc.ebxml_regrep.xsd.query._3.AdhocQueryRequest >> import oasis.names.tc.ebxml_regrep.xsd.query._3.ResponseOptionType >> import oasis.names.tc.ebxml_regrep.xsd.rim._3.AdhocQueryType >> import oasis.names.tc.ebxml_regrep.xsd.rim._3.SlotType1 >> import oasis.names.tc.ebxml_regrep.xsd.rim._3.ValueListType >> import org.apache.cxf.ws.addressing.WSAContextUtils >> >> import javax.xml.ws.BindingProvider >> import javax.xml.ws.soap.AddressingFeature >> >> RespondingGatewayQueryService theService = new >> RespondingGatewayQueryService(new >> URL('http://localhost:8080/healthdock/alpine/xca-r-query?wsdl')) >> >> def thePort = theService.getRespondingGatewayQueryPortSoap12(new >> AddressingFeature(true, true)) >> BindingProvider bp = thePort >> bp.requestContext[BindingProvider.ENDPOINT_ADDRESS_PROPERTY] = >> 'http://localhost:8080/healthdock/alpine/xca-r-query' >> bp.requestContext[WSAContextUtils.REPLYTO_PROPERTY] = >> 'http://localhost:9090/decoupled_endpoint' >> >> def query = new AdhocQueryRequest() >> .withAdhocQuery(new AdhocQueryType() >> .withId('123') >> .withSlot( >> new SlotType1(name: '$XDSDocumentEntryPatientId', valueList: new >> ValueListType(value: ['123^^^&1.2.3.4&ISO'])), >> new SlotType1( >> name: '$XDSDocumentEntryStatus', >> valueList: new ValueListType(value: [ >> 'urn:oasis:names:tc:ebxml-regrep:StatusType:Approved', >> ])) >> ) >> >> ) >> .withResponseOption(new ResponseOptionType() >> .withReturnType('LeafClass') >> .withReturnComposedObjects(true) >> ) >> >> thePort.respondingGatewayCrossGatewayQuery(query) >> This is what I receive at the server >> >> ID: 7 >> Address: http://localhost:8080/healthdock/services/receivingGatewayQuery >> Encoding: UTF-8 >> Http-Method: POST >> Content-Type: application/soap+xml; >> charset=utf-8;action="urn:ihe:iti:2007:CrossGatewayQuery" >> Headers: {Accept=[application/soap+xml, multipart/related], >> connection=[keep-alive], Content-Length=[1440], >> content-type=[application/soap+xml; >> charset=utf-8;action="urn:ihe:iti:2007:CrossGatewayQuery"], >> host=[localhost:8080], user-agent=[JAX-WS RI 2.2.4-b01]} >> Payload: <?xml version='1.0' encoding='UTF-8'?><S:Envelope >> xmlns:S="http://www.w3.org/2003/05/soap-envelope"><S:Header><To >> xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8080/healthdock/alpine/xca-r-query</To><Action >> xmlns="http://www.w3.org/2005/08/addressing" >> xmlns:S="http://www.w3.org/2003/05/soap-envelope" >> S:mustUnderstand="true">urn:ihe:iti:2007:CrossGatewayQuery</Action><ReplyTo >> xmlns="http://www.w3.org/2005/08/addressing"> >> <Address>http://www.w3.org/2005/08/addressing/anonymous</Address> >> </ReplyTo><MessageID >> xmlns="http://www.w3.org/2005/08/addressing">uuid:cd66b8bb-ce01-4ec0-98ff-fa03c368619a</MessageID></S:Header><S:Body><ns6:AdhocQueryRequest >> xmlns:ns2="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" >> xmlns:ns3="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" >> xmlns:ns4="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0" >> xmlns:ns5="urn:ihe:iti:xds-b:2007" >> xmlns:ns6="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" >> xmlns:ns7="urn:oasis:names:tc:ebxml-regrep:xsd:cms:3.0"><ns6:ResponseOption >> returnType="LeafClass" returnComposedObjects="true"/><ns2:AdhocQuery >> id="123"><ns2:Slot >> name="$XDSDocumentEntryPatientId"><ns2:ValueList><ns2:Value>123^^^&1.2.3.4&ISO</ns2:Value></ns2:ValueList></ns2:Slot><ns2:Slot >> >> name="$XDSDocumentEntryStatus"><ns2:ValueList><ns2:Value>urn:oasis:names:tc:ebxml-regrep:StatusType:Approved</ns2:Value></ns2:ValueList></ns2:Slot></ns2:AdhocQuery></ns6:AdhocQueryRequest></S:Body></S:Envelope> >> Any hints as to what I'm doing wrong? Oh, and my code is in groovy. >> >> R, >> >> rahul > -- Daniel Kulp [email protected] - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com
