是否可以使用 jax-ws 生成 xml,但不将其发送出去

2023-12-03

所以这是场景: 我们有 PeopleSoft,希望从销售人员来回发送消息。不幸的是,PeopleSoft 没有像 wsimport 这样的工具,它可以使用 wsdl 并为您生成类。有一些东西会消耗 wsdl,但它所做的只是生成存根消息对象。开发人员仍然需要编写代码来手动生成 xml 消息字符串。

我显然不想做所有这些。所以我知道可以从 PeopleSoft 内部调用 java。我还知道我可以仅使用生成的类发送消息,但我想使用 PeopleSoft 内置的消息监视功能。

所以我正在考虑的一个可能的解决方案是:

  1. 调用java中的webservice方法(不发送消息)
  2. 获取 xml
  3. 通过 peoplesoft 机制发送 xml
  4. 获取响应 xml
  5. 将响应 xml 传递回响应 java 类
  6. 使用 java 类获取 xml 中的值

我疯了还是这可能?

附注我是一名 Java 开发新手

这是我的处理程序类来获取 xml,但需要某种方法来防止发送消息。

public class LoggingHandler implements SOAPHandler<SOAPMessageContext> {
 // change this to redirect output if desired
private static PrintStream out = System.out;
private String xmlOut = null;

public Set<QName> getHeaders() {
    return null;
}

public boolean handleMessage(SOAPMessageContext smc) {
    logToSystemOut(smc);
    return true;
}

public boolean handleFault(SOAPMessageContext smc) {
    logToSystemOut(smc);
    return true;
}

// nothing to clean up
public void close(MessageContext messageContext) {
}

public String getXmlOut() {
    return xmlOut;
}

/*
 * Check the MESSAGE_OUTBOUND_PROPERTY in the context
 * to see if this is an outgoing or incoming message.
 * Write a brief message to the print stream and
 * output the message. The writeTo() method can throw
 * SOAPException or IOException
 */
private void logToSystemOut(SOAPMessageContext smc) {
    Boolean outboundProperty = (Boolean)
        smc.get (MessageContext.MESSAGE_OUTBOUND_PROPERTY);


    SOAPMessage message = smc.getMessage();
    try {
        ByteArrayOutputStream baOut = new ByteArrayOutputStream();
        message.writeTo(baOut);
        xmlOut = new String(baOut.toByteArray());


    } catch (Exception e) {
        out.println("Exception in handler: " + e);
    }
}

}

Java Web 服务中有一种系统方法可以实现此目的,即 JAX-WS。只需使用 SOAP Handler 应用拦截器模式。处理程序类将在handleMessage(SOAPMessageContext mc) 方法中拦截消息,对SOAP Envelope 的XML 正文执行您想要执行的任何操作。并停止 SOAPMessage 的进一步处理。

然后,您可以按照自己的喜好处理 XML(例如通过 peoplesoft 机制发送)。当响应从 peoplesoft 返回时,绕过出站处理程序链......(我真的必须看看如何绕过链)。我只是提出一个想法,你必须进行 POC。我从来没有这样做过,否则我会共享代码。但这是绝对可行的。

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

是否可以使用 jax-ws 生成 xml,但不将其发送出去 的相关文章

  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • Java 中的 XPath 节点集

    我在 eclipse 中有这段代码 NodeSet nodes NodeSet xPath evaluate expression inputSource XPathConstants NODESET 它给我 NodeSet 上的编译时错误
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 当分配给变量时,我可以以某种方式重用 Gremlin GraphTraversals 代码吗?

    我有看起来像这样的 GraphTraversals attrGroup GraphTraversal
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 使用 Flyway 和 Hibernate 的 hbm2ddl 在应用程序的生命周期中管理数据库模式

    我正在开发 Spring Hibernate MySql 应用程序 该应用程序尚未投入生产 我目前使用 Hibernatehbm2ddl该功能对于管理域上的更改非常方便 我也打算用Flyway用于数据库迁移 在未来的某个时候 该应用程序将首
  • Android JNI C 简单追加函数

    我想制作一个简单的函数 返回两个字符串的值 基本上 java public native String getAppendedString String name c jstring Java com example hellojni He
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个

