cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Manjunatha Nakshathri <Manjunatha_Nakshat...@mindtree.com>
Subject Migrating from XFire to CXF...
Date Tue, 24 Feb 2009 14:43:16 GMT
Dear all,

We are facing some issue while implementing the webservices using the XFire(version 1.2.1)
(JBoss as server).

When i am trying to access the WSDL through the url ( http://localhost:8080/acs/services/ReleaseManager?wsdl
), server is throwing the following exception :

javax.servlet.ServletException: The name "" is not legal for JDOM/XML namespaces: Namespace
URIs must be non-null and non-empty Strings.
org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:143)
org.codehaus.xfire.transport.http.XFireServlet.doGet(XFireServlet.java:107)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause

org.jdom.IllegalNameException: The name "" is not legal for JDOM/XML namespaces: Namespace
URIs must be non-null and non-empty Strings.
org.jdom.Namespace.getNamespace(Namespace.java:164)
org.codehaus.xfire.util.NamespaceHelper.getUniquePrefix(NamespaceHelper.java:58)
org.codehaus.xfire.aegis.type.basic.BeanType.writeSchema(BeanType.java:560)
org.codehaus.xfire.wsdl.AbstractWSDL.addDependency(AbstractWSDL.java:224)
org.codehaus.xfire.wsdl.AbstractWSDL.addDependency(AbstractWSDL.java:233)
org.codehaus.xfire.wsdl11.builder.WSDLBuilder.createDocLitPart(WSDLBuilder.java:403)
org.codehaus.xfire.wsdl11.builder.WSDLBuilder.createPart(WSDLBuilder.java:355)
org.codehaus.xfire.wsdl11.builder.WSDLBuilder.writeParameters(WSDLBuilder.java:509)

cont.......

Please find attached service.xml.

If we comment the <serviceFactory>#castorServiceFactory</serviceFactory> in the
service.xml; then we are able to access the wsdl. But when we call the service using the client
(Using the ObjectServiceFactory().create() and not the JaxbServiceFactory().create() ), then
in the client side it gives following error:

org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault:
No write method for property {http://xml.model.calculation.jfoundation.pinkroccade.com}choiceValue
in class com.pinkroccade.jfoundation.calculation.model.xml.ReleaseOpen

org.codehaus.xfire.fault.XFireFault: No write method for property {http://xml.model.calculation.jfoundation.pinkroccade.com}choiceValue
in class com.pinkroccade.jfoundation.calculation.model.xml.ReleaseOpen (Complete error log
attached ErrorLog.rtf)

This error is because ReleaseOpen.java file does not have any setter method for the choiceValue.
This ReleaseOpen class is generated by release-impact-worksheet-3.2.0.xsd using castor. Similar
to this class there are lots of class files which are generated using the castor and which
don't have some setter methods inside them. So editing the files is not a good idea (And these
are generated every time using the XSD file).

We searched through the XFire site also ( http://jira.codehaus.org/browse/XFIRE-509 ). We
tried using the XFire-all-1.2.3.jar. But we are not able to crack the issue.

We are using the castor to generate the java classes and we should be able to pass these objects
(rather than converting them to String and passing it on server) over the server.

I have following question.

1.       What should I do to make this work? Is there any thing with the way I am invoking
the service?

2.       Does migrating from XFire to CXF will solve this issue? If yes, then which version
of CXF should I use?

3.       Is there any guide for Implementation of CXF with castor?

Thanks for your effort and also for your valuable time.



Thanks and Regards,

Manjunath

________________________________
http://www.mindtree.com/email/disclaimer.html

Mime
View raw message