如何将javascript Blob发布到JAX-WSWeb服务

如何将javascript Blob发布到JAX-WSWeb服务,javascript,web-services,post,blob,jax-ws,Javascript,Web Services,Post,Blob,Jax Ws,我使用的是Mozilla Web API,特别是blob数据类型 我试图发布到用JAX-WS编写的web服务,并将音频文件blob作为参数传递。我不确定我的web服务需要什么参数才能接收blob JavaScript示例代码段 var blob; // initialise to some variable var url = 'myUrl'; var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { i

我使用的是Mozilla Web API,特别是blob数据类型

我试图发布到用JAX-WS编写的web服务,并将音频文件blob作为参数传递。我不确定我的web服务需要什么参数才能接收blob

JavaScript示例代码段

var blob; // initialise to some variable
var url = 'myUrl';
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
console.log(xhttp.responseText);
}
};

xhttp.open("POST", url, true);
xhttp.send('?param=' + blob);
JAX-WS Web服务方法

@POST
@Consumes("text/plain")
@Produces("text/plain")
public String postMessage(@QueryParam("param") byte [] test){
   //do something with byte [] test
   return "Success";
}

我不确定如何设置此功能,如有任何帮助,将不胜感激。

只需使用二进制数据传输和MTOM使用JAX-WS web服务对其进行优化即可

发件人:

  • 注释要用作MTOM附件的数据类型。(可选)

    根据您的编程模型,您可以对Java类进行注释 或WSDL来定义用于发送二进制文件的内容类型 数据。此步骤是可选的。默认情况下,映射XML二进制类型 到Java字节[]

  • 在Web服务上启用MTOM。

  • 在Web服务的客户端上启用MTOM。

  • 设置附件阈值。

    设置附件阈值以指定何时启动xs:binary64数据 内联发送或作为附件发送


  • 您要发送的文件类型是什么?所示的JAX-WS服务只接收文本。这个API是您自己的还是外部的?我正在尝试发送一个使用Mozilla API生成的OGG文件。我知道web服务当前不正确。。。我只需要参数方面的帮助以及需要生成/使用的内容。也许这篇文章可以帮助您:基本上,您不希望将二进制数据作为查询参数发送。而是将其作为HTTP主体发布。上传实现见第3节,HTTP测试见第7节,要使用它。。。idk。如果您知道如何使用多部分/表单数据,那么可以发送一个包含blob的FormData对象
    var fd=new FormData();append('file',blob,'name.ogg');xhttp.send(fd)