Hello Aki Thanks for your quick response! I am looking into your suggestion and I wanted to try this approach before I set set the bean property through Spring. But I saw in the org.apache.cxf.ws.rm.Proxy file that the client is always instanciated in the 'invoke' method. So I am not sure how I can change this runtime setting without overriding the createClient method in the Proxy class. But I figured that shouldn't be the way to go so I went for the property configuration solution. Can you maybe point me to the place where I can access the client in the correct way? Thanks!
Also having seen issue CXF-4139<https://issues.apache.org/jira/browse/CXF-4139> it looks like this task has been defined for quite a while. Is there already some activity on this? Since I will be working on wsrm for a couple of months (at least), maybe I can help/contribute with anything on this part? Many thanks in advance! With kind regards, John On Thu, Jan 17, 2013 at 3:52 PM, Aki Yoshida <[email protected]> wrote: > Hi John, > That generic property setting option was marked deprecated many years > go, so it's not good to use it. The explicit WSA namespace setting in > the bean configuration was added when WS-RM 1.1 was added. But I think > it is confusing to set these namespace properties in the RM > feature/manager level, as the server side endpoint can accept both > versions. Maybe that is why Dennis who worked on RM1.1 implementation > didn't add the RM namespace setting property to the bean > configuration. > > So how can you tell the client which WSRM version to use? You can > switch it by setting the appropriate runtime context properties. For > example, to use the standard WSRM11 and WSA combination, you can > write: > > client.getRequestContext().put(RMManager.WSRM_VERSION_PROPERTY, > RM11Constants.NAMESPACE_URI); > client.getRequestContext().put(RMManager.WSRM_WSA_VERSION_PROPERTY, > Names.WSA_NAMESPACE_NAME); > > For the server side, both versions 1.0 and 1.1 are automatically > accepted. So you don't need to configure anything special. > > regards, aki > > 2013/1/17 John Li <[email protected]>: > > Hello all, > > > > I am currently working on an assignment to implement a pilot showing the > > interoperability of WSRM between different technologies. For the > reference > > implementation I will be using Apache CXF to provide both a server for > > other clients to connect to and to provide a sample client implementation > > in Apache CXF. > > > > After downloading and getting the wsrm sample application up and running > I > > have seen in the SOAP messages that WSRM 1.0 is the default protocol > since > > the namespace is still 'http://schemas.xmlsoap.org/ws/2005/02/rm'. > > > > Actually the CXF website is not mentioning anything about the > > implementation of wsrm 1.1. After some research I found that from version > > 2.5.1 the wsrm 1.1/1.2 has been added to the release. My problem is that > I > > could not find how to activate the 1.1 protocol. Specifically I need the > > RMS to send out wsrm 1.1 messages out instead of 1.0 messages. The RMD I > > can see it will react based on the message that comes in so that will > > automatically select the right protocol version. > > > > After looking through the source code of the WSRM implementation I found > > the required settings in the RMManager but based on the > > current reliableMessaging configurations the rmNamespace is not a > > configuration option. Although I can see in the wsrm-manager.xsd the > > following statement: > > > > <xs:any namespace="http://www.springframework.org/schema/beans" > > processContents="lax" minOccurs="0" maxOccurs="unbounded" > > > <xs:annotation><xs:documentation> > > Deprecated. To support the older spring:property element that is no > longer > > used > > </xs:documentation></xs:annotation> > > </xs:any> > > > > I could only change this configuration by using the spring property > > element. So to make my client implementation sending out wsrm 1.1 > messages, > > I have used the following two statements in the reliableMessaging > > configuration: > > > > <wsrm-mgr:RM10AddressingNamespace uri=" > http://www.w3.org/2005/08/addressing" > > /> > > <property name="RMNamespace" value=" > > http://docs.oasis-open.org/ws-rx/wsrm/200702"/> > > > > Though now it seems to work, the property element is deprecated so I am > > wondering if I am doing it on the correct way or is there a better way to > > do this? > > > > Also I see in the current implementation that the usage of wsrmp 1.0 > > settings is defined in the wsrm-manager.xsd and wsrmp 1.1/1.2 elements > are > > not supported. As it also is stated in issue > > https://issues.apache.org/jira/browse/CXF-4139. Though the wsrmp > 1.1/1.2 > > has totally different elements, the most important delivery assurance > > settings are already supported by Apache CXF wsrm-manager configurations. > > My question on this is: What is the impact for Apache CXF when a WSDL is > > provided that uses the wsrmp 1.1/1.2 policy elements? Will they be > ignored > > and you need to configure these settings manually through the manager or > > does CXF automatically convert them to the internal manager settings? > > > > I hope someone can help me with clarifying my questions. > > > > Many thanks in advance! > > > > John Li >
