You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Sergey Beryozkin (JIRA)" <ji...@apache.org> on 2008/10/17 17:48:45 UTC
[jira] Commented: (CXF-1871) I tried to configure
that ends in a java.lang.IndexOutOfBoundsException:
Index: 0, Size: 0 during the jaxrs initialazion.
[ https://issues.apache.org/jira/browse/CXF-1871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12640548#action_12640548 ]
Sergey Beryozkin commented on CXF-1871:
---------------------------------------
Hi Frank
At the moment JAX-RS runtime can not reuse org.apache.cxf.jaxb.JAXBDataBinding, rather it uses its own JAXBElementProvider.
I've just committed soem changes, you can achive the same effect by explicitly registering JAXRS JAXB Provider :
<jaxrs:server id="bookservice" address="/">
<jaxrs:serviceBeans>
<ref bean="petstore"/>
<ref bean="bookstore"/>
</jaxrs:serviceBeans>
<jaxrs:providers>
<ref bean="jaxbProvider"/>
</jaxrs:providers>
</jaxrs:server>
<bean id="jaxbProvider" class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
<property name="marshallerProperties">
<map>
<entry>
<key>
<value>com.sun.xml.bind.namespacePrefixMapper</value>
</key>
<ref bean="NamespacePrefixMapper" />
</entry>
</map>
</property>
</bean>
> I tried to configure <jaxrs:serviceFactory> that ends in a java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 during the jaxrs initialazion.
> ------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CXF-1871
> URL: https://issues.apache.org/jira/browse/CXF-1871
> Project: CXF
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.1.3
> Environment: apache cxf 2.1.3-SNAPSHOT
> maven 2 based build
> apache tomcat 6.0.18
> jdk 1.6
> Reporter: Frank Ittermann
>
> I want to register my own jaxb com.sun.xml.bind.namespacePrefixMapper implementation for jaxrs. For jaxws it works great.
> My jaxrs config look something like this:
> <jaxrs:server name="xml" id="xmlserviceserver" address="/xml/2008-10-06">
> <jaxrs:serviceBeans>
> ...
> </jaxrs:serviceBeans>
> <jaxrs:serviceFactory>
> <bean class="org.apache.cxf.jaxrs.JAXRSServiceFactoryBean">
> <property name="dataBinding">
>
> <bean class="org.apache.cxf.jaxb.JAXBDataBinding">
> <property name="marshallerProperties">
> <map>
> <entry>
> <key>
> <value>com.sun.xml.bind.namespacePrefixMapper</value>
> </key>
> <ref bean="NamespacePrefixMapper" />
> </entry>
> </map>
> </property>
> </bean>
> </property>
> </bean>
> </jaxrs:serviceFactory>
> </jaxrs:server>
> The following exception is thrown.
> org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xmlserviceserver': Invocation of init method failed; nested exception is java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> Caused by:
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> at java.util.ArrayList.RangeCheck(ArrayList.java:547)
> at java.util.ArrayList.get(ArrayList.java:322)
> at org.apache.cxf.jaxrs.JAXRSServiceImpl.getName(JAXRSServiceImpl.java:60)
> at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.createEndpointInfo(JAXRSServerFactoryBean.java:198)
> at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.createEndpoint(JAXRSServerFactoryBean.java:146)
> at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:88)
> 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.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1242)
> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1208)
> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
> at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
> at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
> at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
> at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
> at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
> at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
> at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
> at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
> at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
> at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> at org.apache.catalina.core.StandardService.start(StandardService.java:516)
> at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
> 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.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> If i uncomment the <jaxrs:serviceFactory> tag than it works.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.