欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

通过它可以生成 CAD加密 具体的 WS 接口

点击: 次  来源:宝鼎软件 时间:2017-05-31

原文出处: 黄勇

Web Service,即“Web 处事”,简写为 WS,从字面上领略,它其实就是“基于 Web 的处事”。而处事却是两边的,有处事需求方,软件开发,就有处事提供方。处事提供方对外宣布处事,处事需求方挪用处事提供方所宣布的处事。其实也就是这些了,没有几多高峻上的对象。

本文将从实战的角度,描写利用 Java 开拓 WS 的东西及其利用进程。

假如说得再专业一点,WS 其实就是成立在 HTTP 协议上实现异构系统通讯的东西。没错!WS 说白了照旧基于 HTTP 协议的,也就是说,数据是通过 HTTP 举办传输的。

自从有了 WS,异构系统之间的通讯不再是遥不行及的空想。好比:可在 PHP 系统中挪用 Java 系统对外宣布的 WS,获取 Java 系统中的数据,可能把数据推送到 Java 系统中。

假如您想相识更多关于 WS 的那些观念与术语,可以看看下面的百度百科:

http://baike.baidu.com/view/67105.htm

本日我想与各人分享的主题是,如安在 Java 中宣布与挪用 WS?但愿本文可以或许对您有所辅佐!

1. 利用 JDK 宣布 WS

第一步:您要做的第一件工作就是,写一个处事接口。

<!-- lang: java -->
package demo.ws.soap_jdk;

import javax.jws.WebService;

@WebService
public interface HelloService {

    String say(String name);
}

在接口上放一个 WebService 注解,说明该接口是一个 WS 接口(称为“Endpoint,端点”),个中的要领是 WS 要领(称为“Operation,操纵”)。

第二步:实现这个 WS 接口,在实现类中完成详细业务逻辑,为了简朴,我们照旧写一个 Hello World 意思一下吧。

<!-- lang: java -->
package demo.ws.soap_jdk;

import javax.jws.WebService;

@WebService(
    serviceName = "HelloService",
    portName = "HelloServicePort",
    endpointInterface = "demo.ws.soap_jdk.HelloService"
)
public class HelloServiceImpl implements HelloService {

    public String say(String name) {
        return "hello " + name;
    }
}

第三步:写一个 Server 类,用于宣布 WS,劳务派遣管理系统,直接利用 JDK 提供的东西即可实现。

<!-- lang: java -->
package demo.ws.soap_jdk;

import javax.xml.ws.Endpoint;

public class Server {

    public static void main(String[] args) {
        String address = "http://localhost:8080/ws/soap/hello";
        HelloService helloService = new HelloServiceImpl();

        Endpoint.publish(address, helloService);
        System.out.println("ws is published");
    }
}

只需利用 JDK 提供的 javax.xml.ws.Endpoint 即可宣布 WS,只需提供一个 WS 的地点(address),还需提供一个处事实例(helloService)。

此刻您就可以运行 Server 类的 main 要领了,会在节制台里看到“ws is published”的提示,此时恭喜您,WS 已乐成宣布了!

第四步:打开您的欣赏器,在地点栏中输入以下地点:

http://localhost:8080/ws/soap/hello?wsdl

留意:以上地点后头有一个 ?wsdl 后缀,在 Server 类中的 address 里却没有这个后缀。此时,在欣赏器中会看到如下 XML 文档:

通过它可以生成 CAD加密 详细的 WS 接口

当看到这份 WSDL 文档时,也就意味着,您宣布的 WS 处事此刻可以被别人利用了。

2. 通过客户端挪用 WS

第一步:利用 JDK 提供的呼吁行东西生成 WS 客户端 jar 包。

JDK 安装目次下有个 bin 目次,内里存放了大量的呼吁行东西,只要您的 Path 情况变量指向了该路径,就能在呼吁节制台上利用 JDK 提供的相关呼吁。

个中,有一个名为 wsimport 的呼吁行东西,正是用来通过 WSDL 生成 WS 客户端代码的,您只需要输入以下呼吁即可:

wsimport http://localhost:8080/ws/soap/hello?wsdl
jar -cf client.jar .
rmdir /s/q demo

对以上三行呼吁表明如下:

  • 第一行:通过 WSDL 地点生成 class 文件
  • 第二行:通过 jar 呼吁将若干 class 文件压缩为一个 jar 包
  • 第三行:删除生成的 class 文件(删除根目次即可)
  • 最终您将会获得一份名为 client.jar 的 jar 包,将这个 jar 包设置到您的 classpath 中,软件开发,利便在下面的代码中利用个中的类。

    能力:可以将以上三行呼吁放入一个 bat 文件中,在 Windows 中双击即可运行。

    第二步:写一个 Client 类,用于挪用 WS,需要利用上一步生成的 WS 客户端 jar 包。

    <!-- lang: java -->
    package demo.ws.soap_jdk;
    
    public class Client {
    
        public static void main(String[] args) {
            HelloService_Service service = new HelloService_Service();
    
            HelloService helloService = service.getHelloServicePort();
            String result = helloService.say("world");
            System.out.println(result);
        }
    }