I understand what you're saying. I do think that a simple client for
packaging the data in a restful way and handling all the http plumbing
is a nicety. It's especially useful in unit testing. I can use the
same unit tests that I ran on my business object implementation with
just a subclass and an override on the getService() method. Now, I can
do all the plumbing myself, of course.  But I do think that if CXF
came with a bundled client factory for restful services it would be
terrific.

On 11/5/07, Liu, Jervis <[EMAIL PROTECTED]> wrote:
> Glad to see you have your problem resolved. What I am suggesting is that do 
> not write your RESTful service client using JAX-WS style API (eg, 
> JaxWsProxyFactoryBean etc), we do not support that and have no plan to 
> support it. Instead, you may find most of time you are just fine to access 
> your RESTful services by using HttpURLConnection or Apache HttpClient or even 
> a browser.
>
> Cheers,
> Jervis
>
> > -----Original Message-----
> > From: Todd Orr [mailto:[EMAIL PROTECTED]
> > Sent: 2007?11?6? 2:06
> > To: [email protected]
> > Subject: Re: ClientFactoryBean AbstractMethodError
> >
> >
> > That seems to have worked. Thanks!
> >
> > On 11/5/07, Willem Jiang <[EMAIL PROTECTED]> wrote:
> > > Hi ,
> > >
> > > Can you check xercesImpl-2.8.1.jar is in the class path of your test
> > > with JUnit?
> > > I can find the method
> > >
> > > org.apache.xerces.dom.DocumentImpl.getInputEncoding() in that jar.
> > >
> > > Willem.
> > >
> > > Todd Orr wrote:
> > > > hanks. That doesn't really explain, to me, why the server
> > starts up
> > > > fine when deployed but fails with the error shown when
> > run in a JUnit
> > > > test. The demo is able to create a service in JUnit
> > without problem.
> > > > In this particular JUnit, rather than relying on Spring
> > configuration,
> > > > I was attempting to create the server myself using the
> > following code:
> > > >
> > > > private Server createRestServer(SessionFactory sessionFactory) {
> > > >       MyServiceImpl service = new MyServiceImpl();
> > > >       service.setSessionFactory(sessionFactory);
> > > >
> > > >         JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
> > > >         sf.setServiceClass(MyServiceInterface.class);
> > > >         sf.setBindingId(HttpBindingFactory.HTTP_BINDING_ID);
> > > >         sf.setAddress("http://localhost:8080/rest/";);
> > > >         sf.getServiceFactory().setInvoker(new
> > BeanInvoker(service));
> > > >         sf.getServiceFactory().setWrapped(true);
> > > >
> > > >         return sf.create();
> > > > }
> > > >
> > > > This is almost exactly the same as the server code from
> > the demo - the
> > > > code that works. However, in my example I receive the
> > stack trace from
> > > > above on the sf.create() method.
> > > >
> > > > On 11/4/07, Liu, Jervis <[EMAIL PROTECTED]> wrote:
> > > >
> > > >> I probabaly should remove JAX-WS style client codes from
> > restful_http_binding demo, as it constantly causes
> > confusions. In theory, JAX-WS style client APIs should work
> > with RESTful services that published using CXF HTTP binding,
> > as this is symmetric to what the server side has to do to
> > marshal/unmarshal request/response. But in reality, this does
> > not work because a). This JAX-WS style client APIs support is
> > not completed yet. b). I don't think there will be much value
> > added by supporting JAX-WS style client APIs. This JAX-WS
> > style client APIs wont work without a WSDL, most RESTful
> > services wont have a WSDL. More comments about client side
> > REST API support can be found in [1].
> > > >>
> > > >> [1].
> > http://www.nabble.com/Using-verbs-other-than-GET-from-a-RESTfu
> > l-client-application-tf4628659.html
> > > >>
> > > >> Cheers,
> > > >> Jervis
> > > >>
> > > >>
> > > >>> -----Original Message-----
> > > >>> From: Todd Orr [mailto:[EMAIL PROTECTED]
> > > >>> Sent: 2007?11?5? 10:41
> > > >>> To: [email protected]
> > > >>> Subject: ClientFactoryBean AbstractMethodError
> > > >>>
> > > >>>
> > > >>> I have been trying to get a REST service up and
> > running. I believe the
> > > >>> server is up. However, creating the client is
> > problematic. Using the
> > > >>> following code borrowed from the bundled rest sample:
> > > >>>
> > > >>> JaxWsProxyFactoryBean sf = new JaxWsProxyFactoryBean();
> > > >>> sf.setServiceClass(MyServiceInterface.class);
> > > >>>
> > > >>> // Turn off wrapped mode to make our xml prettier
> > > >>> sf.getServiceFactory().setWrapped(false);
> > > >>>
> > > >>> // Use the HTTP Binding which understands the Java Rest
> > Annotations
> > > >>> sf.getClientFactoryBean().setBindingId(HttpBindingFactory.HTTP
> > > >>>
> > > >> _BINDING_ID);
> > > >>
> > > >>> sf.setAddress("http://localhost:8080/rest/";);
> > > >>> this.service = (MyServiceInterface) sf.create();
> > > >>>
> > > >>>
> > > >>> I receive the following exception:
> > > >>>
> > > >>> java.lang.AbstractMethodError:
> > > >>> org.apache.xerces.dom.DocumentImpl.getInputEncoding()Ljava/lan
> > > >>>
> > > >> g/String;
> > > >>
> > > >>>       at
> > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > > >>>       at
> > > >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess
> > > >>>
> > > >> orImpl.java:39)
> > > >>
> > > >>>       at
> > > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
> > > >>>
> > > >> odAccessorImpl.java:25)
> > > >>
> > > >>>       at java.lang.reflect.Method.invoke(Method.java:597)
> > > >>>       at
> > > >>> org.apache.ws.commons.schema.utils.DOMUtil.getInputEncoding(DO
> > > >>> MUtil.java:594)
> > > >>>       at
> > > >>> org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchem
> > > >>> aCollection.java:348)
> > > >>>       at
> > > >>> org.apache.cxf.databinding.source.AbstractDataBinding.addSchem
> > > >>> aDocument(AbstractDataBinding.java:73)
> > > >>>       at
> > > >>> org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding
> > > >>>
> > > >> .java:224)
> > > >>
> > > >>>       at
> > > >>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.bu
> > > >>> ildServiceFromClass(ReflectionServiceFactoryBean.java:293)
> > > >>>       at
> > > >>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.in
> > > >>> itializeServiceModel(ReflectionServiceFactoryBean.java:333)
> > > >>>       at
> > > >>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.cr
> > > >>> eate(ReflectionServiceFactoryBean.java:151)
> > > >>>       at
> > > >>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(Ja
> > > >>>
> > > >> xWsServiceFactoryBean.java:93)
> > > >>
> > > >>>       at
> > > >>> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.creat
> > > >>> eEndpoint(AbstractWSDLBasedEndpointFactory.java:74)
> > > >>>       at
> > > >>> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactory
> > > >>>
> > > >> Bean.java:51)
> > > >>
> > > >>>       at
> > > >>> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientPr
> > > >>>
> > > >> oxyFactoryBean.java:89)
> > > >>
> > > >>>       at
> > com.foo.bar.RestTest.injectDependencies(RestTest.java:30)
> > > >>>       at
> > > >>> org.springframework.test.AbstractDependencyInjectionSpringCont
> > > >>> extTests.prepareTestInstance(AbstractDependencyInjectionSpring
> > > >>>
> > > >> ContextTests.java:158)
> > > >>
> > > >>>       at
> > > >>> org.springframework.test.AbstractSingleSpringContextTests.setU
> > > >>> p(AbstractSingleSpringContextTests.java:88)
> > > >>>       at junit.framework.TestCase.runBare(TestCase.java:125)
> > > >>>       at
> > > >>> org.springframework.test.ConditionalTestCase.runBare(Condition
> > > >>>
> > > >> alTestCase.java:69)
> > > >>
> > > >>>       at
> > junit.framework.TestResult$1.protect(TestResult.java:106)
> > > >>>       at
> > junit.framework.TestResult.runProtected(TestResult.java:124)
> > > >>>       at junit.framework.TestResult.run(TestResult.java:109)
> > > >>>       at junit.framework.TestCase.run(TestCase.java:118)
> > > >>>       at junit.framework.TestSuite.runTest(TestSuite.java:208)
> > > >>>       at junit.framework.TestSuite.run(TestSuite.java:203)
> > > >>>       at
> > > >>> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReferen
> > > >>> ce.run(JUnit3TestReference.java:130)
> > > >>>       at
> > > >>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestEx
> > > >>>
> > > >> ecution.java:38)
> > > >>
> > > >>>       at
> > > >>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTest
> > > >>> s(RemoteTestRunner.java:460)
> > > >>>       at
> > > >>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTest
> > > >>> s(RemoteTestRunner.java:673)
> > > >>>       at
> > > >>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(Rem
> > > >>>
> > > >> oteTestRunner.java:386)
> > > >>
> > > >>>       at
> > > >>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(Re
> > > >>>
> > > >> moteTestRunner.java:196)
> > > >>
> > > >>> I read a post regarding a similar error due to the
> > XmlSchema version.
> > > >>> However, after checking, I do have the 1.3.2 version
> > specified in that
> > > >>> post
> > > >>>
> > (http://www.nabble.com/wsdl2java-problem-tf4651922.html#a13290874).
> > > >>>
> > > >>> Anyone have any other ideas?
> > > >>>
> > > >>> Thanks.
> > > >>>
> > > >>>
> > > >> ----------------------------
> > > >> IONA Technologies PLC (registered in Ireland)
> > > >> Registered Number: 171387
> > > >> Registered Address: The IONA Building, Shelbourne Road,
> > Dublin 4, Ireland
> > > >>
> > > >>
> > > >
> > > >
> > >
> >
>
> ----------------------------
> IONA Technologies PLC (registered in Ireland)
> Registered Number: 171387
> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>

Reply via email to