随机推荐

  • Swift 中的 URL 验证

    在我的 Swift iOS 项目中 我想在请求服务器之前检查 url 是否有效 我之前在 Objective C 代码中检查了许多元素 例如 www http https 等是否存在 以验证 url 是否正确 Swift 代码中有类似的东西
  • 微调预训练的 word2vec Google 新闻

    我目前正在使用在 Google 新闻语料库上训练的 Word2Vec 模型 来自here 由于仅在 2013 年之前对新闻进行训练 因此我需要更新向量 并根据 2013 年之后的新闻在词汇表中添加新单词 假设我在 2013 年之后有一个新的
  • 为什么移动 0 会截断小数?

    我最近发现了这段JavaScript代码 Math random 0x1000000 lt lt 0 我知道第一部分只是生成 0 到 0x1000000 16777216 之间的随机数 但第二部分似乎很奇怪 执行位移 0 有何意义 我不认为
  • 如果我从共享扩展打开包含应用程序,Apple 会拒绝吗?

    我正在使用提供的解决方案here从共享扩展中打开我的内容 尽管它很脆弱 但它似乎没有使用任何私有 API 方式来做到这一点 如果我使用我的应用程序 Apple 会拒绝它吗 有人拥有经过批准的应用程序 可以从共享扩展中打开包含应用程序的应用程
  • MySQL:截断表与从表中删除

    我们什么时候使用DELETE命令与TRUNCATE命令 我试图在互联网上查找 但两个命令都删除了数据 我看不出有什么区别 从表中删除 1 DELETE is a DML Command 2 DELETE statement is execu
  • F# 返回 ICollection

    我正在使用用 C 创建的库 我一直致力于将一些代码移植到 F 但必须使用 C 库中的相当多的基础类型 一段代码需要计算一个值列表并将其分配给类中的公共字段 属性 该字段是一个包含两个 ICollection 的 C 类 我的 F 代码工作正
  • 如何从 com.google.api.client.googleapis.json.GoogleJsonResponseException 上失败的 Cloud Dataflow 作业恢复: 410 Gone

    我的 Cloud Dataflow 作业在运行 4 小时后神秘地失败 因为工作人员抛出此异常四次 在一小时内 异常堆栈看起来像这样 java io IOException com google api client googleapis j
  • 当代码发生更改时,Visual Studio 2010 在运行前不会生成

    多年来我一直使用 F5 开始调试 来构建代码 如果它已经过时 然后进行调试 这也适用于 VS 2010 但是今天它只是在没有构建的情况下开始调试 假设我对项目进行了清理 然后按 F5 而不是构建它 以便它可以运行 它会抛出一条错误消息 指出
  • Angular 4 Form FormArray 添加按钮以添加或删除表单输入行

    我正在使用 Angular 4 0 2 构建一个应用程序 如何向表单添加按钮以添加新的输入行和删除按钮以删除特定行 我的意思是我想要一个像这样的表格 我希望我的表格看起来像这样 这是我的代码 添加发票 component html h3 c
  • 无法修改iframe的内容,什么问题?

    我正在尝试修改 iframe 的内容 但它不起作用 这是我的 main html h3 Main page h3
  • 为什么枚举与 Windows 中的位字段不兼容?

    我正在研究 Windows 和 Linux 的 EBDS 协议接口 我试图将协议所需的所有数据打包到结构中 然后将结构本身和所有其他内容写入串行端口 将其发送到设备 协议的第一部分是数据打包 其中一个包的部分是与以下描述相匹配的控制字节 B
  • 在 C++ 中扩展数组时出现问题

    我正在为课堂编写一个模拟 其中一部分涉及生物体的繁殖 我的生物体被保存在一个阵列中 当它们繁殖时我需要增加阵列的大小 因为我有多个生物体的多个类 所以我使用了一个模板 template
  • constexpr 用于派生类中空初始化的构造函数

    我有类似以下内容 class Base public explicit Base int i noexcept type new int type i constexpr Base std nullptr t type nullptr Ba
  • perf-report显示CPU寄存器的值

    我跟随这个文件并使用perf record with intr regs ax bx r15 尝试使用 PEBS 记录记录其他 CPU 寄存器信息 但是我如何从 perf data 查看这些信息 原来的命令是perf report 并且只显
  • 如何使用 XPath 选择器排除子节点?

    我有以下 HTML 片段 div class d1 p text br p div class d2 text div a class a1 a1 a a class a2 a2 a div 我想获取的内容d1类并排除a1 and a2使用
  • Ruby TCPServer 获取客户端IP地址

    这是我不起作用的脚本 只是挂起 require socket server TCPServer new 2000 loop do Thread start server accept do client sock domain remote
  • 如何使用 ng 风格的进度条

    我正在尝试用 ng 风格制作一个进度条 问题是 当我做到这一点时 进度滑块仅在中间移动 并且没有覆盖整个栏 进度条应该以小时为单位 例如 4h 5h 等 当我用 制作它时 它就可以工作 有人可以帮忙吗 这是我的代码 div class pr
  • R JSON UTF-8解析

    我在尝试用 R 解析俄语字母表的 JSON 文件时遇到问题 该文件如下所示 text type status text type status text type status 并且以UTF 8编码保存 我尝试了 rjson RJSONIO
  • 是什么阻止您编写特定于 ruby​​ 1.9 的代码? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 到目前为止 我只是使用 YARV ruby 1 9 作为比 ruby 1 8 更快的 ruby 实现 并确保我的所有代码都向后兼容 ruby 1 8 6 什么情况 如果有 阻止您
  • 是否可以使用 jax-ws 生成 xml,但不将其发送出去

    所以这是场景 我们有 PeopleSoft 希望从销售人员来回发送消息 不幸的是 PeopleSoft 没有像 wsimport 这样的工具 它可以使用 wsdl 并为您生成类 有一些东西会消耗 wsdl 但它所做的只是生成存根消息对象 开