Hi Sergey,
Thanks for your response.
Yes messageSource.getMessage returns me the base URL.
I tried 'client.path("/setValue/key/{key}/name/{name}/value/{value}", key,
name, value);
and get the following:
Apr 21, 2010 10:47:19 AM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
WARNING: Interceptor has thrown exception, unwinding now
java.lang.IllegalStateException: Already connected
at
java.net.HttpURLConnection.setFixedLengthStreamingMode(HttpURLConnection.java:103)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.thresholdNotReached(HTTPConduit.java:1853)
at
org.apache.cxf.io.AbstractThresholdOutputStream.close(AbstractThresholdOutputStream.java:99)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1941)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
at
org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:529)
at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:510)
at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:203)
at org.apache.cxf.jaxrs.client.WebClient.post(WebClient.java:212)
at mypackage.ServiceClient.setValue(ServiceClient.java:72)
at mypackage.ServiceClientTest.testSetValue(ServiceClientTest.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)
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.
>>
>>