我正在使用JAX-RS提供服务器来处理Maven和Java项目中的HTTP POST
方法。
POST
正文为空,他们将参数放在网址中,如:
http://IP:PORT/url?source=aaa&xml=*********
我使用以下方法获得两个参数:
(@QueryParam("source") String source, @QueryParam("xml") String xml)
如果XML小于4 KB,则效果很好。 但是如果XML大于4KB,我将XML视为null。
答案 0 :(得分:0)
我发现它不是jax-rs
的限制。它受到jetty
的限制。
我修改了它的JettyHttpServer.class中的dubbox
。
public static final String JETTY_HEADERBUFFERSIZE = "dubbo.jetty.headerBufferSize";
public static final String JETTY_REQUESTBUFFERSIZE = "dubbo.jetty.requestBufferSize";
public static final String JETTY_RESPONSEBUFFERSIZE = "dubbo.jetty.responseBufferSize";
/**
* you can set this values by -D when you start jvm
* for example : -Ddubbo.jetty.headerBufferSize=32768 ( 32 * 1024 = 32768)
* default values:
* _headerBufferSize=4*1024;
* _requestBufferSize=8*1024;
* _responseBufferSize=24*1024;
*/
SelectChannelConnector connector = new SelectChannelConnector();
String headerBufferSize = System.getProperty(JETTY_HEADERBUFFERSIZE);
if (headerBufferSize!=null && !headerBufferSize.isEmpty()){
logger.info("YOU CONFIGED THE JETTY_HEADERBUFFERSIZE:"+headerBufferSize);
connector.setHeaderBufferSize(Integer.parseInt(headerBufferSize));
}
String requestBufferSize = System.getProperty(JETTY_REQUESTBUFFERSIZE);
if (requestBufferSize!=null && !requestBufferSize.isEmpty()){
logger.info("YOU CONFIGED THE JETTY_REQUESTBUFFERSIZE:"+requestBufferSize);
connector.setRequestBufferSize(Integer.parseInt(requestBufferSize));
}
String responseBufferSize = System.getProperty(JETTY_RESPONSEBUFFERSIZE);
if (responseBufferSize!=null && !responseBufferSize.isEmpty()){
logger.info("YOU CONFIGED THE JETTY_RESPONSEBUFFERSIZE:"+responseBufferSize);
connector.setResponseBufferSize(Integer.parseInt(responseBufferSize));
}
server = new Server();
server.addConnector(connector);
如果你只使用jetty或tomcat,你也可以用xml或代码配置params;