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

WebService 非阻塞模式

package com.datastruct.sort;
import java.io.IOException;

import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;

import org.apache.axis2.client.Options;

import org.apache.axis2.context.MessageContext;

import org.apache.axis2.rpc.client.RPCServiceClient;

import junit.framework.TestCase;

public class RPCAsyncclient extends TestCase {
	String url = "http://xxxxx:9080/CrmToRps/services/RPSService";
	String method = "RPSOrder";
	String requestXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><ContractRoot><TcpCont><BusCode>BUS21001</BusCode><ServiceCode>SVC21001</ServiceCode><ServiceContractVer>SVC2100120100603</ServiceContractVer><ActionCode>0</ActionCode><TransactionID>1111111245201006031000000014</TransactionID><ServiceLevel>1</ServiceLevel><SrcOrgID>222222</SrcOrgID><SrcSysID>333333</SrcSysID><SrcSysSign></SrcSysSign><DstOrgID>600204</DstOrgID><DstSysID></DstSysID><ReqTime>20100603095739</ReqTime><Request><ReqType></ReqType><ReqCode></ReqCode><ReqDesc></ReqDesc></Request></TcpCont><SvcCont><MDN>18901131234</MDN><CardType>00006</CardType><FromAreaNum></FromAreaNum><ToAreanum></ToAreanum><STAFF_ID>132456</STAFF_ID><STAFF_NAME></STAFF_NAME><CHANNEL_ID>aaaa</CHANNEL_ID><CHANNEL_NAME></CHANNEL_NAME></SvcCont></ContractRoot>";
	public void test() throws IOException{
		RPCServiceClient serviceClient = new RPCServiceClient();
        Options options = serviceClient.getoptions();
        EndpointReference targetEPR = new EndpointReference(url);
        options.setTo(targetEPR);
        Object[] opAddEntryArgs = new Object[]{requestXML};
        QName opAddEntry = new QName("http://service",method);
        serviceClient.invokeNonBlocking(opAddEntry,opAddEntryArgs,new org.apache.axis2.client.async.AxisCallback()
                {
                    public void onComplete()
                    {
                    	System.out.println("onComplete");
                    }
                    public void onError(Exception arg0)
                    {
                    	System.out.println("onError"+arg0.getMessage());
                    }
                    public void onFault(MessageContext arg0)
                    {
                    	 System.out.println("onFault");
                    }
                    public void onMessage(MessageContext mc)
                    {
                        //  输出返回值
                        System.out.println(mc.getEnvelope().getFirstElement()
                                .getFirstElement().getFirstElement().getText());
                    }
                });

        System.out.println("异步调用!");
        //  阻止程序退出
        system.in.read();
	}
}
 

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

相关推荐