We have a dotnet web service that a java using customer wants to connect to. What is the best technology for them to use? Axis or Metro, or something else?
WSDL is a standard language following the protocol in a correct way the technology shouldn't mind.
only if this implementation requires to meet the time to market of your client. in that case use the one that can be implement more quickly.
I've had success connecting to a .Net service with Apache Axis2
Theoretically you could do this with any standards compliant framework. In practice, the generated code (with the default settings) by some tools may not work for you. You may need for example to modify a namespace or add a SOAP header. You can do this for example with Axis2 and CXF, but some extra configuration is needed.
I would recommend CXF over Axis2, because I think it's easier to configure. It also requires fewer megabytes of jar files to re-distribute.
I haven't use Metro, but with Axis is very easy connect to .Net services