Hi sorry for a delay, working on some other CXF issue at the moment... The 2nd exception was to do with the fact empty POSTs were not supported by HttpConduit in earlier CXF versions, though it was possible to workaround the problem by using a custom client side out interceptor.
thanks, Sergey On Wed, Apr 21, 2010 at 7:06 PM, Mieke Mocke <[email protected]> wrote: > Hi Sergey, > > Upgrading to the latest 2.2.7 seems to have taken care of the problem. > > You guys are awesome. > > Thanks, > > Mieke > > On Apr 21, 2010, at 10:38 AM, Sergey Beryozkin wrote: > > > Hi > > > > what does > > > > messageSource.getMessage(" > >> > >> service.myservice.url", null, > >> Locale.US); > > > > > > returns ? 2.2.7 may display a better message but I'm presuming it is the > > service URI that messageSource returns ? > > Also, you can do > > > > client.path("/setValue/key/{key}/name/{name}/value/{value}", key, name, > > value); > > > > not sure though WebClient in 2.2.3 has this method > > > > cheers, Sergey > > > > > > On Wed, Apr 21, 2010 at 6:11 PM, mieke <[email protected]> wrote: > > > >> > >> I have a simple service I'd like to use to post information to: > >> > >> @POST > >> @Path("/setValue/key/{key}/name/{name}/value/{value}") > >> public Response setValue( > >> @PathParam("key") String key, > >> @PathParam("name") String name, > >> @PathParam("value") String value, > >> @QueryParam("timeToLive") Integer timeToLive) { > >> > >> try { > >> myService.setValue(key, name, value, timeToLive); > >> return Response.ok().build(); > >> } catch (Exception e) { > >> log.error("myService is unable to save value: " + value); > >> return Response.status(Status.BAD_REQUEST).build(); > >> } > >> } > >> > >> and I'd like to use CXF tools as much as possible. My client to post > data > >> to > >> the service looks something like ... > >> > >> public void setValue(String key, String name, String value, Integer > >> minutesToLive) { > >> WebClient client = > >> WebClient.create(messageSource.getMessage("service.myservice.url", null, > >> Locale.US)); > >> client.path("/setValue/key/" + key + "/name/" + name + "/value/" + > >> value).accept(MediaType.APPLICATION_XML); > >> client.query("timeToLive", minutesToLive); > >> > >> Response response = client.post(null); > >> > >> if(!(response.getStatus() == Status.OK.getStatusCode())) { > >> log.error("Unable to set " + value + " for key " + key + > ". > >> Status > >> code " + response.getStatus()); > >> } > >> > >> } > >> > >> > >> And I keep getting > >> > >> javax.ws.rs.WebApplicationException > >> at > >> > >> > org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWebClient(JAXRSClientFactoryBean.java:113) > >> at org.apache.cxf.jaxrs.client.WebClient.create(WebClient.java:80) > >> at mypackage.ServiceClient.setValue(ServiceClient.java:68) > >> at mypackage.ServiceTest.testSetValue(ServiceTest.java:55) > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >> at > >> > >> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > >> at > >> > >> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > >> at java.lang.reflect.Method.invoke(Method.java:597) > >> at > >> > >> > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > >> at > >> > >> > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > >> at > >> > >> > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > >> at > >> > >> > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) > >> at > >> > >> > org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) > >> at > >> > >> > org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82) > >> at > >> > >> > org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) > >> at > >> > >> > org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:240) > >> at > >> > >> > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > >> at > org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > >> at > org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > >> at > >> > >> > org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) > >> at > >> > >> > org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) > >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > >> at > >> > >> > org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180) > >> at > >> > >> > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46) > >> at > >> > >> > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > >> at > >> > >> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) > >> at > >> > >> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) > >> at > >> > >> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) > >> at > >> > >> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) > >> > >> I see the data being received by the service but am still getting this > >> exception. I'm using CXF 2.2.3 > >> > >> Any help would be appreciated. > >> > >> Thanks. > >> > >> -- > >> View this message in context: > >> http://old.nabble.com/Post-using-WebClient-tp28288257p28288257.html > >> Sent from the cxf-user mailing list archive at Nabble.com. > >> > >> > >
