Hi Matt

On 30/07/12 19:00, Matt Massie wrote:
Let me start by thanking your team for writing such a good piece of code.
CXF has worked well for us.

For one project, we used CXF to create a JAX-RS service that uses nested
subresources. Originally, we only provided a Python client to REST
interface. I'm in the process of using the CXF JAXRSClientFactory to create
a Java client for customers as well.  Unfortunately, the way we've
annotated the code is causing errors in the client code and I'm at a loss
to understand exactly why.

I've distilled the problem down to a simple test case and posted it as a
gist.

       https://gist.github.com/3207745

Thanks for making this code available, helped me reproduce the issue
immediately.


Whenever I run the above test case, I get the following exception:

java.lang.IllegalArgumentException: Unresolved variables; only 0 value(s)
given for 1 unique variable(s)
  at
org.apache.cxf.jaxrs.impl.UriBuilderImpl.substituteVarargs(UriBuilderImpl.java:185)
at org.apache.cxf.jaxrs.impl.UriBuilderImpl.doBuild(UriBuilderImpl.java:82)
  at
org.apache.cxf.jaxrs.impl.UriBuilderImpl.buildFromEncoded(UriBuilderImpl.java:218)
at
org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:152)
  at $Proxy15.getGrandchildResource(Unknown Source)
at com.cloudera.api.v1.impl.TestClass.testCase(TestClass.java:92)

It appears that the client code is unable to generate a request URI from
the @Path annotation we're providing.

Is there anything obviously wrong with the code in the gist that you can
see?  Any guidance you can provide would be very appreciated.


ChildResource has
@Path("/{childName}/grandChildren")

on one of its methods,
but no @PathParam("childName") is avaialble

I've updated the method and the test passed

Cheers, Sergey

-Matt



--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to