Make sure that you are using the MultiUserChat service when joining/creating a room. In your example I see new MultiUserChat(conn, "testRoom123@jabber.org");[/i] and it should be new MultiUserChat(conn, “testRoom123@conference.jabber.org”);[/i].
In theory the name of the MUC service does not have to be conference. for their MUC service.
In the url=http://www.jivesoftware.org/builds/smack/docs/latest/documentation/extension s/muc.htmlMUC documentation[/url] you will find information and code snippet that shows how to create new rooms.
Note: Remove the empty space in the last word of the link.
I use service discovery to search for the multi-user chat service on the server. This has the added benefit of not having to hardcode the appropriate subdomain. The downside is more stanzas to get what you are looking for, but unless you are creating a low-bandwidth client this overhead is mostly negligible.
You can search on this forum for answers to the ClassCastException problem. In short, the problem is that the file META-INF/smack.providers is not being located. You shouldn’'t be having this problem if you are using the provided smack.jar and smackx.jar files. If you are building your own jar files then make sure that the META-INF folder is present in your classpath.