[ 
https://issues.apache.org/jira/browse/AXIS2-4414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12975237#action_12975237
 ] 

Amila Chinthaka Suriarachchi commented on AXIS2-4414:
-----------------------------------------------------

Have you create the service using POJO?

In fact sending the stack trance to the client is wrong. it is a security risk. 
Can you please send your wsdl file?



> When instantiating the ExceptionException class, add AxisFault to it (as 
> proper reason chaining)
> ------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4414
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4414
>             Project: Axis2
>          Issue Type: New Feature
>          Components: codegen
>    Affects Versions: 1.5
>         Environment: vista sun-jdk1.5
>            Reporter: Ralf Hauser
>
> codegen produces the below piece of code. Unfortunately, valuable information 
> such as server-side stack-trace is lost with this.
> Suggestion:
> 1) add AxisFault to the generated ExceptionException class
> 2) if an AxisFault is available add it to the ExceptionException
> <<}catch(org.apache.axis2.AxisFault f){
>             org.apache.axiom.om.OMElement faultElt = f.getDetail();
>             if (faultElt!=null){
>                 if (faultExceptionNameMap.containsKey(faultElt.getQName())){
>                     //make the fault by reflection
>                     try{
>                         java.lang.String exceptionClassName = 
> (java.lang.String)faultExceptionClassNameMap.get(faultElt.getQName());
>                         java.lang.Class exceptionClass = 
> java.lang.Class.forName(exceptionClassName);
>                         java.lang.Exception ex=
>                                 (java.lang.Exception) 
> exceptionClass.newInstance();
>                         //message class
>                         java.lang.String messageClassName = 
> (java.lang.String)faultMessageMap.get(faultElt.getQName());
>                         java.lang.Class messageClass = 
> java.lang.Class.forName(messageClassName);
>                         java.lang.Object messageObject = 
> fromOM(faultElt,messageClass,null);
>                         java.lang.reflect.Method m = 
> exceptionClass.getMethod("setFaultMessage",
>                                    new java.lang.Class[]{messageClass});
>                         m.invoke(ex,new java.lang.Object[]{messageObject});
>                         
>                         if (ex instanceof 
> com.privasphere.qualsig.quovadis.ExceptionException){
>                           throw 
> (com.privasphere.qualsig.quovadis.ExceptionException)ex;
>                         }
>                         ...>>
> So the new piece of code would look like
> }catch(org.apache.axis2.AxisFault f){
>             org.apache.axiom.om.OMElement faultElt = f.getDetail();
>             if (faultElt!=null){
>                 if (faultExceptionNameMap.containsKey(faultElt.getQName())){
>                     //make the fault by reflection
>                     try{
>                         java.lang.String exceptionClassName = 
> (java.lang.String)faultExceptionClassNameMap.get(faultElt.getQName());
>                         java.lang.Class exceptionClass = 
> java.lang.Class.forName(exceptionClassName);
>                         java.lang.Exception ex=
>                                 (java.lang.Exception) 
> exceptionClass.newInstance();
>                         //message class
>                         java.lang.String messageClassName = 
> (java.lang.String)faultMessageMap.get(faultElt.getQName());
>                         java.lang.Class messageClass = 
> java.lang.Class.forName(messageClassName);
>                         java.lang.Object messageObject = 
> fromOM(faultElt,messageClass,null);
>                         java.lang.reflect.Method m = 
> exceptionClass.getMethod("setFaultMessage",
>                                    new java.lang.Class[]{messageClass});
>                         m.invoke(ex,new java.lang.Object[]{messageObject});
>                         
>                         if (ex instanceof 
> com.privasphere.qualsig.quovadis.ExceptionException){
>                               ExceptionException ee = 
> (com.privasphere.qualsig.quovadis.ExceptionException)ex; 
>                               ee.setAxisFault(f);
>                           throw ee;
>                         }
>                         ...

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to