当前位置: 首页 > 知识库问答 >
问题:

节点ACS 404找不到对Java http客户端的响应代码

曾光誉
2023-03-14

我正在做一个项目,其中有一个Java调度器,它是一个HTTP客户端,并将xml作为数据发送到我的节点应用程序。在application.js的索引函数中,我编写了接收xml并将相应的xml转换为json的逻辑,但当我运行app时,我会从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 一样运行,那么它工作正常,并向Java http客户端发送200 OK响应。

1-我是否遗漏了节点ACS应用程序中的某些内容?

2-我们是否需要在node acs应用程序中配置http服务器,因为如果我在application.js文件中写入以下逻辑,那么它也可以在node 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);
    });

共有1个答案

程毅
2023-03-14

我找到了解决办法。Java调度器HTTP请求是POST请求,在NodeACS应用程序中,我没有提到索引方法的方法属性。现在我提到“方法”:“贴”则其工作精细。

 类似资料:
  • 我想从服务器获取一个.json文件到客户端的.js文件 下面是app.js:(服务器代码) 我需要它在js文件:

  • 我的编程任务要求我在客户端和服务器之间创建一个代理。我的客户端通过代理向服务器发出请求,然后代理将其转发并将服务器的响应返回给客户端。 以下是我采取的步骤: 1) 从客户端获取请求并将请求数据存储到字节数组中 2) 使用缓冲读取器读取字节数组 3) 从host:header字段获取主机名,并使用它创建一个serverSocket 4) 将请求数据转发到serverSocket outputstre

  • 我正在使用RESTEasy客户端从API中检索JSON字符串。JSON有效负载看起来像这样: 现在,我只提取对象映射的<code>项 我将RESTEasy代理框架用于我的API方法。 REST客户端代码: RESTEasy代理接口:

  • 根据消息,进程将重试并等待服务器节点加入,我认为这是默认行为!但是有没有办法为等待或最大重试次数设置超时呢?因为我不希望我的进程等待超过10秒。 下面是我用来启动ignite客户端的配置。

  • 编辑:可在此处找到项目回购的链接。 当我的个人资料页面加载到React应用程序时,我正在尝试获取数据。我的客户端运行在localhost:3000上,服务器运行在localhost:5000上。 我还有一个代理在我的客户端文件夹的package.json指向localhost:5000(假设)。在我的服务器文件中,我也有cors,以及我过去使用过的所有常用的铃铛和哨子。 每当我的组件挂载时,在我的

  • 我试图在CXFRS骆驼路由中创建对REST web服务调用的响应,但无论我做什么,对客户端的响应总是相同的200,而不是201。以下是我的路线: 返回正文,但忽略响应代码和内容类型。我做错了什么? 谢谢,马特