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

相关文章

Java数组初始化的五种方式

《Java数组初始化的五种方式》数组是Java中最基础且常用的数据结构之一,其初始化方式多样且各具特点,本文详细讲解Java数组初始化的五种方式,分析其适用场景、优劣势对比及注意事项,帮助避免常见陷阱... 目录1. 静态初始化:简洁但固定代码示例核心特点适用场景注意事项2. 动态初始化:灵活但需手动管理代

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注