I’m trying to do 3 servers in one docker image. Now I got something funny
with my setup, cause the parsing goes ok, but: It fails to do something else…
Error is:
Failed to either read or execute the ors configuration and its parameters: java.lang.RuntimeException
ors-config:
##### openrouteservice settings file #####
# This file contains parameters for openrouteservice.
# For a full list of possible parameters see https://giscience.github.io/openrouteservice/run-instance/configuration/
##### General server settings #####
server:
port: 8082
error:
whitelabel:
enabled: false
# Keep the context-path at / else the war file run with tomcat will have the context-path of /ors/v2 as well.
servlet:
context-path: /ors
spring:
profiles:
active: default
servlet:
path: /
##### Settings related to springdoc #####
#springdoc:
# swagger-ui:
# enabled: true
# path: /swagger-ui
# tryItOutEnabled: true
# filter: false
# syntaxHighlight:
# activated: true
# showExtensions: true
# api-docs:
# path: /v2/api-docs
# version: OPENAPI_3_0
# packages-to-scan: org.heigit.ors
# pathsToMatch: /v2/**
##### Logging settings #####
logging:
file:
name: ./logs/ors.log
pattern:
console: "%d{yyyy-MM-dd HH:mm:ss} %highlight{%-7p} %style{%50t}{Cyan} %style{[ %-40.40c{1.} ]}{Bright Cyan} %m%n"
file: "%d{yyyy-MM-dd HH:mm:ss} %p [%-40.40c{1.}] - %m%n"
level:
root: WARN
# org.heigit: INFO
##### openrouteservice specific settings #####
cors:
allowed_origins: "*"
allowed_headers: Content-Type, X-Requested-With, accept, Origin, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization
preflight_max_age: 600
messages:
##### ORS endpoints settings #####
endpoints:
routing:
enabled: true
attribution: openrouteservice.org, OpenStreetMap contributors, tmc - BASt
gpx_name: ORSRouting
gpx_description: This is a directions instructions file as GPX, generated from openrouteservice
gpx_base_url: https://openrouteservice.org/
gpx_support_mail: support@openrouteservice.org
gpx_author: openrouteservice
gpx_content_licence: LGPL 3.0
maximum_avoid_polygon_area: 200000000
maximum_avoid_polygon_extent: 20000
maximum_alternative_routes: 3
matrix:
enabled: true
attribution: openrouteservice.org, OpenStreetMap contributors
maximum_routes: 2500
maximum_routes_flexible: 25
maximum_visited_nodes: 100000
maximum_search_radius: 2000
u_turn_costs: -1
isochrones:
enabled: true
attribution: openrouteservice.org, OpenStreetMap contributors
maximum_locations: 2
maximum_intervals: 1
allow_compute_area: true
maximum_range_distance_default: 50000
maximum_range_distance:
- profiles: driving-car, driving-hgv
value: 100000
maximum_range_time_default: 18000
maximum_range_time:
- profiles: driving-car, driving-hgv
value: 3600
fastisochrones:
maximum_range_distance_default: 50000
maximum_range_distance:
- profiles: driving-car, driving-hgv
value: 500000
maximum_range_time_default: 18000
maximum_range_time:
- profiles: driving-car, driving-hgv
value: 10800
Snap:
enabled: true
attribution: openrouteservice.org, OpenStreetMap contributors
##### ORS engine settings #####
engine:
source_file: /home/ors/files/the-map.osm.gz
init_threads: 300
preparation_mode: false
graphs_root_path: ./graphs
graphs_data_access: RAM_STORE
elevation:
preprocessed: false
data_access: MMAP
cache_clear: false
provider: multi
cache_path: ./elevation_cache
profile_default:
enabled: true
elevation: false
elevation_smoothing: false
encoder_flags_size: 8
instructions: true
optimize: false
traffic: false
maximum_distance: 100000
maximum_distance_dynamic_weights: 100000
maximum_distance_avoid_areas: 100000
maximum_waypoints: 50
maximum_snapping_radius: 400
maximum_distance_alternative_routes: 100000
maximum_distance_round_trip_routes: 100000
maximum_speed_lower_bound: 80
maximum_visited_nodes: 1000000
location_index_resolution: 500
location_index_search_iterations: 4
force_turn_costs: false
interpolate_bridges_and_tunnels: true
preparation:
min_network_size: 200
methods:
enabled: true
threads: 1
weightings: recommended,shortest
landmarks: 16
execution:
methods:
active_landmarks: 8
profiles:
enabled: false
profile: driving-car
elevation: true
encoder_options:
turn_costs: true
block_fords: false
use_acceleration: true
preparation:
min_network_size: 200
methods:
enabled: true
threads: 1
weightings: fastest
enabled: false
threads: 1
weightings: fastest,shortest
landmarks: 16
core:
enabled: true
threads: 1
weightings: fastest,shortest
landmarks: 64
lmsets: highways;allow_all
execution:
methods:
active_landmarks: 6
core:
active_landmarks: 6
ext_storages:
WayCategory:
HeavyVehicle:
WaySurfaceType:
RoadAccessRestrictions:
use_for_warnings: true
enabled: false
profile: driving-hgv
encoder_flags_size: 8
encoder_options:
turn_costs: true
block_fords: false
use_acceleration: true
maximum_distance: 100000
elevation: true
preparation:
min_network_size: 200
methods:
enabled: true
threads: 1
weightings: recommended
core:
enabled: true
threads: 1
weightings: recommended,shortest
landmarks: 64
lmsets: highways;allow_all
execution:
methods:
core:
active_landmarks: 6
ext_storages:
WayCategory:
HeavyVehicle:
restrictions: true
WaySurfaceType:
bike-regular:
enabled: false
profile: cycling-regular
encoder_options:
consider_elevation: true
turn_costs: true
block_fords: false
elevation: true
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
bike-mountain:
enabled: false
profile: cycling-mountain
encoder_options:
consider_elevation: true
turn_costs: true
block_fords: false
elevation: true
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
bike-road:
enabled: false
profile: cycling-road
encoder_options:
consider_elevation: true
turn_costs: true
block_fords: false
elevation: true
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
bike-electric:
enabled: true
profile: cycling-electric
encoder_options:
consider_elevation: true
turn_costs: true
block_fords: false
elevation: true
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
walking:
enabled: false
profile: foot-walking
encoder_options:
block_fords: false
elevation: true
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
hiking:
enabled: false
profile: foot-hiking
encoder_options:
block_fords: false
elevation: true
ext_storages:
WayCategory:
WaySurfaceType:
HillIndex:
TrailDifficulty:
wheelchair:
enabled: false
profile: wheelchair
encoder_options:
block_fords: true
elevation: true
maximum_snapping_radius: 50
ext_storages:
WayCategory:
WaySurfaceType:
Wheelchair:
KerbsOnCrossings: true
OsmId:
public-transport:
enabled: false
profile: public-transport
encoder_options:
block_fords: false
elevation: true
maximum_visited_nodes: 1000000
gtfs_file: ./src/test/files/vrn_gtfs_cut.zip
2024-05-11 11:49:35 INFO [o.h.o.a.Application ] - Starting Application v8.0.0 using Java 21.0.2 with PID 1 (/ors.jar started by root in /home/ors)
2024-05-11 11:49:35 INFO [o.h.o.a.Application ] - The following 1 profile is active: "default"
2024-05-11 11:49:36 INFO [o.h.o.a.ORSEnvironmentPostProcessor ] -
2024-05-11 11:49:36 INFO [o.h.o.a.ORSEnvironmentPostProcessor ] - Configuration lookup started.
2024-05-11 11:49:36 INFO [o.h.o.a.ORSEnvironmentPostProcessor ] - Configuration file set by environment variable.
2024-05-11 11:49:36 INFO [o.h.o.a.ORSEnvironmentPostProcessor ] - Loaded file '/home/ors/config/ors-config.yml'
2024-05-11 11:49:36 INFO [o.h.o.a.ORSEnvironmentPostProcessor ] - Configuration lookup finished.
2024-05-11 11:49:36 INFO [o.h.o.a.ORSEnvironmentPostProcessor ] -
2024-05-11 11:49:40 INFO [o.h.o.a.s.l.ORSInitContextListener ] - Initializing ORS...
2024-05-11 11:49:40 INFO [o.h.o.r.RoutingProfileManager ] - Total - 12 GB, Free - 11.90 GB, Max: 64 GB, Used - 103.21 MB
2024-05-11 11:49:40 INFO [o.h.o.r.RoutingProfileManager ] - ====> Initializing profiles from '/home/ors/files/the-map.osm.gz' (300 threads) ...
2024-05-11 11:49:40 INFO [o.h.o.r.RoutingProfileManager ] - 1 profile configurations submitted as tasks.
2024-05-11 11:49:40 INFO [o.h.o.r.RoutingProfile ] - [1] Profiles: 'cycling-electric', location: '/home/ors/./graphs/bike-electric'.
2024-05-11 11:49:41 INFO [o.h.o.r.g.e.ORSGraphHopper ] - version v4.9.1|2024-01-17T09:08:46Z (7,20,5,4,5,7)
2024-05-11 11:49:42 INFO [o.h.o.r.g.e.ORSGraphHopper ] - graph electrobike|RAM_STORE|3D|turn_cost|,,,,, details:edges:0(0MB), nodes:0(0MB), name:(0MB), geo:0(0MB), bounds:1.7976931348623157E308,-1.7976931348623157E308,1.7976931348623157E308,-1.7976931348623157E308,1.7976931348623157E308,-1.7976931348623157E308
2024-05-11 11:49:42 INFO [o.h.o.r.g.e.ORSGraphHopper ] - No custom areas are used, custom_areas.directory not given
2024-05-11 11:49:42 INFO [o.h.o.r.g.e.ORSGraphHopper ] - start creating graph from /home/ors/files/the-map.osm.gz
2024-05-11 11:49:42 INFO [o.h.o.r.g.e.ORSGraphHopper ] - using electrobike|RAM_STORE|3D|turn_cost|,,,,, memory:totalMB:12288, usedMB:332
2024-05-11 11:49:42 ERROR [o.h.o.r.RoutingProfileManager ] -
2024-05-11 11:49:42 ERROR [o.h.o.r.RoutingProfileManager ] - Failed to either read or execute the ors configuration and its parameters: java.lang.RuntimeException: Problem while parsing file
2024-05-11 11:49:42 ERROR [o.h.o.r.RoutingProfileManager ] -
2024-05-11 11:49:43 INFO [o.h.o.a.Application ] - Started Application in 10.366 seconds (process running for 13.91)
2024-05-11 11:49:43 INFO [o.h.o.a.Application ] - openrouteservice {"build_date":"2024-03-21T13:55:54Z","version":"8.0.0"}
2024-05-11 11:49:43 INFO [o.h.o.a.s.l.ORSInitContextListener ] - Shutting down openrouteservice {"build_date":"2024-03-21T13:55:54Z","version":"8.0.0"} and releasing resources.
Can anyone give some clue what is wrong ?
I’ve tried to google this, but got nothing good…
2024-05-11 14:05:23 INFO [o.h.o.r.g.e.ORSGraphHopper ] - graph electrobike|RAM_STORE|3D|turn_cost|,,,,, details:edges:0(0MB), nodes:0(0MB), name:(0MB), geo:0(0MB), bounds:1.7976931348623157E308,-1.7976931348623157E308,1.7976931348623157E308,-1.
7976931348623157E308,1.7976931348623157E308,-1.7976931348623157E308
2024-05-11 14:05:23 DEBUG [o.s.b.f.s.DefaultListableBeanFactory ] - Creating shared instance of singleton bean 'mvcValidator'
2024-05-11 14:05:23 DEBUG [o.s.v.b.OptionalValidatorFactoryBean ] - Failed to set up a Bean Validation provider
jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.
at jakarta.validation.Validation$GenericBootstrapImpl.configure(Validation.java:291) ~[jakarta.validation-api-3.0.2.jar!/:?]
at org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:270) ~[spring-context-6.0.14.jar!/:6.0.14]
at org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean.afterPropertiesSet(OptionalValidatorFactoryBean.java:39) ~[spring-context-6.0.14.jar!/:6.0.14]
at org.springframework.boot.autoconfigure.validation.ValidatorAdapter.afterPropertiesSet(ValidatorAdapter.java:84) ~[spring-boot-autoconfigure-3.1.6.jar!/:3.1.6]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1817) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:545) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1332) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1162) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) [spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) [spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) [spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) [spring-beans-6.0.14.jar!/:6.0.14]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:950) [spring-context-6.0.14.jar!/:6.0.14]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) [spring-context-6.0.14.jar!/:6.0.14]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) [spring-boot-3.1.6.jar!/:3.1.6]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738) [spring-boot-3.1.6.jar!/:3.1.6]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440) [spring-boot-3.1.6.jar!/:3.1.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-3.1.6.jar!/:3.1.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) [spring-boot-3.1.6.jar!/:3.1.6]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) [spring-boot-3.1.6.jar!/:3.1.6]
at org.heigit.ors.api.Application.main(Application.java:29) [classes!/:8.0.0]
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) [ors.jar:8.0.0]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) [ors.jar:8.0.0]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) [ors.jar:8.0.0]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) [ors.jar:8.0.0]
… so error is: Failed to set up a Bean Validation provider
jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.
… not time for sone heavy googling around … 
When compiled the ORS from source, there is one thing missing from depedency (pom.xml):
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.1.Final</version>
</dependency>
… at least… I’m still confirming my finding…
Yeah! It was it, now I got problem that how to configure the build to use my custom config (ors-config.yml) ?
@amandus any pointers?