[ 
https://issues.apache.org/jira/browse/CXF-1032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Garry Watkins updated CXF-1032:
-------------------------------


Sorry, I am not an expert with all of the annotations.  XmlTransient should 
work per spec, however, when I change the above code it gives me the following: 
 JAXB annotation is placed on a method that is not a JAXB property this problem 
is related to the following location:  at 
@javax.xml.bind.annotation.XmlTransient() ...  So is that a bug in other parts 
of the code?


> @WebMethod (exclude = true)  are not being excluded
> ---------------------------------------------------
>
>                 Key: CXF-1032
>                 URL: https://issues.apache.org/jira/browse/CXF-1032
>             Project: CXF
>          Issue Type: Bug
>          Components: JAXB Databinding
>    Affects Versions: 2.0.1
>         Environment: Mac OS/X JDK 1.5
>            Reporter: Garry Watkins
>
> Methods with @WebMethod(exclude = true) are still being included when 
> bringing in classes that will have WSDL generated.  I have tracked down the 
> issue to the org.apache.cxf.jaxb.JAXBContextInitializer class.
> I have included the replacement method here 
>     private void walkReferences(Class<?> cls) {
>         if (cls.getName().startsWith("java.")
>             || cls.getName().startsWith("javax.")) {
>             return;
>         }
>         //walk the public fields/methods to try and find all the classes.  
> JAXB will only load the 
>         //EXACT classes in the fields/methods if they are in a different 
> package.   Thus,
>         //subclasses won't be found and the xsi:type stuff won't work at all.
>         //We'll grab the public field/method types and then add the 
> ObjectFactory stuff 
>         //as well as look for jaxb.index files in those packages.
>         
>         Field fields[] = cls.getFields();
>         for (Field f : fields) {
>             addType(f.getGenericType());
>         }
>         Method methods[] = cls.getMethods();
>         for (Method m : methods) {  
>                 // START The following  lines were added by GW
>               WebMethod wm = m.getAnnotation(WebMethod.class);  
>               if (null != wm){
>                       if (wm.exclude()){
>                               System.out.println("Skipping method " + 
> m.toString());
>                               continue;
>                       }
>               }
>                 //END GW
>             addType(m.getGenericReturnType());
>             for (Type t : m.getGenericParameterTypes()) {
>                 addType(t);
>             }
>         }
>     }

-- 
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