Java 如何在RESTWeb服务中接收大型XML文件
如何重新设计高负载REST web服务 我有一个现有的基于Java的RESTWeb服务,它以字符串形式接收XML文件。有多个客户端正在向此服务发送XML文件。事实证明,作为字符串发送到此服务的大型XML文件(>100MB)会导致web服务减速、冻结和崩溃(OutOfMemory) 如何修改web服务以接收和处理大型XML数据,而不影响现有客户机 这就是现有web服务签名的含义:Java 如何在RESTWeb服务中接收大型XML文件,java,web-services,rest,memory,load,Java,Web Services,Rest,Memory,Load,如何重新设计高负载REST web服务 我有一个现有的基于Java的RESTWeb服务,它以字符串形式接收XML文件。有多个客户端正在向此服务发送XML文件。事实证明,作为字符串发送到此服务的大型XML文件(>100MB)会导致web服务减速、冻结和崩溃(OutOfMemory) 如何修改web服务以接收和处理大型XML数据,而不影响现有客户机 这就是现有web服务签名的含义: @POST @Path("/acceptMessage") public String acceptMessage(S
@POST
@Path("/acceptMessage")
public String acceptMessage(String request) throws Exception;
“字符串请求”导致加载/性能问题。我对web服务签名所做的任何更改都不会影响现有的web服务客户端
我的选项是什么?将
字符串请求
参数更改为读卡器请求
。根据JAX-RS规范的第4.2.4节,它也可以是文件请求
。还有许多其他有效类型,您可能会觉得有用,也可能不会觉得有用:
所有媒体类型(/)javax.activation.DataSource
xml类型(text/xml、application/xml和application/*+xml)javax.xml.transform.Source
和应用程序提供的JAXB类xml媒体类型(text/xml、application/xml和application/*+xml)javax.xml.bind.JAXBElement
字符串请求
参数更改为读卡器请求
。根据JAX-RS规范的第4.2.4节,它也可以是文件请求
。还有许多其他有效类型,您可能会觉得有用,也可能不会觉得有用:
所有媒体类型(/)javax.activation.DataSource
xml类型(text/xml、application/xml和application/*+xml)javax.xml.transform.Source
和应用程序提供的JAXB类xml媒体类型(text/xml、application/xml和application/*+xml)javax.xml.bind.JAXBElement