问题从节点发送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()
。
- 如何基于GitHub webhook自动化Docker部署?
- WebStorm Node.js远程debugging是否可以在Docker容器中使用Node.js v8?
- EADDRNOTAVAIL当Dockerizing Node.js应用程序
- 如何configurationnginx泊坞窗容器在不同的端口识别本地主机应用程序?
- Docker-compose挂在Dockerfile不支持的地方
- Docker – 覆盖链接的卷的内容
- “本地主机没有发送数据。 ERR_EMPTY_RESPONSE“和”curl:(52)来自服务器的空回复“
- 如何在Docker中执行非全局的npm二进制文件
- 如何连接到Docker容器的本地主机(从容器内部)