Because Java and XML don't always match up the Axis component now allows you to put metadata in your code thanks to QDox and Common's Attributes. There are two directives you can put in your code currently.

DirectiveDescription
@axis.serialize.[param] [ObjectType] This directive tells the component to serialize the specified parameter [param] as the specified [ObjectType]. This needs to be done for any method that takes or returns a List. Axis needs to know what kind of array to serialize the List to. For example, specifying "@axis.serialize.out [Ljava.lang.String;" would mean serialize the returned List as an array of Strings. Or "@axis.serialize.in0 [Lcom.company.Employee;" would mean serialize the first parameter for the method as an array of Employee objects.
@axis.hidemethod This directive tells the the Axis component to not expose the method as a web service.

There are also some serializers that support metadata for any bean (not just your service). These are largely untested and are located in the org.codehuas.axis.serialize package.