cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Li <j...@mycubes.nl>
Subject Re: Usage of WS-RM 1.1 in the client configuration
Date Thu, 17 Jan 2013 16:09:16 GMT
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 <elakito@gmail.com> 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 <john@mycubes.nl>:
> > 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
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message