Hi Ben, I have a few questions to your scenario. I suppose you meant by "synchronous approach" a WS-RM scenario where each ack message must be returned to the caller in its http response synchronously. And do you have a request-response service, as you are talking about the offer option?
Regarding the issue about CXF trying to send a message to www.w3.org, there was a similar issue CXF-3777 which was fixed in 2.4.3. I'll check how your case relates to this. regards, aki 2012/3/16 Ben Pezzei <ben.pez...@gmail.com>: > Hi > > We are using CXF 2.4.4. for RM of one special operation. Due to > technical issues (firewalling, loadbalancer, etc) we > decided to use the synchronous approach. > > Unfortunately, we have several problems with sync. RM: > > Client must(!) send an offer, if we do not send one, the server > generates a Fault in the second response: > It is not possible to send a create sequence request to the anonymous address > > This offered id is ignored by the Destination, instead the response > for createSourceSequence includes > a new/other id (Although this looks ok, the source still keeps the > offered Sequence... since in some > cases the source wants a final SeqAck for this Sequence, startind with > req/res Id 4). > > The other Problem is marking the lastMessage, When we use: > SequenceTerminationPolicyType stp = new SequenceTerminationPolicyType(); > stp.setTerminateOnShutdown(true); > stp.setMaxLength(1); > > The server/destination tries to send the TerminateSequence (ID:5) to > www.w3.org, which > results in a java.net.UnknownHostException: > > The req/res pair is as follows > > ID: 1 Req: createSequence with Offer 123 > ID: 1 Res: CreateSequenceResponse with generated SeqID 456 > ID: 2 Req: Sequence with 456 and content > ID: 2 Res: SequenceAcknowledgement for 456and content > ID: 3 Req: TerminateSequence for 456 > ID: 3 Res: looks like an ACK (occurance of <RelatesTo > xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://www.w3.org/2005/08/addressing/unspecified</RelatesTo>) > ID: 4 Req: SequenceAcknowledgement for 456 > ID: 5 Req: Server tries to send a TerminateSequence to > http://www.w3.org/2005/08/addressing/anonymous > > If we skip the mastMessage (setMaxLength=0) there is no error in > communication but there is also > no terminateSequence. > > Hence the question if it is possible to use RM with cxf 2.4.4. in sync > mode (and without offer and with markation of lastMessage)? > > Our config is straigh forward (server): > <wsrm-mgr:reliableMessaging> > <wsrm-policy:RMAssertion> > <wsrm-policy:BaseRetransmissionInterval > Milliseconds="40000"/> > <wsrm-policy:AcknowledgementInterval Milliseconds="0"/> > </wsrm-policy:RMAssertion> > <wsrm-mgr:sourcePolicy> > <!-- > <wsrm-mgr:sequenceTerminationPolicy maxLength="1"/> > --> > </wsrm-mgr:sourcePolicy> > <wsrm-mgr:destinationPolicy > > <wsrm-mgr:acksPolicy intraMessageThreshold="10" /> > </wsrm-mgr:destinationPolicy> > </wsrm-mgr:reliableMessaging> > > We generate the client RM Bus programmatically (initially by spring) > with those features: > <property name="features"> > <list> > <bean > class="org.apache.cxf.ws.addressing.WSAddressingFeature"/> > <bean > class="org.apache.cxf.feature.LoggingFeature"/> > <bean > class="org.apache.cxf.ws.rm.feature.RMFeature"> > </list> > </property> > > public class RMBusFactory extends SpringBusFactory { > ... > ExtensionManagerBus originBus = (ExtensionManagerBus) super.createBus(); > .... > for (AbstractFeature feature : features) { > feature.initialize(originBus); > } > originBus.setFeatures(features); > > any ideas? > > tnx & greetings > Ben