[ https://issues.apache.org/jira/browse/CXF-4750?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-4750. ------------------------------ Resolution: Fixed OK. This now works. If you have a type that extends an enumeration, XmlSchemas doesn't map those to an enumeration. I've updated the code generator to use the same type mapping in this case. For example, in the SampleMethodDocument.java, the getSampleValue() call returns an ESample and not an Enum. Thus, we need to make sure we use that ESample type instead. > Wrong return type for enumeration in generated service interface using > xmlbeans > ------------------------------------------------------------------------------- > > Key: CXF-4750 > URL: https://issues.apache.org/jira/browse/CXF-4750 > Project: CXF > Issue Type: Bug > Components: OtherDatabindings, Tooling > Affects Versions: 2.3.11, 2.7.2 > Reporter: Roland Mueller > Assignee: Daniel Kulp > Fix For: 2.5.9, 2.6.6, 2.7.3 > > Attachments: enumtest-2.7.2.zip, enumtest-2.7.3-SNAPSHOT.zip, > enumtest.zip > > > I have a WSDL which has an enumeration as the response type for a SOAP > operation. From that, I am generating Java classes using the > cxf-codegen-plugin with xmlbeans. > The generated service interface has a String as response type. If my > implementation returns a String containing one of the specified enum values, > I get an Exception (using CXF 2.3.11): > org.apache.cxf.interceptor.Fault > at > org.apache.cxf.databinding.AbstractWrapperHelper.createWrapperObject(AbstractWrapperHelper.java:107) > at > org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:105) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) > at > org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) > at > org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102) > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464) > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) > at > org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:751) > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159) > If I manually change the return type of the generated interface and my > implementation from String to "org.apache.test.ETestResponseType.Enum", > everything works well. > I could only test the wsdl2java generation with a newer CXF version, but > 2.7.2 also generates a String as the response type. > I will attach a sample project. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira