I finally though I had it all figured out, making a Session bean Web Services as specified under the JSR 109 docs.
I have a standalone client that can access this via JNDI
"java:comp/env/service/MyService" and this works fine as long as the client run on the same host as the service.
I should add that my Service returns a complex datatype (MySession ) as well:
MySession loginUser(String user, String password)throws java.rmi.RemoteException, LoginFailed;
I works fine as long as I run the service via JNDI as described in the docs with a client proxy deployed on JBoss.
If I connect from a different client machine I get Connection refused on java:comp/env/service/MyService. Why?
When I change my client to connect via URLs to WSDL
Service service = serviceFactory.createService(urlWsdl, new QName(nameSpaceUri, serviceName));
Then it connects but fails when it cannot optain mappings for the datattype MySession.
How do I fix this?
WIth old w4ee notation, I seem to remember that we could put in a w4ee-client.xml file or something that would populate the wsdd file with type mappings. I can't see how this works now after having tried numerous ways to add type info to my wstools generated Web Service.
Your client should run as an J2EE application-client
http://wiki.jboss.org/wiki/Wiki.jsp?page=JBWSFAQClientModel
The new stack is XML schema aware, it does not need the propriatary ws4ee-deplyment.xml descriptor any more.