最近我在写一个程序跟别的程序做接口,对方提供webservice服务,但对方没有提供wsdl文件,只给了一个soap的url:http:// 121.23.127.10:1920///cms/soap,还告诉interface:AM_SOAP,method:AM_GET,以及一个JavaScript写的访问webservice的例子,代码如下:
function getdata() {
var xmlHttp;
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
//soap的URL
var url = "http:// 121.23.127.10:1920///cms/soap";
//xml格式的字符串请求信息
var query = "<AM_Get><userid>admin</userid>";
query = query + "<password>admin</password>";
query = query + "<object>ManagedSystem</object>";
query = query + "</AM_Get>"
//设置回调函数
xmlHttp.onreadystatechange = checkCall(){
xmlDoc = xmlHttp.responseXML;
alert(xmlDoc);
}
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("MethodName", "AM_Get");//方法名
xmlHttp.setRequestHeader("InterfaceName", "AM_SOAP");//接口名
xmlHttp.setRequestHeader("MessageType", "Call");//这个不知道什么意思
xmlHttp.setRequestHeader("Content-Type", "text/xml");//设置返回格式
xmlHttp.send(query);//发送请求
}
现在我想用java类来实现这个方法,发送一个xml格式的String字符串做参数,访问webservice程序,但是不是怎么做,希望各位大侠帮帮指点。
请问这4个参数都是什么意思?
还有call.setOperationName(new QName("http://service.yupont.com",operationName));这句话什么意思,其中的http://是什么?
Service service = new Service();// 创建一个服务(service)调用(call)
Call call = (Call)service.createCall();// 通过service创建call对象
call.setTargetEndpointAddress(new java.net.URL(endpoint));// 设置service所在URL
call.setOperationName(new QName("http://service.yupont.com",operationName));
call.setUseSOAPAction(true);
String result1 = (String)call.invoke(new Object[]{inputXML});
这段是主要的
我想问operationName,inputXML,serviceName,serverContextRoot分别是什么?
inputXML我知道是xml格式的字符传,operationName,serviceName,serverContextRoot分别是什么我就不知道了,请说详细点。
还有这句是干什么用的?call.setOperationName(new QName("http://service.yupont.com",operationName));
其中的http://service.yupont.com是什么意思
Service service = new Service();// 创建一个服务(service)调用(call)
Call call = (Call)service.createCall();// 通过service创建call对象
call.setTargetEndpointAddress(new java.net.URL(endpoint));// 设置service所在URL
call.setOperationName(new QName("http://service.yupont.com",operationName));
call.setUseSOAPAction(true);
String result1 = (String)call.invoke(new Object[]{inputXML});
endpoint 为wsdl地址,operationName为操作名,inputXML为操作参数,还有不明白的吗
http://service.yupont.com可以为空