gpt4 book ai didi

soap - 将字节数组从 Web 服务发送到客户端

转载 作者:行者123 更新时间:2023-12-04 06:19:21 25 4
gpt4 key购买 nike

我想将一个字节数组从 Web 服务发送到请求通过服务公开的操作的客户端。在我的方法中,我将图像读入字节数组。我认为将此字节数组放入包装器 POJO 中。这是操作的返回类型。

@Override
public ImageWrapper getImage() {
File imageFile = new File("C:\\images\\car.jpg");
ImageWrapper wrapper = null;
try {
BufferedImage img = ImageIO.read(imageFile);
ByteArrayOutputStream baos = new ByteArrayOutputStream(1000);
ImageIO.write(img, "jpg", baos);
baos.flush();
byte[] result = baos.toByteArray();
baos.close();
wrapper = new ImageWrapper();
wrapper.setContent(result);
System.out.println("Service image wrapper: " + wrapper);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return wrapper;
}

我可以在客户端接收 ImageWrapper 对象。正如我所料,它与服务器上的 Web 服务创建的 ImageWrapper 实例具有不同的 id。但是,问题是当我尝试从 ImageWrapper 获取 byte[] 数组时,它是空的……有什么想法吗?包装类看起来像:
package soap.service.model;

public class ImageWrapper {
private byte[] content;

public void setContent(byte[] content) {
this.content = content;
}

public byte[] getImg() {
return this.content;
}
}

客户端看起来像:
import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import soap.service.model.ImageWrapper;
import soap.service.sei.ImageSei;

public class ImageClient {
public static void main(String... args) throws MalformedURLException {
URL url = new URL("http://localhost:8080/image?wsdl");
QName qname = new QName("http://impl.service.soap/", "ImageImplService");
Service service = Service.create(url, qname);
ImageSei sei = service.getPort(ImageSei.class);
ImageWrapper iw = sei.getImage();// This is ok
System.out.println(iw.getImg()); // * This is null
}
}

==================================================== =======================

更新 即使我将 ImageWrapper 中的字节数组更改为字符串,它
仍然在客户端返回为“null”。我设置了要使用的网络服务
'文件'样式也。

最佳答案

您的接口(interface)对象(被序列化并被传输的对象)不包含公共(public)数据(只是一种获取私有(private)数据的方法)。您的 byte[] 应该是要包含在序列化数据中的公共(public)字段或属性

关于soap - 将字节数组从 Web 服务发送到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6801933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com