微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

soap

public class Client {
	private String ns = "http://{IP}:{端口}/axis/services/MessageService";//命名空间
	private String wsdlUrl = "http://{IP}:{端口}//axis/services/MessageService?wsdl";

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		list.add("06913145");
		list.add("6491304323");
		list.add("324545316163");
		for(String phoneno : list){
			System.out.println(phoneno);
			System.out.println("--------------------------------");
			new Client().test(phoneno);
			System.out.println("--------------------------------");
		}
	//new Client().test("sdfsd");
	}

	public  void test(String phoneno){
		try{
			//1、创建服务(Service)
			URL url = new URL(wsdlUrl);
			QName sname = new QName(ns,"MessageServiceService");
			Service service = Service.create(url,sname);

			//2、创建dispatch
			dispatch<SOAPMessage> dispatch = service.createdispatch(new QName(ns,"MessageService"),//portName,对应wsdl写。
			SOAPMessage.class,Service.Mode.MESSAGE);

			//3、创建SOAPMessage
			SOAPMessage msg = MessageFactory.newInstance().createMessage();
			SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope();
			SOAPBody body = envelope.getBody();

			//3.2、处理header信息
			SOAPHeader header = envelope.getHeader();
			if(header==null) header = envelope.addHeader();
			QName userName = new QName("blueslice.com","UserName","ns1");
			header.addHeaderElement(userName).setValue("admin");

			QName password = new QName("blueslice.com","Passwd","ns2");
			header.addHeaderElement(password).setValue("admin");

			//4、创建QName来指定消息中传递数据
			QName ename = new QName("http://webservice.blueslice.com","processtransaction");//<nn:add xmlns="xx"/>
				   String select = getSelectStr(phoneno);
			body.addBodyElement(ename).addTextNode(getSelectStr(phoneno));
			msg.writeto(System.out);
			System.out.println("\n invoking.....");

			//5、通过dispatch传递消息,会返回响应消息
			SOAPMessage response = dispatch.invoke(msg);
			response.writeto(System.out);
			SOAPBody ycBody = response.getSOAPBody();  
			Node ycResp = ycBody.getFirstChild(); 
			String res = ycResp.getTextContent();
			String error = ycResp.getAttributes().getNamedItem("error").getNodeValue();//error为0
			boolean isOK = res.contains("res error=\"0\"");
			System.out.println(isOK);
		} catch (SOAPException e) {
			e.printstacktrace();
		} catch (IOException e) {
			e.printstacktrace();
		} 
}

	public String getUpdatestr(){
	省略。。。
	}

	public String getSelectStr(String phoneno){
	省略。。。

	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