[ 
https://issues.apache.org/jira/browse/CXF-1932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Murphy updated CXF-1932:
-------------------------------

    Component/s: JAX-WS Runtime
    Description: 
If you have a service endpoint implementation that does not specify the WSDL 
location, with some methods that are not WebMethods and the bare parameter 
style is used, then CXF will fail to publish the enpoint.

When deploying on tomcat I see this error:
{quote}
04-Dec-2008 14:24:05 org.springframework.web.context.ContextLoader 
initWebApplicationContext
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 
'personService': Invocation of init method failed; nested exception is 
javax.xml.ws.WebServiceException: 
org.apache.cxf.service.factory.ServiceConstructionException: 
Service class org.apache.cxf.springtest.PersonImpl method getMultiMap part 
{http://cxf.apache.org/springtest}getMultiMapResponse cannot be mapped to 
schema. 
Check for use of a JAX-WS-specific type without the JAX-WS service factory bean.
Caused by: javax.xml.ws.WebServiceException: 
org.apache.cxf.service.factory.ServiceConstructionException: 
Service class org.apache.cxf.springtest.PersonImpl method getMultiMap part 
{http://cxf.apache.org/springtest}getMultiMapResponse cannot be mapped to 
schema. 
Check for use of a JAX-WS-specific type without the JAX-WS service factory bean.
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:258)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:192)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:380)
        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:585)        
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:3764)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831)
        at 
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720)
        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1218)
        at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
        at 
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306)
        at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
        at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
        at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Service
class org.apache.cxf.springtest.PersonImpl method getMultiMap part 
{http://cxf.apache.org/springtest}getMultiMapResponse cannot be mapped to 
schema. 
Check for use of a JAX-WS-specific type without the JAX-WS service factory bean.
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createBareMessage(ReflectionServiceFactoryBean.java:969)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:347)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:383)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:169)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:98)
        at 
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:98)
        at 
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:114)
        at 
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:160)
        at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:327)
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:242)
        ... 35 more
04-Dec-2008 14:24:05 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
04-Dec-2008 14:24:05 org.apache.catalina.core.StandardContext start
SEVERE: Context [/springtest-0.0.1-SNAPSHOT] startup failed due to previous 
errors
{quote}

Note this was discussed last month in [this 
thread|http://www.nabble.com/commit%3A-r688596-cxf-2.0.9-tt20500264.html] and 
the problematic area of code was highlighted. Where a method will be 
incorrectly returned as a webmethod when it is not defined.

Note this seems to work in 2.0.8 and 2.1.3 (didn't try an earlier 2.1 version). 
ServiceMix 3 uses CXF 2.0.9 in it's CXF Service Engine where the WSDL location 
cannot be specified.

  was:
If you have a service endpoint implementation that does not specify the WSDL 
location, with some methods that are not WebMethods and the bare parameter 
style is used, then CXF will fail to publish the enpoint.

When deploying on tomcat I see this error:
{code}
04-Dec-2008 14:24:05 org.springframework.web.context.ContextLoader 
initWebApplicationContext
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 
'personService': Invocation of init method failed; nested exception is 
javax.xml.ws.WebServiceException: 
org.apache.cxf.service.factory.ServiceConstructionException: 
Service class org.apache.cxf.springtest.PersonImpl method getMultiMap part 
{http://cxf.apache.org/springtest}getMultiMapResponse cannot be mapped to 
schema. 
Check for use of a JAX-WS-specific type without the JAX-WS service factory bean.
Caused by: javax.xml.ws.WebServiceException: 
org.apache.cxf.service.factory.ServiceConstructionException: 
Service class org.apache.cxf.springtest.PersonImpl method getMultiMap part 
{http://cxf.apache.org/springtest}getMultiMapResponse cannot be mapped to 
schema. 
Check for use of a JAX-WS-specific type without the JAX-WS service factory bean.
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:258)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:192)
        at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:380)
        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:585)        
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:3764)
        at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
        at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
        at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831)
        at 
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720)
        at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1218)
        at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
        at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
        at 
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306)
        at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
        at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
        at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Service
class org.apache.cxf.springtest.PersonImpl method getMultiMap part 
{http://cxf.apache.org/springtest}getMultiMapResponse cannot be mapped to 
schema. 
Check for use of a JAX-WS-specific type without the JAX-WS service factory bean.
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createBareMessage(ReflectionServiceFactoryBean.java:969)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:347)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:383)
        at 
