Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не работает gate-simulator #1

Closed
supremko opened this issue Jan 8, 2020 · 8 comments
Closed

Не работает gate-simulator #1

supremko opened this issue Jan 8, 2020 · 8 comments

Comments

@supremko
Copy link
Owner

supremko commented Jan 8, 2020

  1. В docker-compose настроил запуск контейнера с Node.js
  node:
    image: "node"
    user: "node"
    working_dir: /home/node/app
    environment:
      - NODE_ENV=production
    volumes:
      - ./gate-simulator:/home/node/app
    expose:
      - "8081"
    command: "npm start"
  1. Запустил контейнер
  2. Ввел команду docker-compose exec node npm start
  3. Отобразился лог
> gate-simulator@1.0.0 prestart /home/node/app
> npm i

npm WARN gate-simulator@1.0.0 No description
npm WARN gate-simulator@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux
","arch":"x64"})

audited 268 packages in 2.117s
found 0 vulnerabilities


> gate-simulator@1.0.0 start /home/node/app
> nodemon app.js

[nodemon] 2.0.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node app.js`
[
  { number: '4444 4444 4444 4441', status: 'APPROVED' },
  { number: '4444 4444 4444 4442', status: 'DECLINED' }
]
  1. Ввел данные карты, по которой должен быть апрув
    image
  2. Получил ошибку 500 и, соответственно, запрет операции покупки
    image

При этом в логах SUT ошибка

2020-01-09 01:15:55.486 ERROR 30480 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherSer
vlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.ResourceAccessExcept
ion: I/O error on POST request for "http://localhost:7777/payment": Connection refused: connect; nested exception is java.net.ConnectException: C
onnection refused: connect] with root cause

На порту 9999 gate-simulator вообще не запускался, поменял в app.js на 7777 и запуск прошел без ошибок, но не работает.

@ArRomanov
Copy link

  1. Платежный шлюз без проблем запускается на 9999, у вас наверное уже был запущен контейнер на этом порту.
  2. Определитесь с портом, на котором запускается gate-simulator
  3. В docker-compose.yml в блоке node замените пункт
    expose:
      - "9999"

на

    ports:
      - "9999:9999"

(порт поставьте такой же, как в app.js)
4. При запуске aqa-shop.jar ищет файл application.properties в директории, из которой выполняется команда, поэтому следует переименовать файл со свойствами в application.properties, если только вы не передаете новое имя файла со свойствами при запуске jar приложения

@supremko
Copy link
Owner Author

supremko commented Jan 9, 2020

Я передаю командой java -jar aqa-shop.jar --spring.profiles.active=mysql, с этим проблем никаких нет.

Поменял на 9999

> gate-simulator@1.0.0 prestart /home/node/app
> npm i

npm WARN gate-simulator@1.0.0 No description
npm WARN gate-simulator@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux
","arch":"x64"})

audited 268 packages in 2.241s
found 0 vulnerabilities


> gate-simulator@1.0.0 start /home/node/app
> nodemon app.js

[nodemon] 2.0.0
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node app.js`
[
  { number: '4444 4444 4444 4441', status: 'APPROVED' },
  { number: '4444 4444 4444 4442', status: 'DECLINED' }
]
events.js:282
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::9999
    at Server.setupListenHandle [as _listen2] (net.js:1308:16)
    at listenInCluster (net.js:1356:12)
    at Server.listen (net.js:1444:7)
    at Function.listen (/home/node/app/node_modules/express/lib/application.js:618:24)
    at Object.<anonymous> (/home/node/app/app.js:28:8)
    at Module._compile (internal/modules/cjs/loader.js:1139:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:10)
    at Module.load (internal/modules/cjs/loader.js:988:32)
    at Function.Module._load (internal/modules/cjs/loader.js:896:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1335:8)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  code: 'EADDRINUSE',
  errno: -98,
  syscall: 'listen',
  address: '::',
  port: 9999
}
[nodemon] app crashed - waiting for file changes before starting...

@supremko
Copy link
Owner Author

supremko commented Jan 9, 2020

image
Порт действительно не занят, но gate-simulator утверждает обратное.

@ArRomanov
Copy link

Проверьте все запущенные контейнеры перед запуском командой docker ps. docker ps -a покажет все созданные контейнеры. Удалите все контейнеры, а потом просто запустите docker-compose up -d --force-recreate. И учтите, что gate-simulator запускается сразу при запуске docker-compose, повторно запускать отдельно уже не надо. Проверить статус можно в логах docker-compose logs -f node

@ArRomanov
Copy link

И почему у вас в app.js порт 9999, а в docker-compose.yml 8081?

@supremko
Copy link
Owner Author

supremko commented Jan 9, 2020

"И учтите, что gate-simulator запускается сразу при запуске docker-compose, повторно запускать отдельно уже не надо."
Вот именно в этом заключалась ошибка, так как я считал, что запуск самого Node.js и gate-simulator - это разные стадии, и именно поэтому я указывал стандартный порт в контейнере node, который был указан в инструкции.

Если и при вводе карты 4444 4444 4444 4441, и при вводе 4444 4444 4444 4442 отображается одобрение, я оформляю это отдельным багом, т.к. теперь gate-simulator работает?

@ArRomanov
Copy link

Да, это уже будут баги приложения, они просто должны висеть открытыми ишьюс в репозитории

@supremko
Copy link
Owner Author

supremko commented Jan 9, 2020

Тогда с настройкой всё.

@supremko supremko closed this as completed Jan 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants