[jbossws-issues] [JBoss JIRA] Commented: (JBWS-2112) Cannot use CXF with endpoint API

Jervis Liu (JIRA) jira-events at lists.jboss.org
Sun Apr 13 22:34:04 EDT 2008


    [ http://jira.jboss.com/jira/browse/JBWS-2112?page=comments#action_12408490 ] 
            
Jervis Liu commented on JBWS-2112:
----------------------------------

To make this work, we need to do a tight CXF-JBOSS integration on the CXF side, i.e., make CXF support Endpoint.publish(org.jboss.wsf.spi.http.HttpContext). However do we really need to use this Endpoint.publish(org.jboss.wsf.spi.http.HttpContext) API? Besides the contextRoot (HttpContext.getContextRoot()), what else information do we need to get from org.jboss.wsf.spi.http.HttpContext in order to publish a JAX-WS endpoint in JBoss? We should stick to the more generic API like Endpoint.publish(String address) if it is possible.  Obviously we dont want to see CXF distribution is not self-contained without various jars from JBoss, Geronimo and all other servers etc.

On the other hand, we can improve CXF error message to make Endpoint.publish(Object serverContext) throw a IllegalArgumentException instead failed silently when an unsupported serverContext is passed in.



> Cannot use CXF with endpoint API
> --------------------------------
>
>                 Key: JBWS-2112
>                 URL: http://jira.jboss.com/jira/browse/JBWS-2112
>             Project: JBoss Web Services
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: jbossws-cxf
>            Reporter: Thomas Diesler
>
> [tdiesler at tddell trunk]$ ant -Dtest=jaxws/endpoint test
> tests-run-internal:
>     [junit] Running org.jboss.test.ws.jaxws.endpoint.EndpointTestCase
>     [junit] Retrieving document at 'http://localhost:8080/jaxws-endpoint?wsdl'.
>     [junit] Tests run: 3, Failures: 0, Errors: 3, Time elapsed: 4.628 sec
>     [junit] Test org.jboss.test.ws.jaxws.endpoint.EndpointTestCase FAILED
> java.lang.ClassNotFoundException: org.apache.cxf.binding.soap.SoapBindingFactory
>         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
>         at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
>         at org.springframework.util.ClassUtils.forName(ClassUtils.java:229)
>         at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:327)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1073)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:348)
>         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.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:757)
>         at org.apache.cxf.configuration.spring.AbstractSpringBeanMap.get(AbstractSpringBeanMap.java:136)
>         at org.apache.cxf.configuration.spring.AbstractSpringBeanMap$SpringBeanMapWrapper.get(AbstractSpringBeanMap.java:236)
>         at org.apache.cxf.binding.BindingFactoryManagerImpl.getBindingFactory(BindingFactoryManagerImpl.java:80)
>         at org.apache.cxf.wsdl11.WSDLServiceUtils.getBindingFactory(WSDLServiceUtils.java:44)
>         at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildBinding(WSDLServiceBuilder.java:379)
>         at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:271)
>         at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:153)
>         at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:117)
>         at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:136)
>         at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:127)
>         at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:55)
>         at javax.xml.ws.Service.<init>(Service.java:57)
>         at javax.xml.ws.Service.create(Service.java:302)
>         at org.jboss.test.ws.jaxws.endpoint.EndpointServlet.doGet(EndpointServlet.java:87)
> [tdiesler at tddell jboss-4.2.2.GA]$ find . -name "*.jar" | xargs grep SoapBindingFactory
> Binary file ./client/cxf-2.0.5-incubator.jar matches
> Binary file ./server/default/deploy/jbossws.sar/cxf-2.0.5-incubator.jar matches
> Binary file ./server/default/tmp/deploy/tmp20619cxf-2.0.5-incubator.jar matches
> This seems to be a classloading issue

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jbossws-issues mailing list