Custom Web Service returning complex type with array field


I have implemented a custom web service where a method returns some simplified user objects like this:

public class XUser {
    private int[] roleIds;
    public int[] getRoleIds() {return roleIds;}
    public void setRoleIds(int[] value) {roleIds = value;}



Then generate the WSDL, WSDD, java files etc. In the generated WSDL the specification of roleIds field looks like this:

     <element name="roleIds" nillable="true" type="impl:ArrayOf_xsd_int"/>

Then I upload this to WS, query the wsdl of the new service, and get this:

     <element name="roleIds" nillable="true" type="xsd:int"/>


So somehow the information that an array is expected here is lost. If I use Integer instead of int, then the same result. If I wrap int into a new class "IntResult", then it is mapped to an array. Does anyone have an idea what the problem may be here?