JAVA通过soap访问webservice

最近我在写一个程序跟别的程序做接口,对方提供webservice服务,但对方没有提供wsdl文件,只给了一个soap的url:http://121.23.127.10:1... 最近我在写一个程序跟别的程序做接口,对方提供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程序,但是不是怎么做,希望各位大侠帮帮指点。
展开
 我来答
松秋梵畅0D
推荐于2016-12-04 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:116万
展开全部
我做过的一个例子:

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

import com.yupont.utils.XMLUtil;

public class ServiceTest {

public String callSGCCService(String operationName,String inputXML,String serviceName,String serverContextRoot)
{
StringBuilder result=null;
try {
String endpoint = serverContextRoot+"/services/"+serviceName;
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});
System.out.println(result1);
result=new StringBuilder(result1);
result.append("@@@@@");
result.append(XMLUtil.getNodeTxtByNodeName(XMLUtil.strToXML(result1).getRootElement(), "URL"));
}
catch (Exception e)
{
System.err.println(e.toString());
}
return result.toString();
}

}
你可以参考一下
更多追问追答
追问
请问这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});
这段是主要的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式