axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Afkham Azeez (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (AXIS2-4398) Poor error handling when a request parameter of the wrong type is sent to a POJO web service
Date Thu, 06 Jan 2011 08:24:47 GMT

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

Afkham Azeez resolved AXIS2-4398.
---------------------------------

    Resolution: Fixed

Applied patch supplied by Pétur Runólfsson, after some modifications

> Poor error handling when a request parameter of the wrong type is sent to a POJO web
service
> --------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-4398
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4398
>             Project: Axis2
>          Issue Type: Improvement
>          Components: adb
>    Affects Versions: 1.5
>            Reporter: Pétur Runólfsson
>            Priority: Minor
>         Attachments: AXIS2-4398-2.patch, AXIS2-4398.patch, Server.java, Server.wsdl,
services.xml
>
>
> If a request parameter in a SOAP or REST request to a POJO web service is not of the
expected type, the error messages that are returned to the client and that appear in the logs
are often not very good. For example, the faultcode is soapenv:Receiver (should be soapenv:Sender
since the error was caused by an invalid request), and the name of the offending parameter
or field doesn't appear anywhere.
> Here is a sample request (args0 is declared as xs:int):
> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:axis="http://ws.apache.org/axis2">
>    <soap:Header/>
>    <soap:Body>
>       <axis:echoInt>
>          <!--Optional:-->
>          <axis:args0>?</axis:args0>
>       </axis:echoInt>
>    </soap:Body>
> </soap:Envelope>
> The response is:
> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
>    <soapenv:Body>
>       <soapenv:Fault>
>          <soapenv:Code>
>             <soapenv:Value>soapenv:Receiver</soapenv:Value>
>          </soapenv:Code>
>          <soapenv:Reason>
>             <soapenv:Text xml:lang="en-US">For input string: "?"</soapenv:Text>
>          </soapenv:Reason>
>          <soapenv:Detail/>
>       </soapenv:Fault>
>    </soapenv:Body>
> </soapenv:Envelope>
> The tomcat log contains:
> [ERROR] For input string: "?"                                                       
                                                                                    
> java.lang.NumberFormatException: For input string: "?"                              
                                                                                    
>         at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
                                                                                
>         at java.lang.Integer.parseInt(Integer.java:447)                             
                                                                                    
>         at java.lang.Integer.<init>(Integer.java:620)                         
                                                                                         

>         at org.apache.axis2.databinding.typemapping.SimpleTypeMapper.getSimpleTypeObject(SimpleTypeMapper.java:80)
                                                      
>         at org.apache.axis2.databinding.utils.BeanUtil.processObject(BeanUtil.java:675)
                                                                                 
>         at org.apache.axis2.databinding.utils.BeanUtil.ProcessElement(BeanUtil.java:630)
                                                                                
>         at org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:562)
                                                                                   
>         at org.apache.axis2.rpc.receivers.RPCUtil.processRequest(RPCUtil.java:153)  
                                                                                    
>         at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:188)
                                                                                  
>         at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
                                                           
>         at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
                                            
>         at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
                                                                 
>         at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)          
                                                                                    
>         at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
                                                       
>         at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142) 
                                                                                    
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)             
                                                                                    
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.josso.tc60.agent.SSOAgentValve.invoke(SSOAgentValve.java:275)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:619)
> [ERROR] For input string: "?"
> org.apache.axis2.AxisFault: For input string: "?"
>         at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
>         at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:161)
>         at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>         at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
>         at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)
>         at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
>         at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at org.josso.tc60.agent.SSOAgentValve.invoke(SSOAgentValve.java:275)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.NumberFormatException: For input string: "?"
>         at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>         at java.lang.Integer.parseInt(Integer.java:447)
>         at java.lang.Integer.<init>(Integer.java:620)
>         at org.apache.axis2.databinding.typemapping.SimpleTypeMapper.getSimpleTypeObject(SimpleTypeMapper.java:80)
>         at org.apache.axis2.databinding.utils.BeanUtil.processObject(BeanUtil.java:675)
>         at org.apache.axis2.databinding.utils.BeanUtil.ProcessElement(BeanUtil.java:630)
>         at org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:562)
>         at org.apache.axis2.rpc.receivers.RPCUtil.processRequest(RPCUtil.java:153)
>         at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:188)
>         at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
>         ... 20 more

-- 
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: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message