2014-12-05 98 views
0

请注意:即使我在这里使用Groovy,我认为我的异常实际上是正确使用Jersey/JAX-RS API。泽西岛/ JAX-RS客户端在HTTP上抛出异常GET

考虑下面的代码:

ClientConfig clientConfig = new DefaultClientConfig() 
clientConfig.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE) 
Client jerseyClient = Client.create(clientConfig) 
WebResource webResource = jerseyClient.resource("http://localhost:8080/location/") 

Long id = 5L 

Address address = webResource.path("address").path(id) 
    .accept(MediaType.APPLICATION_JSON) 
    .get(Long) 

我得到以下异常:

groovy.lang.MissingMethodException: No signature of method: com.sun.jersey.api.client.WebResource.path() is applicable for argument types: (java.lang.Long) values: [5] 
Possible solutions: path(java.lang.String), put(), wait(long), put(com.sun.jersey.api.client.GenericType), put(java.lang.Class), put(java.lang.Object) 
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55) 
    at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 
    at com.me.myapp.Driver.run(Driver.groovy:43) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    <rest omitted for brevity> 

我试图打下面的REST端点:

GET http://localhost:8080/location/address/{id} 

我在哪里我错了?

+1

Jeff Storey是正确的(+1)。如果您担心服务器端,这意味着您期待Long,那么您无需担心,因为只要String路径段的格式正确,String路径段就会转换为Long。 – 2014-12-05 04:04:02

+0

对不起@peeskillet(+1) - 我发布了错误的代码;请看我的更新,这是否改变了你的想法?再次感谢! – IAmYourFaja 2014-12-05 09:53:42

+1

除了例外中的值之外,我没有看到之前发生过任何更改。消息是一样的。正如Jeff Storey所说,'.path'应该采用String。所以只需要'.path(id.ToString())' – 2014-12-05 09:55:37

回答

2

你打电话path方法与long,但它只能采取String。您的idlong,但由于错误消息说的值为1,我假定LocationResourcePaths.ADDRESS_PATH也是long的值为1,是这种情况吗?

+0

谢谢@Jeff Storey(+1) - 但我必须道歉;我发布了不好的代码片段,请参阅我的更新,这是否改变了您的想法?再次感谢! – IAmYourFaja 2014-12-05 09:54:14

相关问题