[ 
http://jira.codehaus.org/browse/XFIRE-635?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=146854#action_146854
 ] 

Karl Palsson commented on XFIRE-635:
------------------------------------

I'm having what I assume to be similar to the comments (thought not the 
description)

I have a WebService that takes Long as a parameter, the wsdl generated by xfire 
is for this param is 

<xsd:element maxOccurs="1" minOccurs="1" name="telephoneSubscriptionId" 
nillable="true" type="xsd:long"/>

which looks good.

If I send in (using soapUi) a request that has xsi:nil="true" set for the 
telephone sub id, I still get a Soap failure, (for input string "")

java.lang.NumberFormatException: For input string: ""
        at 
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Long.parseLong(Long.java:424)
        at java.lang.Long.parseLong(Long.java:461)
        at 
org.codehaus.xfire.aegis.AbstractMessageReader.getValueAsLong(AbstractMessageReader.java:78)
        at 
org.codehaus.xfire.aegis.type.basic.LongType.readObject(LongType.java:16)
        at 
org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:162)
        at 
org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:206)
        at 
org.codehaus.xfire.service.binding.WrappedBinding.readMessage(WrappedBinding.java:50)
        at 
org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
        at 
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
        at 
org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
        at 
org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
        at 
org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:301)
        at 
org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:130)
        at 
org.codehaus.xfire.spring.remoting.XFireServletControllerAdapter.handleRequest(XFireServletControllerAdapter.java:67)
        at 
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)


I can use xsi:nil happily for other objects, what am I getting wrong here?  I 
don't believe I'm using xmlbeans, but I am using annotations which I guess 
superseded beans?

> Parse exception on empty elements of type java.lang.Integer
> -----------------------------------------------------------
>
>                 Key: XFIRE-635
>                 URL: http://jira.codehaus.org/browse/XFIRE-635
>             Project: XFire
>          Issue Type: Sub-task
>    Affects Versions: 1.0, 1.1.2
>         Environment:  java 1.4
>            Reporter: Jakub Mendys
>            Assignee: Dan Diephouse
>            Priority: Minor
>             Fix For: 1.2.3
>
>         Attachments: test.zip
>
>
> When java.lang.Integer is used as a method parameter in your web service 
> implementation then xFire will not accept null values nor empty element. 
> Instead xFire will try to parse content of next elements and raise an 
> exception. See test case:
> Under link http://jmendys.com/test.zip you will find a test case to reproduce 
> the problem
> The zip contains folder 'test' which is an exploded war ready to deploy. After
> deployment is exposes 2 services:
> * XFireTestService1 (without xmlbean)
> * XFireTestService2 (with xmlbean)
> When you send a following request (to any of those):
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";>
>     <SOAP-ENV:Header/>
>     <SOAP-ENV:Body>
>         <getBasket xmlns="http://www.roche.com/drugsafety";>
>             <referenceNo>STRINGA</referenceNo>
>             <basketVersion></basketVersion>
>             <medDRAVersionName>STRINGB</medDRAVersionName>
>         </getBasket>
>     </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> you will get something like this:
> org.apache.commons.httpclient.HttpException :
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>For
> input string: "STRINGB"</faultstring></soap:Fault></soap:Body></soap:Envelope>
> And only if you provide valid and non null integer in basketVersion (e.g.
> <basketVersion>0</basketVersion>) the request will be processed correctly. 
> Plaese note that xFire tries to parse STRINGB which is in next element as an 
> value for the integer type element.

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

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to