使用 Axis2 创建 Web 服务的步骤 - 客户端代码

2024-04-01

我正在尝试创建一个网络服务,我的交易工具是:

**

Axis2、Eclipse、Tomcat、Ant

**

我需要从代码创建一个 Web 服务,即编写一个基本的 java 类,该类将具有要在 WSDL 中声明的方法。然后使用 java2WSDL.sh 创建我的 WSDL。

那么,这种方法是否正确:

  1. 用实际的业务逻辑编写我的 Java 类
package packageNamel;

public class Hello{
public void World(String name)
          {
            SOP("Hello" + name);
          }
}
  1. 现在,当我将此 Hello.java 传递给 java2WSDL.sh 时,这将为我提供 WSDL。
  2. 最后,我将编写 services.xml 文件,并使用以下目录结构创建 Hello.aar:

    你好.aar

    • packageName
      • 同学们好
    • META-INF
      • 服务.xml
      • 清单.MF
      • 你好.WSDL

现在,我假设,当我将 aar 放入 tomcat1/webapps/axis2/WEB-INF/services 时,我的服务将被部署

但是,我的问题来了,我如何访问该方法World(String name)???!!,即我对客户端代码一无所知!

请启发我如何制作一个非常基本的 Web 服务并调用该方法。上述3个步骤可能是错误的。这是一个社区维基,请随意编辑。

Thanks


我假设您只对网络服务客户端感兴趣?

Option 1

使用 Axis2 调用 Web 服务休息支持 http://ws.apache.org/axis2/1_5_1/rest-ws.html, 例如:

Option 2

Use SOAPUI http://www.soapui.org/。它可以通过读取服务的 WSDL 为您生成 SOAP 消息。我客户的测试人员一直在广泛使用它,但对 Web 服务技术只有非常广泛的了解。一个令人印象深刻的工具。

Option 3

Groovy 客户端(对于其他基于 JVM 的语言也采用相同的方法)

Use the wsdl2java为 Shakespeare Web 服务创建客户端存根类的工具:

生成.sh:

$AXIS2_HOME/bin/wsdl2java.sh -d adb -s -o build -uri http://www.xmlme.com/WSShakespeare.asmx?WSDL
ant -file build/build.xml 

GetSpeech.groovy:

// Dependencies
// ============
import com.xmlme.webservices.ShakespeareStub

@Grapes([
    @Grab(group='org.apache.axis2', module='axis2-kernel', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-adb', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-transport-local', version='1.5.1'),
    @Grab(group='org.apache.axis2', module='axis2-transport-http', version='1.5.1'),
    @Grab(group='xerces', module='xercesImpl', version='2.6.2'),
    @GrabConfig(systemClassLoader=true)
])

// Main program
// ============
def stub = new ShakespeareStub()

// Request payload
def request = new ShakespeareStub.GetSpeech()
request.setRequest("Friends, romans, countrymen")

// Send request
response = stub.getSpeech(request)

println response.getGetSpeechResult()

使用 -cp 参数将生成的代码添加到脚本的类路径中

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

使用 Axis2 创建 Web 服务的步骤 - 客户端代码 的相关文章

