从节点发送 REST 请求到 Jetty

Issue Sending REST Request From Node to Jetty

我在从 Node.js 向 Jetty.When 发送 REST (POST) 请求时遇到问题 我从 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.waitForContent(HttpInput.java:500)

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

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

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