You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Todd Orr <to...@gmail.com> on 2007/11/05 03:41:04 UTC

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/lang/String;
	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.apache.ws.commons.schema.utils.DOMUtil.getInputEncoding(DOMUtil.java:594)
	at org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:348)
	at org.apache.cxf.databinding.source.AbstractDataBinding.addSchemaDocument(AbstractDataBinding.java:73)
	at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:224)
	at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:293)
	at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:333)
	at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:151)
	at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:93)
	at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:74)
	at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:51)
	at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:89)
	at com.foo.bar.RestTest.injectDependencies(RestTest.java:30)
	at org.springframework.test.AbstractDependencyInjectionSpringContextTests.prepareTestInstance(AbstractDependencyInjectionSpringContextTests.java:158)
	at org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:88)
	at junit.framework.TestCase.runBare(TestCase.java:125)
	at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.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.JUnit3TestReference.run(JUnit3TestReference.java:130)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.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.

Re: ClientFactoryBean AbstractMethodError

Posted by Todd Orr <to...@gmail.com>.
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 <jl...@iona.com> 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:torr0101@gmail.com]
> > Sent: 2007?11?6? 2:06
> > To: cxf-user@incubator.apache.org
> > Subject: Re: ClientFactoryBean AbstractMethodError
> >
> >
> > That seems to have worked. Thanks!
> >
> > On 11/5/07, Willem Jiang <ni...@iona.com> 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 <jl...@iona.com> 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:torr0101@gmail.com]
> > > >>> Sent: 2007?11?5? 10:41
> > > >>> To: cxf-user@incubator.apache.org
> > > >>> 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
>

RE: ClientFactoryBean AbstractMethodError

Posted by "Liu, Jervis" <jl...@iona.com>.
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:torr0101@gmail.com]
> Sent: 2007?11?6? 2:06
> To: cxf-user@incubator.apache.org
> Subject: Re: ClientFactoryBean AbstractMethodError
> 
> 
> That seems to have worked. Thanks!
> 
> On 11/5/07, Willem Jiang <ni...@iona.com> 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 <jl...@iona.com> 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:torr0101@gmail.com]
> > >>> Sent: 2007?11?5? 10:41
> > >>> To: cxf-user@incubator.apache.org
> > >>> 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

Re: ClientFactoryBean AbstractMethodError

Posted by Todd Orr <to...@gmail.com>.
That seems to have worked. Thanks!

On 11/5/07, Willem Jiang <ni...@iona.com> 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 <jl...@iona.com> 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-RESTful-client-application-tf4628659.html
> >>
> >> Cheers,
> >> Jervis
> >>
> >>
> >>> -----Original Message-----
> >>> From: Todd Orr [mailto:torr0101@gmail.com]
> >>> Sent: 2007?11?5? 10:41
> >>> To: cxf-user@incubator.apache.org
> >>> 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
> >>
> >>
> >
> >
>

Re: ClientFactoryBean AbstractMethodError

Posted by Willem Jiang <ni...@iona.com>.
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 <jl...@iona.com> 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-RESTful-client-application-tf4628659.html
>>
>> Cheers,
>> Jervis
>>
>>     
>>> -----Original Message-----
>>> From: Todd Orr [mailto:torr0101@gmail.com]
>>> Sent: 2007?11?5? 10:41
>>> To: cxf-user@incubator.apache.org
>>> 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
>>
>>     
>
>   

Re: ClientFactoryBean AbstractMethodError

Posted by Todd Orr <to...@gmail.com>.
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 <jl...@iona.com> 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-RESTful-client-application-tf4628659.html
>
> Cheers,
> Jervis
>
> > -----Original Message-----
> > From: Todd Orr [mailto:torr0101@gmail.com]
> > Sent: 2007?11?5? 10:41
> > To: cxf-user@incubator.apache.org
> > 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
>

RE: ClientFactoryBean AbstractMethodError

Posted by "Liu, Jervis" <jl...@iona.com>.
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-RESTful-client-application-tf4628659.html

Cheers,
Jervis

> -----Original Message-----
> From: Todd Orr [mailto:torr0101@gmail.com]
> Sent: 2007?11?5? 10:41
> To: cxf-user@incubator.apache.org
> 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