如何在 Axis2 客户端中正确使用 WS-Addressing?

2023-11-27

全部, 我正在尝试编写一个在 Axis2.1.5 中调用 Web 服务客户端的 Junit 测试,但我对如何准确地将其设置为使用 WS-Addressing 感到困惑。

我使用 wsdl2java 生成了一个客户端存根,并且使用 axis2 二进制发行版中的 axis2.xml 和模块存储库。

我知道我需要使用 WS-Addressing 的 MemberSubmission 版本,并且我think我已正确设置(使用选项),但标头似乎未正确生成。 (我说“似乎”是因为我也不知道 SOAPMonitor 模块如何工作 - 我也欢迎任何有关这方面的提示!)。

不过,我主要的困惑在于“使用”寻址模块到底需要什么。使用引用寻址模块的 axis2.xml 文件设置我的 ConfigurationContext 是否足够?像这样? :

//standard out of the box axis2 configs
 ConfigurationContext myConfigContext = ConfigurationContextFactory
   .createConfigurationContextFromFileSystem("C:/devapps/axis2-1.5.1/repository","C:/devapps/axis2-1.5.1/conf/axis2.xml");

  Options options = new Options();
  EndpointReference targetEPR = new EndpointReference(
    "https://host:port/service.asmx");

  options.setTo(targetEPR);

                //I believe this is what I'm supposed to do to specify the 
  //MemberSubmission version of WS-Addressing
  options.setProperty(AddressingConstants.WS_ADDRESSING_VERSION,
    AddressingConstants.Submission.WSA_NAMESPACE);
  //No idea of this is needed or not.
  options.setProperty(AddressingConstants.INCLUDE_OPTIONAL_HEADERS,
    Boolean.TRUE);
  options.activate(myConfigContext);
  options.setAction("someAction");

  CaseDetailsServiceStub stub = new CaseDetailsServiceStub(
    "https://host:port/service.asmx");
  stub._getServiceClient().setOptions(options);

  //I'm calling this from a Junit test
  assertNotNull(stub.someAction(someParam));

通过像上面那样设置我的选项,可以在日志文件中看到模块是从 axis2.xml 加载的:

[INFO] Deploying module: addressing-1.5.1 - file:/C:/devapps/axis2-1.5.1/repository/modules/addressing-1.5.1.mar

但我认为我没有收到任何寻址标头。此时我从服务器返回的错误如下:

标头http://schemas.xmlsoap.org/ws/2004/08/addressing:操作对于最终收件人是必需的,但是 消息中不存在。

因此,我还看到一些文档引用了“参与”模块。但是,当我尝试将此行添加到我的代码并将routing-1.5.1.mar 添加到我的类路径时:

stub._getServiceClient().engageModule("addressing");

我收到一条错误消息:

无法使用模块:寻址 org.apache.axis2.AxisFault:无法参与模块:soapmonitor 在 org.apache.axis2.client.ServiceClient.engageModule(ServiceClient.java:358)

不过,日志中没有其他信息或堆栈跟踪,所以我很困惑。

关于我做错了什么有什么想法吗?


将 addressign.mar 和 sopamoniter.mar 放入项目的 lib 或类路径中。 这个对我有用 从 axis2 套件中找到 mar

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

如何在 Axis2 客户端中正确使用 WS-Addressing? 的相关文章

