问题从节点发送REST请求到Jetty

我正在从Node.js发送REST(POST)请求到Jetty时遇到问题。当我从REST客户端发送它相同的工作正常。 这里是节点的js代码:

var postheaders = { 'Content-Type' : 'application/json', 'Content-Length' : Buffer.byteLength(jsonObject, 'utf8') }; var optionsPost = { host : '127.0.0.1', // here only the domain name // (no http/https !) port : 8080, path : '/external/session', // the rest of the url with parameters if needed method : 'POST', // do GET headers :postheaders }; console.info('Options prepared:'); console.info(jsonObject); console.info('Do the POST call'); var reqPost = https.request(optionsPost, function(res) { console.log("statusCode: ", res.statusCode); // uncomment it for header details // console.log("headers: ", res.headers); res.on('data', function(d) { console.info('POST result:\n'); process.stdout.write(d); resp.contentType('application/json'); resp.send(d); console.info('\n\nCall completed'); }); }); reqPost.end(); reqPost.on('error', function(e) { console.error(e); }); }; 

这是Jetty中的错误:

 Jul 30, 2015 4:18:58 PM com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30001/30000 ms at org.eclipse.jetty.util.SharedBlockingCallback$Blocker.block(SharedBlockingCallback.java:234) at org.eclipse.jetty.server.HttpInputOverHTTP.blockForContent(HttpInputOverHTTP.java:67) at org.eclipse.jetty.server.HttpInput$1.waitForContent(HttpInput.java:500) 

有人可以帮我解决这个问题吗? 谢谢

您没有发送任何响应内容,Jetty正在等待数据,直到发生超时。

要在reqPost.end()之前发送数据调用reqPost.write(...your data...) reqPost.end()