在学习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("\nserver响应回来");

response.writeTo(System.out);

// 获取返回信息的文档对象

Document document = response.getSOAPPart().getEnvelope().getBody()

.extractContentAsDocument();

System.out.println();



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

.getTextContent());



}

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY21sX2Jsb2c=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

webservice0基础的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. Golang, 以17个简短代码片段,切底弄懂 channel 基础

    (原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...

  5. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  6. HTTPS 互联网世界的安全基础

    近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...

  7. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  8. .NetCore MVC中的路由(1)路由配置基础

    .NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...

  9. .NET基础拾遗(5)多线程开发基础

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

随机推荐

  1. Mapping (RESOURCE) not found :和BeanFactory not initialized or already closed - call 'refresh' before access记录

    1.Mapping (RESOURCE) not found :cn/sxx/model/Supplier.hbm.xml : origin(cn/sxx/model/Supplier.hbm.xml ...

  2. vmware linux虚拟机与本地物理机共享文件夹

    cd /mnt/hgfs 使用Vmware安装了linux虚拟机后,开发时,为了方便文件的传输等,因此需要使用共享文件夹,减少工作量.共享文件夹需要用到vmware提供的vmware tools工具, ...

  3. LayuiAdmin退出模块报错解决

    将layuiAdmin/src/controller目录下的common.js中 logout方法的url中logout.js的路径修改为自己目录的路径: 我这里修改为绝对路径:

  4. 去BAT,你应该要看一看的面试经验总结

    我去年12月份从上一家公司离职,一直到今年3月份,基本上都在面试中度过来的. 先交代下背景:坐标上海,做技术开发,我本人面试的职位是linux服务器开发,最倾向的职位是服务器开发主程或技术经理.我本人 ...

  5. centos6 下FastDFS 在storage节点上nginx的fastdfs-nginx-module 模块编译出现的问题

    centos6.6  下FastDFS  在storage节点上   make(编译)nginx的fastdfs-nginx-module 出现如下报错: /root/fastdfs-nginx-mo ...

  6. Linux系统权限

    目 录 第1章 权限描述    1 1.1 权限描述    1 1.2 文件权限对应表    1 1.3 三种角色    1 1.4 文件和用户以及组之间的关系    1 第2章 修改权限命令chmo ...

  7. JavaScript中函数的调用

    JavaScript中函数的调用 制作人:全心全意 在JavaScript中,函数定义后并不会自动执行,要执行一个函数需要在特定的位置调用该函数,调用函数需要创建调用语句,调用语句包含函数名称和参数. ...

  8. CSS3---box-shadow设置

    1.box-shadow是向盒子添加阴影.支持添加一个或者多个. 2.box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式]; 3.注意:ins ...

  9. OAuth2.0授权流程

    微信授权 第3步的微信授权中的scope字段: snsapi_base 静默授权,不弹出用户同意框,可直接获取成员的基础信息:    snsapi_userinfo:静默授权,弹出用户同意框,待用户同 ...

  10. 用python写自定义模板

    模板语法有点像php !/usr/bin/env python """ #demo.py.html <html> <?py include head.p ...