`
elvisli
  • 浏览: 18462 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

webservice请求

 
阅读更多

 

 

import java.io.File;

import java.io.FileWriter;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

 

import javax.xml.namespace.QName;

import javax.xml.soap.MessageFactory;

import javax.xml.soap.SOAPBody;

import javax.xml.soap.SOAPBodyElement;

import javax.xml.soap.SOAPElement;

import javax.xml.soap.SOAPMessage;

import javax.xml.ws.BindingProvider;

import javax.xml.ws.Dispatch;

import javax.xml.ws.soap.SOAPBinding;

 

import org.dom4j.DocumentHelper;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.XMLWriter;

 

/*

 * * Client

 * 

 * @author zhaoshuai

 * 

 * @version 1.0

 */

public class Client {

    private static final String NAMESPACE_URL = "http://impl.service.dwjk.fy.np.thunisoft.com";

 

    public static void main(String args[]) {

        String className = "CourtBaseInfo"; 

        String method = "getAllPersons";

        ArrayList<String> list = new ArrayList<String>();

        //        list.add("65552");

        //        list.add("65540");

        //        list.add("<caseInfo><case bh='2224' ajlb='1' baktxh='4' ft=''/></caseInfo>");

                list.add("2");

//        list.add("<?xml version='1.0' encoding='UTF-8'?><CaseSpzh type='bean.CaseSpzh'><ajlb>2</ajlb><fyid>10</fyid><lstSpzh></lstSpzh></CaseSpzh>");

//        list.add("11");

        invoke(className, method, list);

    }

 

    public static void invoke(String className, String method,

            List<String> paramList) {

        String endpointAddress = "http://172.16.26.117:8090/dwjk/services/"

                + className + "?wsdl";

        QName SERVICE_NAME = new QName(NAMESPACE_URL, className);

        QName PORT_NAME = new QName(NAMESPACE_URL, className + "Port");

        // 设置SOAP信息

        javax.xml.ws.Service service = javax.xml.ws.Service

                .create(SERVICE_NAME);

        service.addPort(PORT_NAME, SOAPBinding.SOAP11HTTP_BINDING,

            endpointAddress);

 

        Dispatch<SOAPMessage> dispatch = service.createDispatch(PORT_NAME,

            SOAPMessage.class, javax.xml.ws.Service.Mode.MESSAGE);

 

        BindingProvider bp = (BindingProvider) dispatch;

        Map<String, Object> rc = bp.getRequestContext();

        rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);

        rc.put(BindingProvider.SOAPACTION_URI_PROPERTY, method);

 

        // 调用webservice

        SOAPBody soapBody = null;

        try {

            MessageFactory messageFactory = ((SOAPBinding) bp.getBinding())

                    .getMessageFactory();

 

            SOAPMessage request = messageFactory.createMessage();

            SOAPBody body = request.getSOAPBody();

 

            QName payloadName = new QName(NAMESPACE_URL, method, "ns1");

            SOAPBodyElement payload = body.addBodyElement(payloadName);

            for (int i = 0; i < paramList.size(); i++) {

                payload.addChildElement(new QName("arg" + i)).addTextNode(

                    paramList.get(i));

            }

            request.saveChanges();

 

            SOAPMessage reply = null;

            reply = dispatch.invoke(request);

            soapBody = reply.getSOAPBody();

            SOAPBodyElement nextSoapBodyElement = (SOAPBodyElement) soapBody

                    .getChildElements().next();

            SOAPElement soapElement = (SOAPElement) nextSoapBodyElement

                    .getChildElements().next();

            System.out.println(soapElement.getValue());

 

            OutputFormat format = OutputFormat.createPrettyPrint();

            format.setEncoding("UTF-8");

            File file = new File("D://test//1.xml");

            XMLWriter writer = new XMLWriter(new FileWriter(file), format);

            writer.write(DocumentHelper.parseText(soapElement.getValue()));

            writer.close();

        } catch (Exception wse) {

            wse.printStackTrace();

        }

    }

}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics