[
https://issues.apache.org/jira/browse/CXF-2442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Kulp resolved CXF-2442.
------------------------------
Resolution: Fixed
Fix Version/s: 2.2.4
2.1.7
Assignee: Daniel Kulp
> fail to create a service model from class when: BARE parameter style,
> XmlBeans data binding, XmlBeans' source is WSDL file
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: CXF-2442
> URL: https://issues.apache.org/jira/browse/CXF-2442
> Project: CXF
> Issue Type: Bug
> Components: OtherDatabindings
> Affects Versions: 2.2.3
> Reporter: Michael Klimiuk
> Assignee: Daniel Kulp
> Priority: Blocker
> Fix For: 2.1.7, 2.2.4
>
> Attachments: XmlBeansSchemaInitializer.java
>
>
> SCENARIO:
> 1. Given WSDL with data types defined inside (imports are not used).
> 2. Generate service interface and xml beans.
> 3. Create a client proxy using ClientProxyFactoryBean:
> - use BARE parameter style;
> - use XmlBeans data binding;
> - do not specify WSDL location.
> ACTUAL RESULT:
> Exception in thread "main"
> org.apache.cxf.service.factory.ServiceConstructionException: Service class
> org.example.MyService method queryMethod part
> {http://example.org/services/myservice}arg0 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:1090)
> at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:392)
> at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:444)
> at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:195)
> at
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:100)
> at
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:52)
> at
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:102)
> at org.example.services.MyServiceClient.main(MyServiceClient.java:52)
> EXPECTED RESULT:
> Successful creation of a client proxy.
> ANALYSIS:
> When the service model is build from the class the
> XmlBeansSchemaInitializer.mapClass() method is executed for web service data
> types.
> The method contains the following condition:
> if (sourceName.endsWith("wsdl")) {
> return;
> }
> Our source is WSDL with data types defined inside (imports are not used), so
> the MessagePartInfo attributes are not fully populated due to this condition.
> These attributes are missed and
> ReflectionServiceFactoryBean.createBareMessage() throws the exception.
> I assume the condition should be removed and the logic should be updated to
> take into account definitions of data types contained in WSDL.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.