Handling of null, enums and dates in Java-first SOAP over HTTP GET
------------------------------------------------------------------

                 Key: CXF-2996
                 URL: https://issues.apache.org/jira/browse/CXF-2996
             Project: CXF
          Issue Type: Bug
          Components: JAX-WS Runtime
            Reporter: Christian Hvid


Apache CXF has incomplete handling of SOAP over HTTP GET.

It does not support dates as described here:

http://cxf.547215.n5.nabble.com/Java-first-SOAP-via-HTTP-GET-and-date-td2837639.html#a2837639

And it does not support enums:

http://cxf.547215.n5.nabble.com/Java-first-SOAP-via-HTTP-GET-and-enums-td2837640.html#a2837640

I took a look at URIMappingInterceptor and fixed a couple of things to make 
what I think is the correct implementation of SOAP over HTTP GET.

In short:

1. Supporting java.util.Date and java.util.Calendar in the following formats:

yyyy-MM-dd
yyyy-MM-ddTHH:mm:ss
yyyy-MM-ddTHH:mm:ss.SSS
yyyy-MM-ddTHH:mm:ssZZZ:ZZ
yyyy-MM-ddTHH:mm:ss.SSSZZZ:ZZ

(Mimicking XsDateTimeFormat but using SimpleDateFormat.)

2. Supporting enums - deserializing them via valueOf.

3. Supporting null - meaning that if you exclude a parameter - it will be 
interpretated as null.

So if you have:

interface MyInterface {
    public void test7(@WebParam(name = "d")Double d);

    public void test8(@WebParam(name = "d")double d);
}

And call .../test7 (without parameters) then the implementation will be invoked 
with null. Whereas calling .../test8 will cause a NUllPOinterException.

The attached patch covers changes in URIMappingInterceptor and also contains 
some test cases.


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