eclipse创建web service全过程

2023-11-18

创建Web Service步骤

一、创建服务端工程

1WebServerTest (web 工程)

FileNewOther——

选择Dynamic Web Project

配置Tomcat服务器

点击Browse选择Tomcat所在目录

点击Finish

点击Finish完成WebServerTest的创建

2.创建服务的类和方法

Java Resources:src上右键新建一个class

package com.test.service;

public class WSTest {

public String sayHello(String name){

return "Hello, "+name;

}

}

3、创建Web service

配置发布的服务

4发布服务

点击servers,右键单击空白处,NewServer

下一步

点击Add再点击Finish

查看服务的目录

启动服务器,输入http://localhost:8080/WebServerTest/services

有如下方法说明发布成功

5测试服务

调用服务方法

http://localhost:8080/WebServerTest/services/WSTest?method=sayHello&arg0=world!

WSTest 服务类

sayHello 服务方法

Arg0=world 方法参数

二、创建客户端工程

1、新建一个普通工程Java Project (WSClient)

2、利用wsdl文件生成服务接口类

选择工程WSClient右键新建一个Web Service Client

点击下一步

选中WSTest.wsdl点击OK最后点击finish生成如下文件

3、建测试类

package com.test.service;

import java.net.URL;

public class MyTest {

/**

 * @param args

 */

public static void main(String[] args) {

// TODO Auto-generated method stub

try {

WSTestService service = new WSTestServiceLocator();

//调用localhost的服务

WSTest wstest0 = service.getWSTest();

System.out.println(wstest0.sayHello("world"));

//调用其他路径的服务

URL portAddress = new URL("http://localhost:8080/WebServerTest/services/WSTest");

WSTest wstest1 = service.getWSTest(portAddress);

System.out.println(wstest1.sayHello("world"));

} catch (Exception e) {

e.printStackTrace();

}

}

运行测试类

三、不需要任何配置文件调用web service

上面的客户端测试类需要通过服务器生成的wsdl文件来生成服务接口,但在其他电脑上没有任何配置文件怎么调用上面发布的web service

通过使用axis提供的api即可,方法如下

public static void testToMySelf() {

try {

// 可以通过这个网址直接查看到wsdl文件

String endpoint = "http://10.10.114.163:8080/WebServerTest/services/WSTest?wsdl";

Service service = new Service();

// 通过service创建call对象

Call call = (Call) service.createCall();

// 设置service所在URL

call.setTargetEndpointAddress(new java.net.URL(endpoint));

// "http://service.test.com/"是通过上面网址查看到wsdl文件的targetNamespace的值,"sayHello"为方法名

call.setOperationName(new QName("http://service.test.com/","sayHello"));

// 传入的参数及类型

call.addParameter(new QName("http://service.test.com/", "name"),org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);

call.setUseSOAPAction(true);

// 返回参数的类型call.setSOAPActionURI("http://service.test.com/sayHello");

call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_STRING);

// Object 数组封装了参数,

String ret = (String) call.invoke(new Object[] { "world!" });

System.out.println("--------" + ret);

} catch (Exception e) {

e.printStackTrace();

}

}

四、根据上面原理访问下天气预报的web服务

