• webservice0基础


    在学习webservice的时候,常常将ns和url花了好久时间才理解过来,这里备份下。

    首先定义接口:

    @WebService
    public interface IService
    {
    @WebResult(name = "login")
    public User login(@WebParam(name = "username") String username,
    @WebParam(name = "password") String password);
    }


    创建实现类:

    @WebService(endpointInterface = "com.cml.soap.IService[这里是实现接口的全路径]", name = "myname")
    public class ServiceImpl implements IService
    {
    @Override
    @WebResult(name = "login")
    public User login(@WebParam(name = "username") String username,
    @WebParam(name = "password") String password)
    {
    System.out.println("进来登录");
    return new User("恭喜你登录成功!

    ", 1);
    }
    }

    公布服务:

    String address = "http://localhost:8888/cml";
    Endpoint.publish(address, new ServiceImpl());

    在浏览器上输入http://localhost:8888/cm?wsdl

    创建soap消息:

    public void sendSoap() throws Exception
    {
    String ns = "http://soap.cml.com/";
    QName name = new QName(ns, "ServiceImplService");

    String url = "http://localhost:8888/cml?wsdl";
    // 使用的是url进行服务的创建
    Service service = Service.create(new URL(url), name);


    Dispatch<SOAPMessage> dispatch = service.createDispatch(new QName(ns,
    "mynamePort"), SOAPMessage.class, Service.Mode.MESSAGE);


    SOAPMessage msg = MessageFactory.newInstance().createMessage();
    SOAPEnvelope ele = msg.getSOAPPart().getEnvelope();
    SOAPBody body = ele.getBody();


    QName name2 = new QName(ns, "login", "tns");// <tns:login xmlns=""
    SOAPBodyElement element = body.addBodyElement(name2);
    element.addChildElement("username").setValue("1111");
    element.addChildElement("password").setValue("222");
    msg.writeTo(System.out);
    SOAPMessage response = dispatch.invoke(msg);
    System.out.println(" server响应回来");
    response.writeTo(System.out);
    // 获取返回信息的文档对象
    Document document = response.getSOAPPart().getEnvelope().getBody()
    .extractContentAsDocument();
    System.out.println();

    System.out.println(document.getElementsByTagName("login").item(0)
    .getTextContent());

    }







  • 相关阅读:
    podupdate时没有进度
    IOS开发
    ios事件传递
    ioshittest的用法
    Ios中时间无法响应
    OS开发(Objective-C)常用库索引
    IOS时间戳
    iOS- 详解文本属性Attributes
    IOSView显示特性设置
    Xcode的Architectures和Valid Architectures的区别,
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6899997.html
Copyright © 2020-2023  润新知