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.
>> 
>> 

Reply via email to