[
https://issues.apache.org/jira/browse/CXF-2076?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12679806#action_12679806
]
Daniel Kulp commented on CXF-2076:
----------------------------------
[20:51] <dkulp> There are two ways to approach it.
[20:52] <dkulp> 1) Make sure the code generators ONLY generate BARE mode with
XMLBeans.
[20:52] <dkulp> Which I'd be OK with.
[20:52] <willem> dkulp: Do I need to change the template file to get the
xmlbeans artifacts work out of box?
[20:53] <dkulp> 2) Add some methods to AbstractDataBinding for creating and
filling in the wrappers.
[20:53] <dkulp> (2) would be a bit complex.
[20:53] <dkulp> You shouldn't.
[20:54] <willem> dkulp: I didn't do any tools or binding relates work before.
Can you show me some examples?
[20:55] <dkulp> Hmm......
[20:57] <dkulp> Long time since I looked into some of the databinding code.
[20:58] <dkulp> Looking at the code, to force bare mode, you MAY just need to
change the getWrappedElementType method of the XMLBeansToolingDataBinding to
return null.
[20:58] <willem> OK, I just want to a find a generatic way to fix this xmlbean
issue. 1) will let xmlbean's not support wrapper any more, am I right?
[20:59] <dkulp> Right.
[20:59] <willem> 1) just be a short time solution.
[21:01] <dkulp> Well, supporting the wrapper types in a generic fasion would
require major re-architectingg of the databinding.
[21:01] <dkulp> Which would be a 3.0 level thing.
[21:01] <dkulp> Actually, the other thing you can try:
[21:02] <willem> Please shot.
[21:02] <dkulp> In WrapperClassOutInterceptor, check if the databinding class
name contains JAXB
[21:02] <dkulp> If not, skip.
[21:02] <willem> Yes, this is other way to do it.
[21:02] <dkulp> Actually, in the JAXWSServiceFactory, if the databinding isn't
jaxb, don't even add the wrapepr class in/out interceptors
[21:04] <willem> So the wrapper class will only work for JAXB. The user will
not be affected.
[21:04] <dkulp> Maybe.
[21:04] <dkulp> I DON'T know if XMLBeans will tollerate parsing from the child
elements or not.
> InstantiationException trying to create wrapper object when using xmlbeans
> databinding
> --------------------------------------------------------------------------------------
>
> Key: CXF-2076
> URL: https://issues.apache.org/jira/browse/CXF-2076
> Project: CXF
> Issue Type: Bug
> Components: Tooling
> Affects Versions: 2.1.4
> Environment: 2.1.4, trunk
> Reporter: Dave Stanley
> Attachments: cxf_xmlbeans.tar.gz, cxf_xmlbeans_sample.patch
>
>
> I have modified the wsdl_first sample to use the xmlbeans databinding.
> Xmlbeans is generating both an interface and a concrete type for each of the
> types defined in my wsdl. This is causing a problem with CXF as its using the
> interface rather than the impl to instantiate request and response wrapper
> classes.
> This results in the stack below which shows the InstantiationException. Note
> the type is org.apache.helloWorldSoapHttp.types.SayHiDocument - I think it
> should be .. org.apache.helloWorldSoapHttp.types.impl.SayHiDocumentImpl ?
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault:
> org.apache.helloWorldSoapHttp.types.SayHiDocument
> at
> org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:116)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:469)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:251)
> at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:123)
> at $Proxy69.sayHi(Unknown Source)
> at demo.hw.client.Client.main(Client.java:71)
> 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.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:290)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.cxf.interceptor.Fault:
> org.apache.helloWorldSoapHttp.types.SayHiDocument
> at
> org.apache.cxf.jaxws.interceptors.WrapperHelper$ReflectWrapperHelper.createWrapperObject(WrapperHelper.java:312)
> at
> org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:102)
> ... 14 more
> Caused by: java.lang.InstantiationException:
> org.apache.helloWorldSoapHttp.types.SayHiDocument
> at java.lang.Class.newInstance0(Class.java:335)
> at java.lang.Class.newInstance(Class.java:303)
> at
> org.apache.cxf.jaxws.interceptors.WrapperHelper$ReflectWrapperHelper.createWrapperObject(WrapperHelper.java:277)
> ... 15 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.