Не подключается сервер geocoder (Nominatim)

Secrieru Victor10 months ago

Сервер трекинга расположен на домене tracker.my.ru:5555
Есть сервер geocoder.my.ru:4444 (он рабочий).

В сервере трекинга прописан geocoder.my.ru:4444 и тип nominatim

    <entry key='geocoder.enable'>true</entry>
    <entry key='geocoder.type'>nominatim</entry>
    <entry key='geocoder.url'>http://geocoder.my.ru:4444/reverse.php</entry>

Сервер трекинга ходит по другой ссылке

    http://tracker.my.ru:5555/api/server/geocode?latitude=55.9073883&longitude=37.78832

А нужно

    http://geocoder.my.ru:4444/reverse.php?lat=55.9073883&lon=37.78832  (он рабочий)
Anton Tananaev10 months ago

Сервер трекинга ходит по другой ссылке

Точно сервер ходит по этой ссылке а не веб приложение?

Secrieru Victor10 months ago

Ссылку генерирует веб приложение, но код клиента находится на сервере. Получается, что не берутся параметры конфигурации ( в части декодирования координат).
Это видно по входным параметрам. Используется latitude, а nominatim использует lat.
Я в настройках писал не валидные данные и все нормально. Может я не туда их пишу ?

P.S.
Я с большим трудом поднял сервер Nominatim и загрузил базу России и остался последний штрих.

Secrieru Victor10 months ago

Ищем причину. Код ошибки на этот запрос 404.

Secrieru Victor10 months ago

В настройках я указал не валидный адрес сервера геокодирования и все равно 404. Значит до запроса на сервер не доходит.

Anton Tananaev10 months ago

Где у вас 404 получается? Что ещё в ответе от сервера?

Secrieru Victor10 months ago

Запрос

http://tracker.secrieru.ru:60000/api/server/geocode?latitude=55.9073533&longitude=37.7883799

Ответ

400 Bad Request
Connection refused - ConnectException (... < JsonGeocoder:126 < ServerResource:123 < ... < OverrideFilter:50 < ...)
Anton Tananaev10 months ago

И где 404?

Secrieru Victor10 months ago

Теперь другая и поинтересней. Сделано согласно документации.

Secrieru Victor10 months ago
2023-08-08 09:30:10 TRACE:   simple execute, handler={0}, maxRows={1}, fetchSize={2}, flags={3}
2023-08-08 09:30:10 TRACE:  FE=> Parse(stmt=null,query="SELECT * FROM tc_users WHERE id = $1",oids={20})
2023-08-08 09:30:10 TRACE:  FE=> Bind(stmt=null,portal=null,$1=<1>,type=INT8)
2023-08-08 09:30:10 TRACE:  FE=> Describe(portal={0})
2023-08-08 09:30:10 TRACE:  FE=> Execute(portal={0},limit={1})
2023-08-08 09:30:10 TRACE:  FE=> Sync
2023-08-08 09:30:10 TRACE:  <=BE ParseComplete [{0}]
2023-08-08 09:30:10 TRACE:  <=BE BindComplete [{0}]
2023-08-08 09:30:10 TRACE:  <=BE RowDescription({0})
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:         {0}
2023-08-08 09:30:10 TRACE:  <=BE DataRow(len={0})
2023-08-08 09:30:10 TRACE:  <=BE CommandStatus({0})
2023-08-08 09:30:10 TRACE:  <=BE ReadyForQuery({0})
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getBoolean columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getBoolean columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getDouble columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getDouble columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getBoolean columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getBoolean columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getInt columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getBoolean columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getInt columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getInt columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getBoolean columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getBoolean columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getBoolean columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getString columnIndex: {0}
2023-08-08 09:30:10 TRACE:   getLong columnIndex: {0}
2023-08-08 09:30:10 TRACE: [DEBUG] Released scope instance {0} on thread {1}
2023-08-08 09:30:10 DEBUG: Starting mapping of the exception. - Connection refused - ConnectException (... < JsonGeocoder:126 < ServerResource:123 < ... < OverrideFilter:50 < ...)
2023-08-08 09:30:10 DEBUG: Exception 'java.net.ConnectException: Connection refused' has been mapped by 'org.traccar.api.ResourceErrorHandler' to response 'Bad Request' (400:CLIENT_ERROR).
2023-08-08 09:30:10 TRACE: [DEBUG] Released scope instance {0} on thread {1}
2023-08-08 09:30:10 DEBUG: write(array HeapByteBuffer@23715736[p=0,l=115,c=115,r=115]={<<<Connection refused - Conn...verrideFilter:50 < ...)>>>})
2023-08-08 09:30:10 DEBUG: write(array) s=CLOSING,api=BLOCKED,sc=false,e=null last=true agg=false flush=true async=false, len=115 null
2023-08-08 09:30:10 DEBUG: sendResponse info=null content=HeapByteBuffer@515982e1[p=0,l=115,c=115,r=115]={<<<Connection refused - Conn...verrideFilter:50 < ...)>>>} complete=true committing=true callback=Blocker@378c5bd{null}
2023-08-08 09:30:10 DEBUG: COMMIT for /api/server/geocode on HttpChannelOverHttp@b44baa6{s=HttpChannelState@f7b2f16{s=HANDLING rs=BLOCKING os=COMMITTED is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=http://tracker.secrieru.ru:60000/api/server/geocode?latitude=55.9073666&longitude=37.7883,age=150}
400 null HTTP/1.1
Secrieru Victor10 months ago

Оказалось, что в настройках сервера геокодирования нельзя задать другой порт.

Ошибается на запросе

2023-08-08 18:41:53 DEBUG: COMMIT for /api/server/geocode on HttpChannelOverHttp@7c49ceff{s=HttpChannelState@4694c5c{s=HANDLING rs=BLOCKING os=COMMITTED is=IDLE awp=false se=false i=true al=0},r=3,c=false/false,a=HANDLING,uri=http://192.168.0.234:60000/api/server/geocode?latitude=55.9187933&longitude=37.8623033,age=105}

Тут верно &longitude=37.8623033,age=105?

Secrieru Victor10 months ago

Сервер позволяет на одном компьютере держать traccar и nominatim ?

 <entry key='geocoder.url'>http://geocoder.secrieru.ru:[порт отличный от порта сервера  traccar]/reverse</entry>
Anton Tananaev10 months ago

Почему нет?

Secrieru Victor10 months ago

Логи не информативные. Не видно на какой сервер идут запросы. Только внутренний запрос.
Побороть код 400 никак не получается.

2023-08-09 09:01:02 DEBUG: COMMIT for /api/server/geocode on HttpChannelOverHttp@70920359{s=HttpChannelState@2b77775{s=HANDLING rs=BLOCKING os=COMMITTED is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=http://tracker.secrieru.ru:60000/api/server/geocode?latitude=55.9074466&longitude=37.788455,age=111}
400 null HTTP/1.1
Secrieru Victor10 months ago

То что пишет браузер - SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data