来自 Javascript 的 SOAP Web 服务调用

2024-01-03

我正在努力从网页成功地对 SOAP Web 服务进行 Web 服务调用。 Web 服务是使用 JAX-WS 的 Java Web 服务。

这是我尝试调用的网络方法:

@WebMethod  
public String sayHi(@WebParam(name="name") String name)  
{  
    System.out.println("Hello "+name+"!");  
    return "Hello "+name+"!";  
}

我尝试使用 JQuery 库 jqSOAPClient 进行 Web 服务调用(http://plugins.jquery.com/project/jqSOAPClient http://plugins.jquery.com/project/jqSOAPClient).
这是我使用过的代码:

var processResponse = function(respObj)  
{  
    alert("Response received: "+respObj);  
};

SOAPClient.Proxy = url;  
var body = new SOAPObject("sayHi");  
body.ns = ns;  
body.appendChild(new SOAPObject("name").val("Bernhard"));

var sr = new SOAPRequest(ns+"sayHi",body);  
SOAPClient.SendRequest(sr,processResponse);

似乎没有回复。当在jqSOAPClient.js我记录了xData.responseXML数据成员我得到“未定义”。在网络服务中我看到警告

2011 年 3 月 24 日上午 10:49:51 com.sun.xml.ws.transport.http.server.WSHttpHandler 警告:无法处理 HTTP 方法:OPTIONS

我还尝试过使用 javascript 库,soapclient.js (http://www.codeproject.com/kb/Ajax/JavaScriptSOAPClient.aspx http://www.codeproject.com/kb/Ajax/JavaScriptSOAPClient.aspx)。我在这里使用的客户端代码是

var processResponse = function(respObj) 
{
    alert("Response received: "+respObj);
};

var paramaters = new SOAPClientParameters();
paramaters.add("name","Bernhard");
SOAPClient.invoke(url,"sayHi",paramaters,true,processResponse);

我绕过了soapclient.js中获取WSDL的部分,因为它不起作用 (我得到一个:IOException: An established connection was aborted by the software in your host machine在网络服务端)。仅检索 WSDL 以供适当的名称空间使用,因此我只是将变量 ns 替换为实际的名称空间。

我在 Web 服务上收到与以前完全相同的警告(无法处理 HTTP 方法:选项),并且在浏览器的错误控制台中收到错误“文档为空”。当我在soapclient.js 中记录req.responseXML 的值时,我发现它为空。

任何人都可以建议可能出现的问题以及我应该做什么才能使其正常工作吗?


我知道这里发生了什么事。这与此线程中的场景相同:jQuery $.ajax(), $.post 在 Firefox 中发送“OPTIONS”作为 REQUEST_METHOD https://stackoverflow.com/questions/1099787/jquery-ajax-post-sending-options-as-request-method-in-firefox.

基本上我使用的是 Firefox,当使用 AJAX 从 Firefox 进行跨域调用(Web 服务地址的域与网页的域不同)时,Firefox 首先发送一条 OPTIONS HTTP 消息(在传输 POST 消息之前),从 Web 服务确定是否允许调用。然后,Web 服务必须响应此 OPTIONS 消息,以确定它是否允许请求通过。

现在,来自 JAX-WS 的警告(“无法处理 HTTP 方法:OPTIONS”)表明它不会处理任何 OPTIONS HTTP 消息。没关系 - Web 服务最终将在 Glassfish 上运行。 现在的问题是如何配置 Glassfish 来响应 OPTIONS 消息。

在上面引用的线程中,Juha 说他在 Django 中使用了以下代码:

def send_data(request):  
    if request.method == "OPTIONS":   
        response = HttpResponse()  
        response['Access-Control-Allow-Origin'] = '*'  
        response['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'  
        response['Access-Control-Max-Age'] = 1000  
        response['Access-Control-Allow-Headers'] = '*'  
        return response  
    if request.method == "POST":  
        # ... 

Access-Control-Allow-Origin 给出了一个模式,指示将接受哪些来源(收件人地址)(我的可能比简单地允许任何来源更严格),并且 Access-Control-Max-Age 告诉客户端在多少秒后将不得不再次请求许可。

我如何在 Glassfish 中执行此操作?

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

来自 Javascript 的 SOAP Web 服务调用 的相关文章

  • 为什么现在()? (客观化)

    为什么我想要异步加载 Objectify 实体 异步加载到底意味着什么 根据客观化有关加载的文档 https code google com p objectify appengine wiki BasicOperations Loadin
  • 在 HTML5 中将两个图像合并到一个画布上

    我正在使用 HTML5 canvas 元素 假设我有 2 个 ImageData 对象 我想将它们组合起来放在一张画布上 假设我不关心这些图像如何组合 两个 ImageData 对象具有完全相同的像素数和形状 组合两个图像的最佳方式是什么
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • 我们可以使用 for-each 循环来迭代 Iterator 类型的对象吗? [复制]

    这个问题在这里已经有答案了 如果我们执行以下操作 我们会收到错误 class FGH public static Iterator reverse List list Collections reverse list return list
  • 如何将当前元素传递给 Knockout.js 绑定中的 Javascript 函数?

    因此 我尝试根据是否选中子复选框 使用 Knockout js 将类添加到元素 为此 我试图通过this作为我的函数的参数 目前 我的精简 DOM 结构如下 tr td td tr
  • 战争库中的罐子爆炸

    我们可以将分解的 jar 文件放入 war web inf 库中吗 它在 JBOSS 4 2 中对我不起作用 我收到以下错误并且无法部署应用程序 Caused by javax management RuntimeOperationsExc
  • 无法映射 ftl 文件中的 jsonRequest 属性

    我想在 FTL 文件中映射下面的 json 文件市场和子市场字段 但是当我尝试下面的代码时 它没有映射 有人可以帮助我吗 我从 2 天开始就无法映射它 Json请求 ProcessOrderRequest prevalidationMode
  • 从相机视图中拖动锁定在一定距离/半径处的对象

    我在场景中心有一个相机 距离相机 z 400 处有 1 个球体 其父级位于中心 我想从视图中向上 向下 向左 向右拖动球体 但同时不改变它相对于中心的 z 位置 我最终使用了另一个球体并使其不可见 添加side THREE DoubleSi
  • 如何生成 JavaScript 堆栈跟踪? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 关于如何以跨浏览器的方式在 javascript 中生成堆栈跟踪有什么建议吗 较新的浏览器 Chrome 和 Firefox 公开了一个允
  • 读/写带有特殊字符的.txt文件

    I open Notepad Windows 并写 Some lines with special characters Special 并前往另存为 someFile txt 与Encoding set to UTF 8 在Java中我有
  • Selenium - 等待网络流量

    我们将 Selenium 与 Java API 和一些 Javascript 用户扩展一起使用 我们在应用程序中使用了大量 AJAX 调用 我们的许多测试随机失败 因为有时 AJAX 调用完成得比其他时候慢 因此页面未完全加载 我们通过等待
  • Google Cloud Messaging - 立即收到或长时间延迟收到的消息

    我在大学最后一年的项目中使用谷歌云消息传递 一切正常 但我在使用 GCM 时遇到了一些麻烦 通常 消息要么几乎立即传递 要么有很大的延迟 我读过这篇文章 但我真的认为它不适用于这种情况 GCM 通常会在消息发送后立即传送消息 然而 这并不总
  • JavaScript 中最长的通用前缀

    我正在尝试解决 Leet Code 挑战14 最长公共前缀 https leetcode com problems longest common prefix 编写一个函数来查找字符串数组中最长的公共前缀字符串 如果没有公共前缀 则返回空字
  • 编写自定义 Eclipse 调试器

    EDIT 一定有某种方法可以解决这个问题 而无需编写全新的调试器 我目前正在研究在现有 java 调试器之上构建的方法 如果有人对如何获取 Java 调试器已有的信息 有关堆栈帧 变量 原始数据等 有任何想法 那将非常有帮助 我想要做的是我
  • 如何修复nodejs Express服务器中的“MulterError:意外字段”?

    我正在设置一个服务器来从客户端上传 zip 文件 服务器运行express和multer来执行此操作 上传文件时 服务器抛出 MulterError 意外字段 错误 我无法弄清楚是什么导致了它 我尝试过使用 png 图像 效果很好 但对于
  • 使用 Runtime.getRuntime().exec() 进行重定向不起作用

    我需要从程序执行命令 命令行是可以的 我在终端试了一下 但是在程序中不行 我从我的代码中添加一个副本 File dir new File videos String children dir list if children null Ei
  • 如何在java 1.8中从org.jboss.jca.adapters.jdbc.jdk8.WrappedConnectionJDK8转换为oracle.jdbc.OracleConnection

    如何在 java 1 8 中从 org jboss jca adapters jdbc jdk8 WrappedConnectionJDK8 转换为 oracle jdbc OracleConnection 目前我正在这样使用并得到以下异常
  • 如何使用剪辑来减少绘画时间?

    我正在尝试使用 Clip 来减少 CPU 负载 但剪辑在屏幕上留下了一些我似乎无法摆脱的垃圾 另外 打开和关闭剪辑似乎对 CPU 负载没有影响 在任一情况下 大部分时间似乎都花在重绘管理器和绘制缓冲图像上 import static jav
  • jquery:选择xpath或将xpath转换为css?

    我需要基于 xpath 选择 或者将 xpath 转换为 css 有插件或者内置功能吗 ex html body div a 4 each 并非所有 xpath 表达式都可以转换为类似 CSS 的选择器 或者不能有效地工作 您可以使用 eq
  • 我找不到 IntelliJ 快捷方式

    我使用 vim 一段时间 我知道有一个 intellij vim 插件 我很好奇内置的 IntelliJ 文本导航存在什么 如何打开实时模板来创建模板 如何查看以 tr 开头的现有模板列表 如何进行全局搜索并在当前文档中进行搜索 然后转到下

随机推荐

  • 无法使用统一初始化复制 std::vector> 。它是否正确?

    以下代码无法在 GCC 4 7 2 或 Clang 3 2 中编译 include
  • htaccess - 禁止直接访问除登录用户之外的所有文件 (PHP)

    使用 htacess 拒绝所有 是否可以只允许登录我的系统的用户直接访问文件 如果有什么区别的话 我的网站是用 Drupal PHP 构建的 如果这是可能的 那么理想情况下我也想检查用户的角色 你不能这样做 htaccess独自的 你需要做
  • Visual Studio 2013隐藏构建进度窗口

    在 Visual Studio 2013 社区中 每次构建时 都会出现一个构建进度窗口 并在构建完成后消失 是否有一个选项可以隐藏而不显示该窗口 谢谢 该窗口是由 CodeMaid 扩展生成的 要禁用它 请打开 Codemaid 的配置 然
  • 如何根据动态改变背景颜色来动态改变文本颜色

    我正在建立一个新网站 需要我的文本根据不断变化的背景颜色改变颜色以保持对比度 我在网上搜索了不涉及 Sass 的答案 但没有一个有效 我尝试过一些 JavaScript 但它们仅在背景是您手动更改的固定颜色时才起作用 我当前的文件 http
  • ASP.NET 2.0 中的 Gridview 列宽度

    如何控制 ASP NET 2 0 中 gridview 控件的列宽 您可以使用 HeaderStyle Width ItemStyle Width 或 FooterStyle Width 属性 这些可以应用于所有列或每列
  • Typescript Jest 说我想要模拟的类型上不存在模拟或模拟返回值

    这是我想测试的一个类 Request js import axios AxiosInstance from axios import config from config const axiosSingleton AxiosInstance
  • 在 d3 中通过退出转换保持元素顺序 (selection.order)

    我将切入正题fiddle http jsfiddle net K6Yrw http jsfiddle net K6Yrw 点击第二个按钮快速查看效果 我在用着selection order因为我需要 DOM 元素以与数据元素相同的顺序存在
  • 乘客遇到库未加载错误:liblzma.5.dylib

    我正在尝试与乘客一起运行轨道 我安装了 AWS SDK 1 和 2 gem gem aws sdk v1 gem aws sdk gt 2 当我使用AWS sdk运行时 s3 AWS S3 new 我遇到错误 LoadError dlope
  • 使用 .htaccess 创建绝对路径的子域

    嘿 我的主人真是太糟糕了 由于某些奇怪的原因 在 cPanel 中创建子域根本不起作用 而且他们的支持热线总是很忙 我想我可以通过使用 htaccess 来解决这个问题 我确信这并不难 但我对 mod rewrite 有点陌生 并且在过去
  • Excel VBA 重新计算选择

    我有一些 Excel 电子表格对数据库的影响非常大 对总账表进行了 100 多次查询 哎呀 仅刷新我所在的工作表 SHIFT F9 在某些电子表格中很有帮助 但我想要一种仅刷新所选单元格的方法 我想出了以下代码 并将其放置在 ThisWor
  • 如何制作双向平台box2d主体?

    我使用 box2d 创建了平台 我想要 box2d 身体检测而不是动态检测 Box2d 形状将执行以下操作 在某些条件下检测碰撞 在某些情况下不检测碰撞 两种条件都适用于同一 box2d 对象中的不同条件 任何想法都会有很大帮助 提前致谢
  • nodejs firebase错误RangeError:超出最大调用堆栈大小失败

    我在 firebase 中遇到错误 FIREBASE 警告 用户回调引发异常 RangeError 超出最大调用堆栈大小 我没有发现我的错误 我在这里很迷失 请帮助 我的代码如下所示 app post updateCoords req re
  • 如何在perl中合并2个深度哈希

    我用 Perl 编写了一个 sub 来合并相同结构的 2 个哈希值 这样合并 a b a k1 gt sk1 gt v1 k2 gt sk3 gt v3 sk4 gt v4 b k1 gt sk2 gt v2 k3 gt sk5 gt v5
  • 谁以及何时分配 PCI/PCIe 设备 BAR 基地址?

    我正在寻找内核如何进行 PCI PCIe 枚举和 BAR 分配 我以为内核会在启动时分配BAR的PCI基地址 但是当我尝试pci Earlydump 在内核初始PCI子系统之前 查看BAR的值时 我发现所有基地址都已经分配了 这是否意味着
  • 在 redshift 中将 MM/DD/YYYY 转换为 YYYYMMDD

    我需要在亚马逊 Redshift 数据库中将 MM DD YYYY 转换为 YYYYMMDD 这个查询的结果给了我一些奇怪的结果 有人可以帮帮我吗 选择to date 07 17 2017 YYYYMMDD 0007 07 20 如果您只想
  • 为什么React项目名称不能包含大写字母?

    我在尝试在 React 中创建新项目 newRecipeApp 时收到以下消息 npx installed 91 in 29 359s Could not create a project called newRecipeApp becau
  • 是否可以指定TableRow的高度?

    我有一个TableLayout与多个TableRow里面的景色 我希望以编程方式指定行的高度 例如 int rowHeight calculateRowHeight TableLayout tableLayout new TableLayo
  • 如何在 VS 2008 中启用 DirectX 变量的更多调试信息?

    我能够启用 directX 变量 如 LPD3DXMESH 等 的调试信息 通常它只显示 IUnknown 和一些指针值 但如果启用了额外的调试 则可以查看有关该结构的更多详细信息 问题是我丢失了该项目 现在我不记得如何再次启用此类调试 请
  • 安装 JDK 和使用转储之间的区别

    全部 我想知道使用Oracle提供的安装程序安装JDK和使用安装后创建的JDK目录有什么区别 假设我使用 oracle 的安装程序在机器 M1 上安装了 JDK7u1 位置为 C Program Files Java JDK7u1 我可以将
  • 来自 Javascript 的 SOAP Web 服务调用

    我正在努力从网页成功地对 SOAP Web 服务进行 Web 服务调用 Web 服务是使用 JAX WS 的 Java Web 服务 这是我尝试调用的网络方法 WebMethod public String sayHi WebParam n