[ 
https://issues.apache.org/jira/browse/AXIS2-1799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12466278
 ] 

Rich Scheuerle commented on AXIS2-1799:
---------------------------------------

I'm running tests on patch5.txt and will commit it later today.

Summary of Changes:

FaultDescriptionImpl:
    1) Changed the code to always use getAnnoWebFault instead of relying on the 
local annotation variable (which may be null). 
     2) Changed getFaultBean() logic.  If @WebFault does not exist or if the 
@WebFault.faultBean is not available, then the code will 
          (a) try to get the faultBean class by looking at the getFaultInfo 
method.  If this fails then 
          (b) uses the default algorithm described in JAX-WS 3.7.   The default 
is <SEI package>.<ExceptionName>Bean or 
               <SEI package>.jaxws.<ExceptionName>Bean
     3) Changed the getName()  default.  If @WebFault does not exist or if the 
@WebFault.name is not available, then the code will
          (a) try to get name from the @XMLRootElement of the faultBean .  If 
this fails then.
           (b) use the simple name of the fault bean class.
     4) Similar changes to getTargentNamespace.  If @WebFault does not exist or 
if the @WebFault.targetnamespace is not available, then
           (a) try to get the namespace from the @XMLRootElement of the 
faultBean.  If this fails then
            (b) use a pkg->ns conversion 

OperationDescriptionImpl:
      1)  Changed the visibility of  determineActualArtifactPackage from 
private to protected so that it can be used to find the faultBean
            artifact.   We might want to consider moving this utility to a 
static class

FaultServiceTest.
       1) Updated to validate some of this new code.

PropertyInfo
        1) Moved from org.apache.axis2.jaxws.wrapper.impl  to 
org.apache.axis2.jaxws.wrapper
        2) Added getPropertyName and getPropertyType methods.
 
LegacyExceptionUtil (new)
         1) Contains a isLegacyException method that is used by the marshaller 
to identify legacy exceptions.
         2) Contains a createFaultBean(exception) method that uses the JAX-WS 
3.7 algorithm to build a faultBean object.
              This code uses the existing WrapperTool in its implementation.
               The fault marshaller uses this method to createthe fault bean.  
The fault bean is then marshalled.
         3)  Contains a createFaultException(faultBean) method that creates a 
JAX-WS legacy fault exception.
               This code also uses the WrapperTool in its implementation.
               The fault  demarshaller uses this method to create an exception 
from the demarshalled fault bean.

MethodMarshallerUtils.
         1) Contains code to recognized legacy exceptions during marshalling 
and demarshalling of faults.
              


> JAX-WS Add support for legacy Exceptions
> ----------------------------------------
>
>                 Key: AXIS2-1799
>                 URL: https://issues.apache.org/jira/browse/AXIS2-1799
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>            Reporter: Rich Scheuerle
>         Assigned To: Rich Scheuerle
>         Attachments: patch1.txt, patch2.txt, patch3.txt, patch4.txt, 
> patch5.txt
>
>
> JAX-WS requires support for legacy Exception classes.
> A legacy Exception:
>     does not have an @WebFault annotation and/or
>     does not have the constructor/methods defined in chapter 2.5 of the 
> specfication.
> The mechanism for marshalling a legacy exception is implied in section 3.7 of 
> the specification.
> The mechanism for unmarshalling a legacy exception are not discussed and will 
> require proprietary heuristics.  
> I will add more information as I investigate solutions

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to