It seems that Web Services do not work when the EAR that contains the @WebService class has an isolated classloader. Here is my take on what happens:
You deploy the ear and JBoss creates a war, that contains a web.xml, that points to the org.jboss.ws.server.ServiceEndpointServlet.
You can send a request to the web service bean no problem, but any objects that get returned from it will throw a NoClassDefFoundError because this ServiceEndpointServlet is deployed outside of the EAR and, since it has an isolated classloader, can't reference the returned class.
My application works absolutely fine when I turn off all isolation of the classloader. I don't think this can be fixed. Any ideas?