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
