WebService基本使用

摘要:
importorg.zln.ws.server.domain.User;wsimport[options]<WSDL_ URI>指定jaxws/jaxb绑定文件或其他模式(每个<指定放置生成的输出文件编码的位置<指定目标包安静隐藏wsimport输出-s<版本>位置>

不使用任何框架,纯粹使用JDK开发一个服务端与客户端

  • 服务端

package org.zln.ws.server;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.zln.ws.server.domain.User;

import javax.jws.WebService;

/**
* Created by sherry on 16/12/15.
*/
@WebService
public class UserService {

/**
* 日志
*/
  private Logger logger = LoggerFactory.getLogger(UserService.class);

  public User getUser(User user) {
    logger.debug("收到查询参数:" + user);
    return new User();
  }

}

将需要保留服务的类,添加@WebService注解即可

然后将服务发布出去

package org.zln.ws.server;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.xml.ws.Endpoint;

/**
* Created by sherry on 16/12/15.
*/
public class Main {

/**
* 日志
*/
private static Logger logger = LoggerFactory.getLogger(Main.class);

public static void main(String[] args) {
Endpoint.publish("http://localhost:8080/Service/UserService",new UserService());
logger.debug("Service服务发布成功");
}

}




如果在浏览器地址中,能够访问指定的URL,就说明发布成功,这里是 http://localhost:8080/Service/UserService?wsdl
  • 客户端

首先使用 wsimport 命令生成代码,命令的使用方法参见

WebService基本使用第1张WebService基本使用第2张
用法: wsimport [options] <WSDL_URI>

其中 [options] 包括:
  -b <path>                 指定 jaxws/jaxb 绑定文件或附加模式
                            (每个 <path> 都必须具有自己的 -b)
  -B<jaxbOption>            将此选项传递给 JAXB 模式编译器
  -catalog <file>           指定用于解析外部实体引用的目录文件
                            支持 TR9401, XCatalog 和 OASIS XML 目录格式。
  -d <directory>            指定放置生成的输出文件的位置
  -encoding <encoding>      指定源文件所使用的字符编码
  -extension                允许供应商扩展 - 不按规范
                            指定功能。使用扩展可能会
                            导致应用程序不可移植或
                            无法与其他实现进行互操作
  -help                     显示帮助
  -httpproxy:<host>:<port>  指定 HTTP 代理服务器 (端口默认为 8080)
  -keep                     保留生成的文件
  -p <pkg>                  指定目标程序包
  -quiet                    隐藏 wsimport 输出
  -s <directory>            指定放置生成的源文件的位置
  -target <version>         按给定的 JAXWS 规范版本生成代码
                            默认为 2.2, 接受的值为 2.0, 2.1 和 2.2
                            例如, 2.0 将为 JAXWS 2.0 规范生成兼容的代码
  -verbose                  有关编译器在执行什么操作的输出消息
  -version                  输出版本信息
  -wsdllocation <location>  @WebServiceClient.wsdlLocation 值
  -clientjar <jarfile>      创建生成的 Artifact 的 jar 文件以及
                            调用 Web 服务所需的 WSDL 元数据。
  -generateJWS              生成存根 JWS 实现文件
  -implDestDir <directory>  指定生成 JWS 实现文件的位置
  -implServiceName <name>   生成的 JWS 实现的服务名的本地部分
  -implPortName <name>      生成的 JWS 实现的端口名的本地部分

扩展:
  -XadditionalHeaders              映射标头不绑定到请求或响应消息不绑定到
                                   Java 方法参数
  -Xauthfile                       用于传送以下格式的授权信息的文件: 
                                   http://username:password@example.org/stock?wsdl
  -Xdebug                          输出调试信息
  -Xno-addressing-databinding      允许 W3C EndpointReferenceType 到 Java 的绑定
  -Xnocompile                      不编译生成的 Java 文件
  -XdisableAuthenticator           禁用由 JAX-WS RI 使用的验证程序,
                                   将忽略 -Xauthfile 选项 (如果设置)
  -XdisableSSLHostnameVerification 在提取 wsdl 时禁用 SSL 主机名
                                   验证

示例:
  wsimport stock.wsdl -b stock.xml -b stock.xjb
  wsimport -d generated http://example.org/stock?wsdl
View Code

调用如下

package org.zln.ws.client;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.zln.ws.server.User;
import org.zln.ws.server.UserService;
import org.zln.ws.server.UserServiceService;

/**
* Created by sherry on 16/12/15.
*/
public class Main {
/**
* 日志
*/
private static Logger logger = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
//wsimport -s 目录 ws地址
UserService userService = new UserServiceService().getUserServicePort();
User user = new User();
User user1 = userService.getUser(user);
logger.debug("user:"+user1);
}
}

免责声明:文章转载自《WebService基本使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇laravel Event执行顺序setTag()与getTag()的使用介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

怎么使用gitee进行团队开发

1. 注册gitee账号 从官网进行注册,注册的时候注意尽量自己定义用户名,绑定手机号或者邮箱,不要使用微信登陆(否则会有坑) https://gitee.com/  2.注册完之后,使用自己的账号密码进行登陆 我在这里使用的是手机号登陆 3. 使用gitee创建仓库   这样就可以创建一个仓库了 4. clone 其他人的仓库 如果进行团队开发,A...

CentOS查询端口占用和清除端口占用的程序

1、查询端口号占用,根据端口查看进程信息 [root@server2 ~]# lsof -i:80COMMAND  PID   USER   FD   TYPE DEVICE SIZE NODE NAMEhttpd   5014   root    3u  IPv4  14346       TCP server2:http (LISTEN)2、根据进程号...

KML 入门

KML向导      KML是一种在Earth Browser(比如Google Earth,Google Maps,Google Maps for mobile)用于显示地理数据的文件格式。KML用使用一种可以嵌套元素和标记的结构并且基于XML标准。所有的这些标签都是大小写敏感的并且必须精确的出现在KML2.2Reference中.这个参考手册指出哪些标...

C#中实现web端展示JT文件

最近在公司项目中,碰到了需要在web端展示JT格式文件的3D图形,找了好多资料,最后实现了。 主要是将*.jt文件转换成*.html文件,然后将html文件用iframe嵌入到网页中展示。 效果为: 那么如何将*.jt文件转换成*.html文件呢? 那就需要先安装西门子的一个免费的软件:JT2GO 提取码:c7kh。 装完之后,JT2GO软件本身有将JT...

OCR2:tesseract字库训练

由于tesseract的中文语言包“chi_sim”对中文字体或者环境比较复杂的图片,识别正确率不高,因此需要针对特定情况用自己的样本进行训练,提高识别率,通过训练,也可以形成自己的语言库。 工具: Java虚拟机,由于jTessBoxEditor的运行依赖Java运行时环境,所以需要安装Java虚拟机。下载地址:http://www.oracle.co...

haproxy配置文件详解和ACL功能

HAProxy系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html haproxy几乎每个大版本都提供了官方手册(内容几乎都相同),手册非常详细。例如haproxy 1.7版本关于配置文件的官方手册:http://cbonte.github.io/haproxy-dconv/1.7/configu...