随机推荐

  • Bower/bower-asset 在 yii2 等 php 应用程序中扮演什么角色

    最近我部署了一些项目 例如trntv yii2 starter kit https github com trntv yii2 starter kit 等等 但所有应用程序都在 vendor bower 而不是 vendor bower b
  • 使用 XSLT 在字符串/子字符串中的每个实例之后进行选择

    我正在尝试编写一个 XSLT 样式表 该样式表将处理 Dublin Core XML 编目记录并为每本书创建芝加哥 APA 和 MLA 版本的引文 除了 APA 作者的问题之外 我一切都进展顺利 APA 的作者风格需要作者的姓氏 完成 逗号
  • 最佳实践:显示通过多行文本框输入的文本

    我有一个多行文本框 当用户简单地键入时 文本框会包裹文本 并将其保存为单行 用户也可能输入换行符 例如在输入 项目符号 列表时 例如 Here are some suggestions fix this remove that and an
  • 将数据传递到 Rails 部分

    编辑 解决方案完美运行 dom id http api rubyonrails org classes ActionController RecordIdentifier html 我正在尝试将数据传递给部分数据并使用它来更改用户的角色 目
  • 如何使用支持库修复缩放的 FloatingActionButton 上的阴影 23

    我在使用支持库 23 的 KitKat 设备上有一个 FAB 我正在缩放按钮以获得过渡效果 通过将其包含在调整大小的视图中 这基本上与阴影不同 阴影以一种奇怪的形式出现 参见屏幕截图中缩放的红色按钮 蓝色按钮是全尺寸 实际发生的情况是 阴影
  • C# 验证 CRL 列表中的证书

    如何以编程方式检查某个证书是否已从其 CA CRL 列表中撤销 我正在这样做 X509Chain ch new X509Chain ch ChainPolicy RevocationMode X509RevocationMode Onlin
  • SoapFaultMappingExceptionResolver 永远不会遇到常规 java 异常

    谁能告诉我为什么我无法使用解析器捕获常规 Java 异常 以便我可以在响应发回之前对其进行转换 它永远不会遇到断点 如果不可能 我该怎么办 SoapFaultMappingExceptionResolver public class Lis
  • Conda 环境中出现意外的 Python 路径

    在 Conda 环境中 base在这里 我对 Python 路径中的目录顺序感到惊讶 python c import sys print sys path export projects III data wcmp bioinformati
  • 如何在 Java 中刷新 GUI?

    我有一个与 Java 相关的一般性问题 我正在编写一个具有 GUI 菜单的应用程序 我正在尝试根据单选按钮的选择来更改 GUI 菜单的一部分 我需要 重绘整个窗口或仅更新该部分 setVisible true 如果我只使用上面 1 中的语句
  • git 从“工作树”中查找提交

    假设有人克隆了一个 git 存储库并删除了 git 文件夹 有没有办法恢复他们所在的提交 这不是重复的恢复 git 文件夹的最佳方法 https stackoverflow com q 24775326 1248889 or 删除的 git
  • Kubernetes 相当于 `docker run --init`

    建议的最佳实践是不要将 dockerized Node JS 应用程序作为 PID 1 运行 请参阅https github com nodejs docker node blob master docs BestPractices md
  • 如何通过其接口定义composite内部repeater的内容?

    我有一个复合组件ui repeat并想要定义的内容ui repeat通过复合材料的界面 以下代码在 MyFaces 中工作 但看起来更像是一个 hack 因为变量名称varRepeat必须在复合之外已知 并且仅在没有提供应在其他地方渲染的其
  • 如何将位图保存到手机图库中? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我拍一张照片并在图像视图中显示它 然
  • Java中高效地将文件从URL读取到byte[]中

    我正在尝试找到一种更有效的方法来从远程 URL 读取文件并将其保存到字节数组中 这是我目前拥有的 private byte fetchRemoteFile String location throws Exception URL url n
  • C# 控制台应用程序 Azure AD 如何模仿 powershell Get-AzureADUser

    有没有办法模仿 powershell 的 Get AzureADUser 来读取给定用户的 AD 属性 而无需注册我尝试使用 Azure 构建的 C 控制台应用程序 我知道您可以在 C 中运行 powershell 但我想知道是否可以采取不
  • 了解多线程

    我只是有一个关于并发运行的线程及其在对象上的锁的问题 据我了解 调用 wait 方法的线程将进入等待列表 并允许阻塞列表中的另一个线程接管对象的锁 在同步代码内 如果现在拥有对象锁的线程调用notify 方法 它会唤醒调用wait 的线程
  • 使用 Fargate 对 ECS 服务的多个端口进行 AWS 负载均衡

    AWS 文档中提到 需要经典负载均衡器才能将 ECS 服务连接到多个端口 https docs aws amazon com AmazonECS latest developerguide service load balancing ht
  • 在运行时访问函数源代码的宏

    使用 Scala 宏我想访问函数 f 的源代码 这是我的问题的简化示例 def logFImplementation f gt Boolean val sourceCodeOfF String lt how to get source co
  • 如何使用 Xcode 服务器导出临时存档

    我正在使用 Xcode 服务器 Xcode 9 beta 6 并定义了一个机器人来使用我的临时配置文件归档和导出临时构建 我已关闭项目中的自动签名 并在 bot Arguments 窗口中为 xcodebuild 定义了参数 包括 DEVE
  • 使用 Axis2 创建 Web 服务的步骤 - 客户端代码

    我正在尝试创建一个网络服务 我的交易工具是 Axis2 Eclipse Tomcat Ant 我需要从代码创建一个 Web 服务 即编写一个基本的 java 类 该类将具有要在 WSDL 中声明的方法 然后使用 java2WSDL sh 创