[ 
https://issues.apache.org/jira/browse/CXF-1620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12623687#action_12623687
 ] 

Bob Fields commented on CXF-1620:
---------------------------------

Verified still not working in CXF 2.1.2. I created a sample based on the 
samples\wsdl_first_wrapped with customized bindings, adding a DateTypes class. 
I added Adapter classes for date, time, dateTime for both Date and calendar 
types, and updated build.xml generate.code task to use the bindings. There are 
three binding files: 
JXBJavaType.xjb demonstrates jxb:javaType Customization from the jaxws 
namespace (works but produces the Adapter# classes) using XPATH node; 
XJCJavaType.xjb demonstrates the xjc:javaType Customization from the jxb 
namespace, which works for global customizations without having to use XPATH 
(also works for Jaxb XJC directly), but does not allow customization of the 
class names that you get from the jaxws namespace;
BADJAXWSJavaType.xjb demonstrates the xjc binding customization starting from 
the jaxws namespace, the same as the JXBJavaType except xjc:javaType is used 
instead of jxb:javaType.

The sample could eventually be added to the list of samples and the 6 classes 
which extend XMLAdapter could be added to the CXF code base. I'm sure there are 
other Adapter classes out there that are needed (I saw CurrencyAdapter in one 
test sample and MapAdapter in another).

Reading through the docs, it looks like multiple binding files can be passed to 
wsdl2java -b (separated by a space), that's a potential solution here because 
of the different namespaces but I was unable to get it to work. The build.xml 
generate.code task shows a call with the two binding files. wsdl2java attempts 
to parse the parameters (two files separated by a space) together as a single 
parameter and throws an IOException File not found.

> wsdl2java ignores jaxb2 xjc globalBindings with namespace xjc
> -------------------------------------------------------------
>
>                 Key: CXF-1620
>                 URL: https://issues.apache.org/jira/browse/CXF-1620
>             Project: CXF
>          Issue Type: Bug
>          Components: JAXB Databinding
>    Affects Versions: 2.0.6
>         Environment: CXF 2.0.6. Jaxb 2.0.5
>            Reporter: Bob Fields
>            Assignee: Daniel Kulp
>             Fix For: 2.0.8, 2.1.2
>
>
> JAXB databindings work fine as shown in wsdl2java bindings documentation for 
> customizing Date mapping. If I add the Jaxb2 specific customizations, they 
> are ignored in xjc. Specifically, add jxb:version="2.0" 
> jxb:extensionBindingPrefixes="xjc" 
> xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"; in the jaxws:bindings 
> declaration, and use something like <xjc:serializable> <xjc:simple> 
> <xjc:javaType adapter=""> in the jxb:globalBindings section. There's no error 
> or anything, the xjc bindings are simply ignored.
> One possibly related problem - if cxf-manifest.jar is in my environment 
> classpath, Jaxb2 xjc customizations cause the xjc ant task to fail even when 
> I set the classpath. I'm generating JAXB classes in a project unrelated to 
> CXF using Jaxb 2.0.5 xjc jar. I have to remove the manifest jar from the 
> classpath for xjc to work again.
> We specifically need xjc:simple to avoid JAXBElement creations and to add 
> @XmlRootElement where it would otherwise not appear. We also want 
> xjc:javaType adapter="" because the jxb:javaType print/parse bindings create 
> one Adapter class for each binding customization (not for each customization 
> type), which can be several hundred in very large webservice projects.
> A related improvement would be to add CXF DataTypeAdapter classes that extend 
> javax.xml.bind.annotation.adapters.XmlAdapter<String, Date> with a marshal 
> and unmarshal method, which looks like the generated AdapterX classes. I 
> would suggest four classes for date, time, dateTime, and integer (replacing 
> BigInteger with Integer).
> A sample project showing JAXB customized datatype bindings for wsdl2java 
> would be helpful too. If I get some time next week I'll create and submit one 
> based on the wsdl2java samples, with a working jxb binding and an xjc binding 
> that should work but doesn't. Unless this issue has already been noticed and 
> is being worked on (I didn't see anything related in JIRA).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to