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


新闻资讯

MENU

软件开发知识

以及通过 jaxws:se 昆山软件开发 rviceBean 配置的 Spring Bean

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

原文出处: 黄勇

选框架犹如选媳妇,选来选去,最后我照旧选了“丑媳妇(CXF)”,为什么是它?因为 CXF 是 Apache 旗下的一款很是优秀的 WS 开源框架,具备轻量级的特性,并且能无缝整合到 Spring 中。

其实 CXF 是两个开源框架的整合,它们别离是:Celtix 与 XFire,前者是一款 ESB 框架,后者是一款 WS 框架。话说早在 2007 年 5 月,当 XFire 成长到了它的壮盛时期(最终版本是 1.2.6),溘然对业界公布了一个令人震惊的动静:“XFire is now CXF”,软件开发,随后 CXF 2.0 降生了,直到 2014 年 5 月,CXF 3.0 来临了。真是 7 年磨一剑啊!CXF 终于长大了,相信在不久的未来,必然会代替 Java 界 WS 龙头老大 Axis 的江湖职位,貌似 Axis 自从 2012 年 4 月今后就没有进级了,这是要辞别 Java 界的节拍吗?照旧后头有更大的行动?

如何利用 CXF 开拓基于 SOAP 的 WS 呢?

这就是我本日要与您分享的内容,重点是在 Web 容器中宣布与挪用 WS,这样也越发贴近我们实际事情的场景。

在 CXF 这个主角正是登台之前,我想先请出本日的副角 Oracle JAX-WS RI,简称:RI(日),全称:Reference Implementation,它是 Java 官方提供的 JAX-WS 类型的详细实现。

先让 RI 来跑跑龙套,先来看看如何利用 RI 宣布 WS 吧!

1. 利用 RI 宣布 WS

第一步:整合 Tomcat 与 RI

这一步稍微有一点点繁琐,不外也很容易做到。首先您需要通过以下地点,下载一份 RI 的措施包:

https://jax-ws.java.net/2.2.8/

下载完毕后,只需解压即可,假设解压到 D:/Tool/jaxws-ri 目次下。随后需要对 Tomcat 的 config/catalina.properties 文件举办设置:

common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,${catalina.home}/lib,${catalina.home}/lib/*.jar,D:/Tool/jaxws-ri/lib/*.jar

留意:以上设置中的最后一部门,其实就是在 Tomcat 中添加一系列关于 RI 的 jar 包。

看起来并不巨大哦,只是对现有的 Tomcat 有所改革罢了,虽然,您将这些 jar 包全部放入本身应用的 WEB-INF/lib 目次中也是可行的。

第二步:编写 WS 接口及其实现

接口部门:

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

import javax.jws.WebService;

@WebService
public interface HelloService {

    String say(String name);
}

实现部门:

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

import javax.jws.WebService;

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

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

留意:接口与实现类上都标注 javax.jws.WebService 注解,可在实现类的注解中添加一些关于 WS 的相关信息,譬喻:serviceName、portName 等,劳务派遣管理系统,虽然这是可选的,为了让生成的 WSDL 的可读性越发强罢了。

第三步:在 WEB-INF 下添加 sun-jaxws.xml 文件

就是在这个 sun-jaxws.xml 文件里设置需要宣布的 WS,其内容如下:

<!-- lang: xml -->
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">

    <endpoint name="HelloService"
              implementation="demo.ws.soap_jaxws.HelloServiceImpl"
              url-pattern="/ws/soap/hello"/>

</endpoints>

这里仅宣布一个 endpoint,并设置三个属性:WS 的名称、实现类、URL 模式。正是通过这个“URL 模式”来会见 WSDL 的,顿时您就可以看到。

第四步:陈设应用并启动 Tomcat

当 Tomcat 启动乐成后,会在节制台上看到如下信息:

2014-7-2 13:39:31 com.sun.xml.ws.transport.http.servlet.WSServletDelegate <init>
信息: WSSERVLET14: JAX-WS servlet 正在初始化
2014-7-2 13:39:31 com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized
信息: WSSERVLET12: JAX-WS 上下文监听措施正在初始化

哎呦,不错哦!照旧中文的。

随后,立马打开您的欣赏器,输入以下地点:

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

假如不出意外的话,您此刻应该可以看到如下界面了:

以及通过 jaxws:se 昆山软件开拓 rviceBean 设置的 Spring Bean

看起来这应该是一个 WS 节制台,利便我们查察宣布了哪些 WS,可以点击上面的 WSDL 链接可查察详细信息。