1、客户单编程方式(和第一种方式一样)

//文件名:HelloService.java

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper; /**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.1.6 in JDK 6
* Generated source version: 2.1
*
*/
@WebService(name = "HelloService", targetNamespace = "http://ws.itcast.cn/")
@XmlSeeAlso({ })
public interface HelloService { /**
*
* @param arg0
* @return
* returns java.lang.String
*/
@WebMethod
@WebResult(targetNamespace = "")
@RequestWrapper(localName = "sayHello", targetNamespace = "http://ws.itcast.cn/", className = "cn.itcast.ws.client.SayHello")
@ResponseWrapper(localName = "sayHelloResponse", targetNamespace = "http://ws.itcast.cn/", className = "cn.itcast.ws.client.SayHelloResponse")
public String sayHello(
@WebParam(name = "arg0", targetNamespace = "")
String arg0); }
import java.net.MalformedURLException;
import java.net.URL; import javax.xml.namespace.QName;
import javax.xml.ws.Service; import cn.itcast.ws.wsimport.HelloService; /**
* 通过客户端编程的方式调用Webservice服务
*
*/
public class App { public static void main(String[] args) throws Exception {
URL wsdlUrl = new URL("http://192.168.1.100:6789/hello?wsdl");
Service s = Service.create(wsdlUrl, new QName("http://ws.itcast.cn/","HelloServiceService"));
HelloService hs = s.getPort(new QName("http://ws.itcast.cn/","HelloServicePort"), HelloService.class);
String ret = hs.sayHello("zhangsan");
System.out.println(ret);
}
}

webservice:
    就是应用程序之间跨语言的调用
    wwww.webxml.com.cn
    1.xml
    2.    wsdl: webservice description language web服务描述语言
        通过xml格式说明调用的地址方法如何调用,可以看错webservice的说明书
    
    3.soap simple object access protoacl (简单对象访问协议) 
        限定了xml的格式
        soap 在http(因为有请求体,所以必须是post请求)的基础上传输xml数据
            请求和响应的xml 的格式如:    <Envelop>
                                <body>
                                //....
                                </body>
                            </Envelop>
                operation name:服务提供的方法
                
        
    静态方法不能发布为外部服务
    
    运用jkd自带的代码生成访问服务器的客户端代码    E:/wsimort -s . http://test.cm/?wsdl
    
    我们可以把webservice看做是web服务器上的一个应用,web服务器是webservice的一个容器
    
    函数的参数在 http://test.cm/?xsd=1
    
    JAX-WS是指 java api for xml -WebService
    
    //测试 WebService服务的 explorer
    Web Service Explorer 可以显示返回的xml格式
    
    targetNamespace 默认为倒置的包名
    
客户端调用WebService的方式:
    1.通过wximport生成代码
    2.通过客户端编程方式
    3.通过ajax调用方式
    4.通过 URL Connection 方式调用

请求过程分析:
        1.使用get方式获取wsdl文件,称为握手
        2.使用post发出请求
        3.服务器响应成功过

几种监听工具:
    http watch
    Web Service explorer
    eclipse 自带工具   TCP/IP Monitor

