源码是这样的
public class Dongtai { private static String qnameService = "WebServiceBroker"; private static String qnamePort = "WebServiceBrokerEndpointPort"; private static String BODY_NAMESPACE_VALUE = "http://ws4ee.ejb.mhgis.com/types"; private static String ENCODING_STYLE_PROPERTY = "javax.xml.rpc.encodingstyle.namespace.uri"; private static String NS_XSD = "http://www.w3.org/2001/XMLSchema"; private static String URI_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/";

public static void main(String[] args) {
args = new String[] { "http://10.11.1.134:8080/mhgis/services/Version?wsdl" };
System.out.println("Endpoint address dii = " + args[0]);
try {
//创建ServiceFactory实例
ServiceFactory factory = ServiceFactory.newInstance();
//创建Service(利用服务名的Qname)
Service service = factory.createService(new QName(qnameService));
QName port = new QName(qnamePort);
//创建Call对象(使用端点接口的Qname)
Call call = service.createCall(port);
//设置端点的地址和一些Call对象属性
call.setTargetEndpointAddress(args[0]);
call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true));
call.setProperty(Call.SOAPACTION_URI_PROPERTY, "");
call.setProperty(ENCODING_STYLE_PROPERTY, URI_ENCODING);
//设置远程调用的返回类型、操作名和参数
QName QNAME_TYPE_STRING = new QName(NS_XSD, "string");
call.setReturnType(QNAME_TYPE_STRING);
call.setOperationName(new QName(BODY_NAMESPACE_VALUE, "call"));//这个是什么意思?
call.addParameter("String_1", QNAME_TYPE_STRING, ParameterMode.IN);
//调用call的invoke方法
String[] params = {"aa"};
String[] userinf= {"user","1"};
Object[] object = new Object[3];
object[0] = 1L;
object[1] = params;
object[2] = userinf;
String result = (String) call.invoke(object);
System.out.println(result);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}