org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:169)
        at 
org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:98)
        at 
org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:98)
        at 
org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:114)
        at 
org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:160)
        at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:327)
        at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:242)
        ... 35 more
04-Dec-2008 14:24:05 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
04-Dec-2008 14:24:05 org.apache.catalina.core.StandardContext start
SEVERE: Context [/springtest-0.0.1-SNAPSHOT] startup failed due to previous 
errors
{code}

Note this was discussed last month in [this 
thread|http://www.nabble.com/commit%3A-r688596-cxf-2.0.9-tt20500264.html] and 
the problematic area of code was highlighted. Where a method will be 
incorrectly returned as a webmethod when it is not defined.

Note this seems to work in 2.0.8 and 2.1.3 (didn't try an earlier 2.1 version). 
ServiceMix 3 uses CXF 2.0.9 in it's CXF Service Engine where the WSDL location 
cannot be specified.


> Spring injection with bare parameter style fails to deploy
> ----------------------------------------------------------
>
>                 Key: CXF-1932
>                 URL: https://issues.apache.org/jira/browse/CXF-1932
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.0.9
>         Environment: Reproduced this on CXF 2.0.9 with Tomcat 5.5.27, the app 
> deploys on 2.1.3
>            Reporter: Martin Murphy
>         Attachments: springtest.zip
>
>
> If you have a service endpoint implementation that does not specify the WSDL 
> location, with some methods that are not WebMethods and the bare parameter 
> style is used, then CXF will fail to publish the enpoint.
> When deploying on tomcat I see this error:
> {quote}
> 04-Dec-2008 14:24:05 org.springframework.web.context.ContextLoader 
> initWebApplicationContext
> SEVERE: Context initialization failed
> org.springframework.beans.factory.BeanCreationException: Error creating bean 
> with name 
> 'personService': Invocation of init method failed; nested exception is 
> javax.xml.ws.WebServiceException: 
> org.apache.cxf.service.factory.ServiceConstructionException: 
> Service class org.apache.cxf.springtest.PersonImpl method getMultiMap part 
> {http://cxf.apache.org/springtest}getMultiMapResponse cannot be mapped to 
> schema. 
> Check for use of a JAX-WS-specific type without the JAX-WS service factory 
> bean.
> Caused by: javax.xml.ws.WebServiceException: 
> org.apache.cxf.service.factory.ServiceConstructionException: 
> Service class org.apache.cxf.springtest.PersonImpl method getMultiMap part 
> {http://cxf.apache.org/springtest}getMultiMapResponse cannot be mapped to 
> schema. 
> Check for use of a JAX-WS-specific type without the JAX-WS service factory 
> bean.
>         at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:258)
>         at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:192)
>         at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:380)
>         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:585)        
> 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:3764)
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
>         at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
>         at 
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831)
>         at 
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720)
>         at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
>         at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1218)
>         at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
>         at 
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
>         at 
> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306)
>         at 
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
>         at 
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
>         at 
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.cxf.service.factory.ServiceConstructionException: 
> Service
> class org.apache.cxf.springtest.PersonImpl method getMultiMap part 
> {http://cxf.apache.org/springtest}getMultiMapResponse cannot be mapped to 
> schema. 
> Check for use of a JAX-WS-specific type without the JAX-WS service factory 
> bean.
>         at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createBareMessage(ReflectionServiceFactoryBean.java:969)
>         at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:347)
>         at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:383)
>         at 
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:169)
>         at 
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:98)
>         at 
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:98)
>         at 
> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:114)
>         at 
> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:160)
>         at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:327)
>         at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:242)
>         ... 35 more
> 04-Dec-2008 14:24:05 org.apache.catalina.core.StandardContext start
> SEVERE: Error listenerStart
> 04-Dec-2008 14:24:05 org.apache.catalina.core.StandardContext start
> SEVERE: Context [/springtest-0.0.1-SNAPSHOT] startup failed due to previous 
> errors
> {quote}
> Note this was discussed last month in [this 
> thread|http://www.nabble.com/commit%3A-r688596-cxf-2.0.9-tt20500264.html] and 
> the problematic area of code was highlighted. Where a method will be 
> incorrectly returned as a webmethod when it is not defined.
> Note this seems to work in 2.0.8 and 2.1.3 (didn't try an earlier 2.1 
> version). ServiceMix 3 uses CXF 2.0.9 in it's CXF Service Engine where the 
> WSDL location cannot be specified.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to