I did few more tests today (with/without CXFServlet, with PathSegments) and I still can't reproduce it so I will give up for a moment.
But I'm still nervous you managed to hit a problem somehow - can you please 
give me a favor and help to get to the bottom of it ?
It should take 30 mins max of your time, download
http://www.apache.org/dyn/closer.cgi?path=%2Fcxf%2F2.2.2%2Fapache-cxf-2.2.2-src.zip

and put a breakpoint in URITemplate.match()

A better news is that after trying to reproduce it, I added a new method to WebClient which can make it simpler for users to deal with template parameters, such that they can avoid dealing with UriBuilder directly.
So you can do
WebClient client = WebClient.create("http://widgets";);
cleint.path("("/renderwidget/id/{widgetID}/type/{widgetType}/size/{size}/locale/{locale}/{properties}",
               idValue, widgetTypeValue, 1, "en_US", 
"properties;1=2").get(Widget.class)

cheers, Sergey


----- Original Message ----- From: "Gabriel Guardincerri" <[email protected]>
To: <[email protected]>
Sent: Wednesday, July 01, 2009 10:35 PM
Subject: Problem with matrix params, works with one, but not with two (or more) 
params



Hello,

I'm having a problem where matrix parameters are not recognized past the
first parameter.  When I have one matrix parameter, the method below is
invoked and the PathSegment.getMatrixParameters() returns the single
result.

However, if I append a second matrix parameter (or more), the service
method is not invoked at all and I receive the following error message:

"No operation matching request".

Service interface:

@GET
@Path("/renderwidget/id/{widgetID}/type/{widgetType}/size/{size}/locale/{locale}/{properties}")
   WSWidget renderWidget(@PathParam("widgetID") Long widgetID,
           @PathParam("widgetType") Integer widgetType,
           @PathParam("size") Long containerSize,
           @PathParam("locale") String locale,
           @PathParam("properties") PathSegment props)
           throws RemoteBridgeException;

Working
URL:
/renderwidget/id/1007/type/1/size/1/locale/en_US/properties;numResults=1

Broken:
URL:
/renderwidget/id/1007/type/1/size/1/locale/en_US/properties;numResults=1;foo=bar

The reason I'm trying to use matrix parameters is that I have an
arbitrary map of name/value for a widget class.  I can't try to parse
them out individually using @MatrixParam, because they vary by widget
class and are not known at the service level.

Thanks for your help.
--
View this message in context: http://www.nabble.com/Problem-with-matrix-params%2C-works-with-one%2C-but-not-with-two-%28or-more%29-params-tp24297533p24297533.html
Sent from the cxf-user mailing list archive at Nabble.com.


Reply via email to