I believe you need to deploy the jaxrpc-mapping.xml that maps between java and wsdl. Without this mapping it cannot find where to locate your datatype
AFAIK the jaxrpc-mapping.xml file is never read when using webservices with annotations (JSR-181). Please enlighten me if I am wrong.
You are correct, however it looks like JBOSS-WS does indeed read the jaxrpc-mapping file when you specify a wsdlLocation and creates the mapping in memory when you do not..
This might be a bug.
I have not found a way to specify the mapping using annotations but the JAX-WS 2.0 specifies that a mapping will be provided. From the specification...
Implementing Enterprise Web Services (JSR 109) The JSR 109 defined jaxrpc-mapping-info
deployment descriptor provides deployment time Java , WSDL mapping functionality. In conjunction
with JSR 181, JAX-WS 2.0 will complement this mapping functionality with development
time Java annotations that control Java , WSDL mapping.
So if you want to specify a wsdllocation you need to specify it using a JSR109EJB rather than JSR181EJB.
Yes, JSR181 support in jbossws-1.0.x is preview code. In JAXWS all meta data is supplied through annotations.
Today I actually fixed a bug namely that @WebService (targetNamespace='...') was ignored for the in memory jaxrpc-mapping
This is fixed in jbossws-1.0.4