public static void WeatherTest() {

try {

String endpoint = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";

Service service = new Service();

Call call = (Call) service.createCall();// 通过service创建call对象

// 设置service所在URL

call.setTargetEndpointAddress(new java.net.URL(endpoint));

call.setOperationName(new QName("http://WebXml.com.cn/",

"getWeatherbyCityName"));

call.addParameter(

new QName("http://WebXml.com.cn/", "theCityName"),

org.apache.axis.encoding.XMLType.XSD_STRING,

javax.xml.rpc.ParameterMode.IN);

call.setUseSOAPAction(true);

call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_VECTOR); // 返回参数的类型(不能用Array,否则报错)

call.setSOAPActionURI("http://WebXml.com.cn/getWeatherbyCityName");

Vector ret = (Vector) call.invoke(new Object[] { "大庆" });

System.out.println("--------" + ret);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

运行结果

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

eclipse创建web service全过程 的相关文章

  • 删除 PriorityQueue 的顶部?

    假设我使用 Java util 中的 PriorityQueue 类 我想从 PriorityQueue pq 中删除最大的数字 我们假设它位于队列的头部 下面的工作会起作用吗 1 int head pq peek pq dequeue h
  • 将 4 个字节转换为无符号 32 位整数并将其存储在 long 中

    我正在尝试用 Java 读取二进制文件 我需要读取无符号 8 位值 无符号 16 位值和无符号 32 位值的方法 执行此操作的最佳 最快 最美观的代码 是什么 我在 C 中做到了这一点 并做了类似的事情 uint8 t buffer uin
  • 如何在 Eclipse 中启用“实时搜索”?

    In 科莫多 编辑 http www activestate com komodo edit 工具栏中有一个输入字段 当我在其中输入文本时 它会突出显示匹配的搜索结果 Eclipse 中是否有类似的东西 直接或通过插件 As TK Gosp
  • Powermockito 可以在非最终具体类中模拟最终方法吗?

    假设我有一个非最终具体类 具有如下所示的最终方法 public class ABC public final String myMethod return test test 可以嘲笑吗myMethod 调用时返回其他内容junit usi
  • 从 HashMap 条目列表中删除重复项

    我有一个List
  • 检查 jar 是否从 shell 运行

    我有一个 java jar 程序 我试图在我的机器启动时运行它 理想情况下 shell 脚本将每 60 秒检查一次以确保 jar 正在运行 我如何检查 jar 是否在 centos 上运行 这似乎不起作用 我当前的 sh 文件 bin ba
  • Java 内存错误:无法创建新的本机线程

    运行 java 服务器时 我在 UNIX 服务器上收到此错误 Exception in thread Thread 0 java lang OutOfMemoryError unable to create new native threa
  • 如何暂停程序直到按下按钮?

    我使用从 jframe 扩展的类 它有一个按钮 我在程序中使用它 我希望当在我的程序中运行 jframe 时我的整个程序暂停 直到我按下按钮 我该怎么做 in c getch 做这个 我想要一个这样的功能 通过睡眠暂停执行 http dow
  • 无法将库添加到我的 Android 项目

    我正在创建一个新应用程序 我想使用一些像这样的库 https github com JakeWharton Android ViewPagerIndicator https github com JakeWharton Android Vi
  • Hazelcast Jet 变更数据捕获

    我在我的应用程序中使用 Hazelcast 更改数据捕获 CDC 我使用 CDC 的原因是 如果使用 jdbc 或其他替代功能将数据加载到缓存中 会花费大量时间 所以CDC将在数据库和 Hazelcast Jet 之间进行数据同步 Stre
  • 如何跨工作区保存 E​​clipse 启动配置文件?

    当我复制 Eclipse 项目目录时 它包含 classpath 和 project 文件 这样当我将同一目录带到另一个 Eclipse 实例时 我不必设置我的构建路径等 假设所有资源都包含在在项目中 而不是外部 但是 此过程不会导致启动配
  • 在 Android 上解析 RSS

    我有几个 RSS 源需要为我的应用程序进行解析 我按照这里的优秀教程进行操作 http w2davids wordpress com android rssatom feeds parsing with rome http w2davids
  • 没有字符串参数构造函数/工厂方法可以从字符串值 ('') 反序列化

    我在使用时遇到了 json 解析问题ObjectMapper类来自com fasterxml jackson databind包 我得到的错误是 com fasterxml jackson databind JsonMappingExcep
  • IntelliJ 对于 Java 项目使用的默认构建过程是什么?

    直接从 IntelliJ 中的 IDE 构建 Java 项目非常好 它速度很快 而且很有效 我无法找到任何有关 IntelliJ 如何进行这些默认构建的文档 我猜它使用Ant 我想做的是为下载我的项目的任何人自动化这个快速 轻松的构建过程
  • 公交车公共交通算法

    我正在开发一个可以查找公交路线的离线 C 应用程序 我可以提取时间表 巴士 路线数据 我正在寻找适用于基本数据的最简单的解决方案 可以使用什么算法来查找从巴士站 A 到巴士站 B 的路线 是否有适用于 C Java 的开源解决方案 数据库的
  • Spring 4 MVC 和 Websockets - 没有合适的默认 RequestUpgradeStrategy

    我需要 Websockets 在我的应用程序中进行实时更新 所以我找到了这个例子并一步一步地做到了here http raymondhlee wordpress com 2014 01 19 using spring 4 websocket
  • 从 Spring 启动运行 Java 类

    我使用的是Java8和Spring4 3 1 我有一个 Java Spring 应用程序托管由浏览器和移动应用程序客户端访问的 RESTfult 服务 其次 我编写了一个侦听事件的聊天服务器 socket io 来自客户 该聊天服务器正在从
  • 使用用户名和密码登录 LinkedIn 失败

    LinkedIn使用oauth登录其api 服务器中无法登录api 我尝试使用http请求登录linkedin并获取oauth verifier 但我得到了这样的回应 很抱歉 出现了问题 你的申请 请确保您 启用cookie并重试 或点击此
  • SQL准备语句如何通过多个可能的菜单选择进行选择?

    所以我有 4 个菜单选择 产品 位置 课程类型和类别 所有这些都可以为空 使用 JSF 编程 但这应该与这个问题无关 因为它是一个 SQL 问题 菜单选择将向托管 bean 发送用户选择的变量 并使用准备好的语句使用用户选择的菜单中的信息
  • java有类似C#的属性吗? [复制]

    这个问题在这里已经有答案了 C 属性 我的意思是 get 和 set 方法 是一个非常有用的功能 java 也有类似 C 的属性吗 我的意思是我们如何在 java 中实现类似以下 C 代码的内容 public string Name get

随机推荐

  • 【汽车电子】浅谈车载系统QNX

    目录 1 概述 2 QNX系统介绍 2 1 系统特点 2 2 系统结构 2 3 调度策略 3 QNX内核 4 QNX网络结构 5 QNX网络设备驱动 6 网络设备信息的统计 2 发展历程 3 应用场景 4 相关链接 1 概述 QNX是一种商
  • Stereo-Detection:YOLO v5与双目测距结合,实现目标的识别和定位测距

    简介 Stereo Detection 是一个传统的SGBM深度测距 yolov5目标检测 并部署在Jeston nano的开源教程 它致力于让更多的大四学生毕业 以及让研一学生入门 开源链接 yzfzzz Stereo Detection
  • Visual Studio运行C语言程序(第一个程序)

    以VS2017为例 首先打开VS 新建Visual C 空项目 建议将编写的程序放在一个文件夹里 并以编写程序当天的日期来命名 在Visual C 里选择C 文件 命名为自己容易认出的名称 后缀为 c就行 右击资源管理器的源文件 选择添加
  • 用Python爬取电影数据并可视化分析_python电影数据分析

    文章目录 一 获取数据 1 技术工具 2 爬取目标 3 字段信息 二 数据预处理 1 加载数据 2 异常值处理 3 字段处理 三 数据可视化 四 总结 一 获取数据 1 技术工具 IDE编辑器 vscode 发送请求 requests 解析
  • Spring refresh() 方法详解(启动Spring,bean的创建过程)

    Spring refresh方法详解 一 refresh 方法预览 二 refresh 方法中调用的每个方法 1 this prepareRefresh 激活开启容器 2 this obtainFreshBeanFactory 获取 bea
  • SQL Server 批量插入数据的两种方法

    在SQL Server 中插入一条数据使用Insert语句 但是如果想要批量插入一堆数据的话 循环使用Insert不仅效率低 而且会导致SQL一系统性能问题 下面介绍SQL Server支持的两种批量数据插入方法 Bulk和表值参数 Tab
  • CSAPP学习记录-Course Overview

    这是我开始学习CSAPP的笔记的第一遍 在接下来的内容 我会分享自己在学习CSAPP时的笔记 感受等等 学习资料来自b站 声明 所有内容基于自己的理解 如有错误感谢大家指出 链接 https www bilibili com video B
  • QT中按钮格式QSS代码

    鼠标正常时按钮效果 QPushButton myButton normal 鼠标正常时的效果 color 000000 background color rgb 40 85 20 改变背景色 border style inset 改变边框风
  • Hadoop3.x 之 MapReduce 开发总结(月薪过万)

    Hadoop之 MapReduce开发总结 MapReduce 开发总结 月薪过万 1 输入数据接口 InputFormat 月薪过万 2 逻辑处理接口 Mapper 月薪过万 3 Partitioner 分区 月薪过万 4 Compara
  • 图像分割2021

    cvpr2022总结 CVPR 2022 图像分割论文大盘点 大林兄的博客 CSDN博客 图像分割最新论文 尽管近年来实例分割取得了长足的进步 但如何设计具有实时性的高精度算法仍然是一个挑战 本文提出了一种实时实例分割框架OrienMask
  • [论文精读]BERT

    BERT Pre training of Deep Bidirectional Transformers for Language Understanding Abstract 作者介绍了一种新的语言模型 叫做BERT 是来自transfo
  • 服务器硬盘故障运维,运维人员处理云服务器故障方法总结

    我们团队为Ucloud云计算服务提供专家技术支持 每天都要碰到无数的用户故障 毕竟IAAS涉及比较底层的东西 不管设计的是大客户也好还是小客户 有了问题就必须要解决 也要要是再赶上修复时间紧 奇葩的技术平台 缺少信息和文档 基本上这过程都会
  • 微信小程序之计算器

    参考博客 微信小程序 简易计算器 Huang xianlong的博客 CSDN博客 微信小程序计算器 效果图 代码 calculator wxml
  • python学习小报2--python软件使用的注意事项

    一 命令行基本操作 安装好python之后 可以通过右键windows 选中运行 然后输入cmd进入系统页面 点击确定 进入系统页面 gt gt gt 表示提示符 此时在提示符之后输入python点击回车 即可进入python编程 从图中即
  • 2023年第二届计算与人工智能国际会议(ISCAI 2023)

    会议简介 Brief Introduction 2023年第二届计算与人工智能国际会议 ISCAI 2023 会议时间 2023年10月13 15日 召开地点 中国 上海 大会官网 www iscai org 2023年第二届计算与人工智能
  • 机器学习之基础知识(全)

    目录 1 机器学习概述 1 1 人工智能概述 1 1 1 人工智能使用场景 1 1 2 人工智能小案例 1 2 人工智能发展历程 1 2 1 图灵测试 1 2 2 发展历程 1 2 3 小结 1 3 人工智能主要分支 1 3 1 人工智能
  • RxJS新手入门

    文章目录 1 介绍 2 核心概念 3 基本运作过程 4 RxJS 如何通过运算符过滤资料 5 RxJS 主体物件 Subject 的用法 6 弹珠图 7 如何选择运算符 1 介绍 RxJS 是什么 用一句话类概括就是 RxJS 是用于 Ja
  • Kali Linux没有无线网卡?玩个锤纸~

    Kali Linux没有无线网卡 玩个锤纸 一 USB无限网卡 使用Kali linux 先准备好一个适合Kali系统的USB外置无限网卡 注意内置网卡并不适合渗透测试 Linux系统的指令相对于一般人来说比较晦涩难懂 最好选择免驱动类型
  • 基于Servlet-API型JAVA内存马(filter型、servlet型、listener型)

    前言 常规的木马实际写出落地后容易被检查出来 并且webshell被发现后也就导致我们的行动被发现 很容易造成木马被查杀 利用漏洞被修复 使我们的攻击变得更加艰难 所以内存马的出现与利用无疑是增强了隐蔽性 可以让我们的攻击更加稳定 持久 而
  • eclipse创建web service全过程

    创建Web Service步骤 一 创建服务端工程 1 WebServerTest web 工程 File New Other 选择Dynamic Web Project 配置Tomcat服务器 点击Browse选择Tomcat所在目录 点