随机推荐

  • UISearchDisplayController 未正确显示自定义单元格

    所以我有一个包含部分和行的 tableView 并且它使用自定义单元格类 自定义单元格有一个图像视图和一些标签 表视图工作正常 搜索工作正常 但搜索不显示我的自定义单元格类中的任何标签 仅显示具有正确图像的 imageView 我很困惑为什
  • 如何在 PowerShell 脚本中指定非位置参数?

    我有以下内容param块在脚本的开头 param string command string version 1 1 0 这很好 只有我需要 version to not是一个位置参数 所以如果你输入 script ps1 run argu
  • 动态 JQuery 日期选择器代码

    我需要创建动态过滤器来动态添加 删除行 它包含一个下拉框 根据所选的下拉框值 我创建一个动态 td 可能有一个文本字段或下拉列表 如果它是文本字段 那么我必须为该文本字段添加日期选择器 我已经这样做了 除了动态生成的文本字段的日期选择器 如
  • 相机姿态估计:如何解释旋转和平移矩阵?

    假设我在两个图像之间具有良好的对应关系 并尝试恢复它们之间的相机运动 我可以使用 OpenCV 3 的新工具来实现此目的 如下所示 Mat E findEssentialMat imgpts1 imgpts2 focal principal
  • 具有多选功能的 UICollectionView 不会选择超过十几个项目

    当使用UICollectionView with allowsMultipleSelection设置为 是 时 只有十几个项目可供选择 UICollectionViewDelegate停止打电话collectionView didSelec
  • 从背景中剪出的透明文本

    有什么办法可以制作一个从背景中剪出的透明文本效果如下图 用CSS吗 如果因为图像取代文本而失去所有宝贵的 SEO 那将是令人遗憾的 我首先想到的是阴影 但我想不出任何东西 图片为网站背景 绝对定位 img tag css3 是可以的 但并非
  • iOS:使用 ContainerView 具有动态内容的 UIScrollView (一步一步)

    尽管这里有多个问题和答案 但我无法创建一个UIScrollView具有静态和动态内容 通过使用ContainerView 并使尺寸正常工作 因此 我将提供一步一步的指导 直到我无法取得任何进展并且有人可以提供解决方案为止 这样我们就会有一个
  • 在 Objective C 中导入标头

    在 Objective c 中 当我们按照惯例将一个类的对象使用到另一个类中时 我们应该在 h 文件中转发声明该类 即 class classname 并且应该在 m文件中导入头文件 即 import header h 但是如果我们在 h
  • 在 Android 应用程序之间共享身份验证令牌

    我需要在 2 个或更多 Android 应用程序之间共享通用的持久登录 身份验证令牌 诀窍在于 任何一个应用程序都不需要安装另一个应用程序即可工作 它们是相互独立的 因此 在应用程序登录之前 它会问一个问题 是否可能有另一个友好的应用程序可
  • 在 css 样式表中添加指向图像的链接

    我希望在 CSS 样式表中添加指向图像的链接 以便在按下图像时它将导航到该链接 图像本身的代码是 logo background image url images logo png width 981px height 180px marg
  • C# ASP.NET 页面离开事件?

    我正在寻找一个会触发的事件或一种判断用户是否离开页面的方法 导航到另一个页面或完全关闭该页面 通过引发的事件这可能吗 本身不在 ASP NET 中 您必须编写一些前端 JavaScript 才能使用类似的方法来执行此操作window onb
  • 使用 Scikit Learn SVM 准备文本分类数据

    我正在尝试应用 Scikit learn 中的 SVM 对我收集的推文进行分类 因此 将有两个类别 将它们命名为 A 和 B 目前 我将所有推文分类为两个文本文件 A txt 和 B txt 但是 我不确定 Scikit Learn SVM
  • 根据日期选择最近 5 行

    我已经有一段时间没有接触 PHP 了 并尝试选择数据库中最近的 5 个条目并将它们打印到屏幕上 我看到不再推荐使用 mysql 命令并使用 PDO gt mysql 代替 我的查询是这样的 SELECT id title date auth
  • Windows堆块头解析和大小计算

    如何根据从内存读取的原始字节计算堆块大小 我尝试了下面的事情 0 001 gt heap Index Address Name Debugging options enabled 1 00500000 2 00280000 3 008f00
  • Python中如何获取实例变量?

    Python中是否有内置方法来获取所有类实例变量的数组 例如 如果我有以下代码 class hi def init self self ii foo self kk bar 我有办法做到这一点 gt gt gt mystery method
  • 准备语句是否可以保护您的数据库?

    我知道你们中的一些人可能会结束这个问题 但我的问题是由你们和你们的回答提出的 我正在阅读过去两个小时有关 SQL 注入以及如何保护数据库的问题和解答 我看到的大量网页和教程也是如此 我发现一半的人声称准备语句确实可以保护您的数据库 而另外
  • Visual Studio 2010:复制类的最简单方法?

    有没有一种简单的方法可以用不同的名称复制一个类 不确定这是否可以作为最简单的方法 但如果您有锐锐 你可以使用它的复印类型重构以复制类 接口 结构 并控制副本所在的命名空间并在副本中命名 这意味着如果您复制具有 5 个构造函数的类 则副本将全
  • typescript 4.4.4:tsconfig 路径未按预期解析

    我的 tsconfig json compilerOptions target ES2018 module CommonJS lib ESNext ESNext AsyncIterable skipLibCheck true sourceM
  • 致命:用户“postgres”的密码身份验证失败

    在 ubuntu 中收到此错误消息 在 pg hba conf 文件中 我尝试在不同时间使用 ident peer trust md5 但没有成功 请帮忙 在你的 pg hba conf 中 IPv4 local connections T
  • 如何在 Axis2 客户端中正确使用 WS-Addressing?

    全部 我正在尝试编写一个在 Axis2 1 5 中调用 Web 服务客户端的 Junit 测试 但我对如何准确地将其设置为使用 WS Addressing 感到困惑 我使用 wsdl2java 生成了一个客户端存根 并且使用 axis2 二