我正在开发一个项目,其中有一个Java调度程序,它是一个HTTP客户端,并将xml作为数据发送到我的节点应用程序。在application.js的索引函数中,我已经编写了我的逻辑来接收xml并将相应的xml转换为json但是当我运行我的应用程序时,我从acs获得404响应代码但是当我从浏览器发送请求时它也一样。请告诉我我在这方面缺少的东西。我发布了java http客户端和节点acs代码。
Java HTTP客户端代码
URL url = new URL("http://localhost:port/"); HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); httpCon.setDoOutput(true); httpCon.setRequestMethod("POST"); DataOutputStream os = new DataOutputStream( httpCon.getOutputStream()); PrintWriter pw = new PrintWriter(os); pw.println(xmlString.toString()); pw.flush(); System.out.println(httpCon.getResponseCode()); System.out.println(httpCon.getResponseMessage());
以下是我的ACS索引功能:
function index(req, res) { console.log("TEST *********************************"); req.on('data', function (data) { console.log("Data arrived"); }); req.on('end', function () { console.log('POSTed: '); res.writeHead(200); res.end(); }); }
我将代码运行为: acs run --port 7654
从上面的代码中我得到了我的java http客户端的404响应代码,但是如果我在一个简单的js文件中编写相同的节点逻辑:
http.createServer(function (req, res) { req.on('data', function (data) { console.log("Data Arrived"); }); req.on('end', function () { console.log('Done'); res.writeHead(200); res.end(); }); }).listen('7654', function(){ console.log("Server Connected to : "+ 7654); });
并运行与node <jsfilename>
相同,然后它正常工作并向java http客户端发送200 OK响应。
1 - 我在Node ACS app中遗漏了什么?
2 - 我们是否需要在node acs app中配置http服务器,因为如果我在application.js文件中编写以下逻辑,那么它也在节点acs中工作:
http.createServer(function (req, res) { req.on('data', function (data) { console.log("Data Arrived"); }); req.on('end', function () { console.log('Done'); res.writeHead(200); res.end(); }); }).listen('7654', function(){ console.log("Server Connected to : "+ 7654); });
答案 0 :(得分:1)
我找到了解决方案。 Java调度程序HTTP请求是POST请求,在NodeACS应用程序中,索引方法我没有提到方法属性。现在我提到&#34;方法&#34;:&#34; POST&#34; 然后它正常工作。