Java中WebService接口的生成、打包成.exe、设置成Windows服务、及其调用、Apache CXF调用

本文主要是介绍Java中WebService接口的生成、打包成.exe、设置成Windows服务、及其调用、Apache CXF调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Java中WebService接口的生成:

1、在eclipse工具中新建一个普通的JAVA项目,新建一个java类:JwsServiceHello.java

package com.accord.ws;import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;/**
* Title: ServiceHello
* Description: 基于jdk1.6以上的javax.jws 发布webservice接口@WebService - 它是一个注解,用在类上指定将此类发布成一个ws。Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。 
* Version:1.0.0  
* @author panchengming*/
@WebService  
public class JwsServiceHello {/** 供客户端调用方法  该方法是非静态的,会被发布* @param name  传入参数* @return String 返回结果* */public String getValue(String name,String age){return "欢迎你! "+name + "," + "今年" + age + "岁";}/*** 方法上加@WebMentod(exclude=true)后,此方法不被发布;* @param name* @return*/@WebMethod(exclude=true)  public String getHello(String name){return "你好! "+name;}/** 静态方法不会被发布* @param name* @return*/public static String getString(String name){return "再见!"+name;}//通过EndPoint(端点服务)发布一个WebServicepublic static void main(String[] args) {/*参数:1,本地的服务地址;2,提供服务的类;*/Endpoint.publish("http://10.10.14.70:8080/Service/ServiceHello", new JwsServiceHello());System.out.println("发布成功!");}
}

2、运行,控制台会输出:发布成功!

3、浏览器访问测试:地址栏 输入:http://10.10.14.70:8080/Service/ServiceHello?wsdl

如果出现这些就成功了!!!

注:如果想打包成.exe并设置成Windows服务,请参考 二、三 详细内容;

二、打包成.exe:

参考链接:https://blog.csdn.net/u013456370/article/details/81704874

三、.exe设置成Windows服务:

参考链接:https://blog.csdn.net/u013456370/article/details/104633436

四、调用、Apache CXF调用:

上面的接口已经发布成功:http://10.10.14.70:8080/Service/ServiceHello?wsdl
1、普通代码调用:

生成代码:

①、在eclipse中创建一个普通JAVA项目,命名为:ws2

②、在DOS命令中输入:wsimport -s “src目录” -p “生成类所在包名” -keep “wsdl发布地址”

例如:wsimport -s D:\workspace\ws2\src -p com.pcm.ws.jws -keep http://10.10.14.70:8080/Service/ServiceHello?wsdl

③、成功则返回:

parsing WSDL… 
generating code… 
compiling code… 

④、在eclipse项目中刷新 ws2项目,生成代码如下:

⑤、新建调用类:JwsClientHello.java

package com.pcm.ws.jws.client;import com.pcm.ws.jws.JwsServiceHello;
import com.pcm.ws.jws.JwsServiceHelloService;public class JwsClientHello {public static void main(String[] args) {JwsServiceHello hello = new JwsServiceHelloService().getJwsServiceHelloPort();String name = hello.getValue("张三", "6");System.out.println(name);}
}

⑥、运行,控制台输出:欢迎你! 张三,今年6岁

 

注:生成代码的方式有多种,这只是其中一种!!!

参考链接:https://blog.csdn.net/qazwsxpcm/article/details/70370490 

 

2、Apache CXF调用 

①、新建Maven项目:(因为需要一些jar,懒得一个一个下载了)

②、打开:pom.xml文件:

<dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId><version>3.3.0</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-transports-http</artifactId><version>3.3.0</version></dependency>

③新建一个测试类:WebServiceTest.java


import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
/*** 创建一个WebService客户端,测试WebService服务端的可用性*/
public class WebServiceTest {public static void main(String[] args) {// CXF动态客户端工厂JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();// WSDL文档url配置()String wsdlUrl = "http://10.10.14.70:8080/Service/ServiceHello?wsdl";Object[] objects = null;try {// 获取CXF客户端 Client client = dcf.createClient(wsdlUrl);// 调用Web Service方法objects = client.invoke("getValue", "张三", "5");} catch (Exception e) {e.printStackTrace();}// 获取调用结果System.out.println("调用结果:" + objects[0]);System.out.println("=========>");try {// 获取CXF客户端Client client = dcf.createClient(wsdlUrl);// 调用Web Service方法objects = client.invoke("getValue", "旺财", "8");} catch (Exception e) {e.printStackTrace();}// 获取调用结果System.out.println("调用结果:" + objects[0]);}
}

④、运行,控制台输出:

调用结果:欢迎你! 张三,今年5岁
=========>
调用结果:欢迎你! 旺财,今年8岁

 

3、普通代码调用、Apache CXF调用调用的优缺点:

需要不需要额外的Jar包

 

这篇关于Java中WebService接口的生成、打包成.exe、设置成Windows服务、及其调用、Apache CXF调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146922

相关文章

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi