`
free_zhou
  • 浏览: 51302 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Axis1.4客户端调用,Soap消息头设置

阅读更多
提交了辞职信,工作交接中,闲来无事访问apache的网站,想起来曾一时让我很头疼的webservice,随手写了几行代码,就当练手吧!接下来学习axis2,奔着那个方向去。
这段代码是我在调用电信的服务时的客户端代码,实现下发手机短信的部分代码。重点1.stub方式ws的应用。2.怎么设置soap头。还是那句老话,从知道到不知道是一个很艰苦的过程。
  public static void main(String[] args) throws InterruptedException
	{
		Test test = new Test();
		try
		{
			//URL 调用webservice地址
			SendSmsBindingStub service = (SendSmsBindingStub) new SendSmsServiceLocator().getSendSms(new URL("http://1.1.1.1:8080/SendSmsService"));
			SOAPHeaderElement header = new SOAPHeaderElement("http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1","RequestSOAPHeader");
			SOAPElement soap = null;
			
			soap = header.addChildElement("password");
			soap.addTextNode(test.getPassword().toUpperCase());
			
                           soap = header.addChildElement("productId");
			Node node = doc.selectSingleNode("//cctc/projects/productid[@busiid='"+ busiid +"']");
			if(node != null)
				soap.addTextNode(node.getText());
			else
				soap.addTextNode(""); 
			//....................
			
			//设置头
			service.setHeader(header);
                           //因设置不群发,所以去URL的第一个元素
			String result = service.sendSms(new URI[0], "senderName", new ChargingInformation(), "message", new SimpleReference());
			
			System.out.println(result);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
	
	private String getPassword()
	{
		//密码为接入网关号+接入密码+10为时间戳后MD5加密
		String password = "xxxxxxx" + "yyyyyy" + getTimetemp();
		MessageDigest md5 = getMD5();
		md5.update(password.getBytes());
		byte[] result = md5.digest();
		StringBuffer strBuffer = new StringBuffer();
		for(int i = 0; i < result.length; i++)
		{
			String temp = Integer.toHexString(result[i] & 0xff);
			if(temp.length() == 1)
				strBuffer.append("0");
			strBuffer.append(temp);
		}
		return strBuffer.toString();
	}
	private SimpleDateFormat sdf = null;
	private String getTimetemp()
	{
		if(sdf == null)
			sdf = new SimpleDateFormat("MMddHHmmss");
		return sdf.format(new Date(System.currentTimeMillis()));
	}
	
	private static MessageDigest getMD5()
	{
		MessageDigest md5 = null;
		try
		{
			if(md5 == null)
				md5 = MessageDigest.getInstance("MD5");
		}
		catch (NoSuchAlgorithmException e)
		{
			e.printStackTrace();
		}
		return md5;
	}
分享到:
评论

相关推荐

    axis1.4 spring3.0 集成 实现 web service

    axis1.4 spring3.0 集成 实现 web service 服务端, axis1.4 客户端认证,授权,访问日志记录,集成spring 解决 PHP 调用web service 无法认证,和解析soap 模板

    Java Axis 直接调用webservice 接口工具类

    Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;

    PHP调用JAVA的WebService简单实例

    服务端使用AXIS-1.4作为SOAP引擎。客户端为PHP5.2.9,使用NuSOAP作为SOAP引擎。 服务端 对象类复制代码 代码如下:import java.io.Serializable; public class Person implements Serializable { /** * */ private...

    致远A8-M平台API参考手册

    A8 平台提供基于 axis2 1.4 实现的标准 Web service。可以采取多种语言多种方式进行客户端开发。 本指南提供了 Java 和 C#的开发步骤,PHP 建议使用 WSO2 Web Services Framework for PHP 开发。 本指南所有 Java ...

    java开源包1

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    JAVA上百实例源码以及开源项目

     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...

    JAVA上百实例源码以及开源项目源代码

     在对象创建的过程中将被容器调用,onMessage函数方法接收消息参数,将其强制转型为合适的消息类型,同时打印出消息的内容。同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-...

    java开源包11

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包2

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包3

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包6

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包5

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包10

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包4

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包8

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包7

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包9

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    java开源包101

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

    Java资源包01

    多协议扩展支持(REST, RPC, SOAP, etc) Rails3消息队列系统 Sidekiq Sidekiq 为 Rails 3 应用程序提供一个高效的消息队列系统。 Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写...

Global site tag (gtag.js) - Google Analytics