java 调用WebService【转】的更多相关文章

  1. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  2. java 调用webservice的各种方法总结

    java 调用webservice的各种方法总结 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较 方法一:创建基于JAX-WS的webservice(包括 ...

  3. Axis2 webservice 之使用java调用webservice

    在上一篇中写了一个简单了webservice,实现了一个sayHello功能.那么webservice写好之后我们如何使用Java程序来调用webservice呢? 一.java调用的webservi ...

  4. java调用webservice,restful

    java调用webservice public String redoEsb(String loguid, String user, String comments, String newMsg, S ...

  5. 原生java调用webservice的方法,不用生成客户端代码

    原生java调用webservice的方法,不用生成客户端代码 2015年10月29日 16:46:59 阅读数:1455 <span style="font-family: Aria ...

  6. Java调用Webservice(asmx)的几个例子

    Java调用Webservice(asmx)的几个例子 2009-06-28 17:07 写了几个调用例子: 1. import org.apache.axis.client.*;import org ...

  7. Java调用WebService方法总结(9,end)--Http方式调用WebService

    Http方式调用WebService,直接发送soap消息到服务端,然后自己解析服务端返回的结果,这种方式比较简单粗暴,也很好用:soap消息可以通过SoapUI来生成,也很方便.文中所使用到的软件版 ...

  8. Java调用WebService方法总结(8)--soap.jar调用WebService

    Apache的soap.jar是一种历史很久远的WebService技术,大概是2001年左右的技术,所需soap.jar可以在http://archive.apache.org/dist/ws/so ...

  9. Java调用WebService方法总结(7)--CXF调用WebService

    CXF = Celtix + XFire,继承了Celtix和XFire两大开源项目的精华,是一个开源的,全功能的,容易使用的WebService框架.文中所使用到的软件版本:Java 1.8.0_1 ...

  10. Java调用WebService方法总结(6)--XFire调用WebService

    XFire是codeHaus组织提供的一个WebService开源框架,目前已被Apache的CXF所取代,已很少有人用了,这里简单记录下其调用WebService使用方法.官网现已不提供下载,可以到 ...

随机推荐

  1. nginx.config 多个方案解决跨域问题

    #user nobody; user sam owner; worker_processes 1; #error_log logs/error.log; #error_log logs/error.l ...

  2. JVM垃圾收集机制

    JVM垃圾回收机制是java程序员必须要了解的知识,对于程序调优具有很大的帮助(同时也是大厂面试必问题). 要了解垃圾回收机制,主要从三个方面: (1)垃圾回收面向的对象是谁? (2)垃圾回收算法有哪 ...

  3. 关于properties文件的一些问题

    在写properties文件时,比如jdbc.properties文件配置连接数据库的账号密码时,不要留有空格,不然会报错 com.mchange.v2.resourcepool.CannotAcqu ...

  4. 阿里云恶意软件检测比赛-第三周-TextCNN

    LSTM初试遇到障碍,使用较熟悉的TextCNN. 1.基础知识: Embedding:将词的十进制表示做向量化 起到降维增维的作用 嵌入维度数量(New Embedding维度)的一般经验法则: e ...

  5. 解决pycharm py文件运行后停止按钮变成了灰色的问题

  6. C#类型与变量

    C#入门笔记 8.28开始看刘铁猛的视频,到9.22看完.大概觉得自己入门了,对OOP也有一定了解了,稍微写点笔记,当复习了. 类型与变量 数据类型 数据类型[1]是数据在内存中存储时的"型 ...

  7. redis过期策略以及内存淘汰机制(理论+配置)

    一.redis的过期策略: redis的过期策略是:定期删除+惰性删除redis在存储数据时,可能会设置过期时间,而所谓的定期删除,指的是redis默认是每隔100ms就随机抽取一些设置了过期时间的k ...

  8. Harbor介绍与企业级私有Docker镜像仓库搭建

    Harbor介绍与安装部署,并实现通过http和https协议[自签发SSL证书]访问,客户端如何通过Harbor镜像仓库实现镜像的上传[推送]与下载[拉取]. Harbor介绍 Harbor,是一个 ...

  9. Vue登录注册,并保持登录状态

    关于vue登录注册,并保持登录状态,是vue玩家必经之路,网上也有很多的解决方法,但是有一些太过于复杂,新手可能会看的一脸懵逼,现在给大家介绍一种我自己写项目在用而且并不难理解的一种方法. 项目中有一 ...

  10. Java基础——消息队列

    1.消息队列的适用场景:商品秒杀.系统解耦.日志记录等 2.使用Queue实现消息对列 双端队列(Deque)是 Queue 的子类也是 Queue 的补充类,头部和尾部都支持元素插入和获取阻塞队列指 ...