Не удалось загрузить файл свойств базы данных.
У меня есть файл database.properties
в папке ресурсов пути к классу, и я настроил activejdbc.properties
в корне classpathenv.connections.file=MyProject/src/main/resources/database.properties
Я использую mvn для запуска своего приложения:
mvn process-classes
mvn activejdbc-instrumentation:instrument
mvn package
mvn compile exec:java
Когда я запускаю приложение с Base.open()
, я получаю сообщение об ошибке:
org.javalite.activejdbc.DBException: Could not find configuration in a property file for environment: development. Are you sure you have a database.properties file configured?
at org.javalite.activejdbc.DB.open(DB.java:151)
at org.javalite.activejdbc.Base.open(Base.java:52)
at com.soul.seeker.Application.lambda$main$0(Application.java:52)
at spark.FilterImpl$1.handle(FilterImpl.java:62)
at spark.http.matching.BeforeFilters.execute(BeforeFilters.java:48)
at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:129)
at spark.embeddedserver.jetty.JettyHandler.doHandle(JettyHandler.java:50)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.eclipse.jetty.server.Server.handle(Server.java:517)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
обновление:
Запуск примера из javalite github работает нормально, однако, изменив его с помощью искровой маршрутизации, его выброс ошибка:
get("/role_on_login", (req, res) -> {
Base.open();
Person director = new Person("Stephen Spielberg");
director.saveIt();
director.add(new Movie("Saving private Ryan", 1998));
director.add(new Movie("Jaws", 1982));
List data = director.getAll(Movie.class);
Base.close();
return data;
});
Ошибка:
[qtp1213754379-16] WARN org.eclipse.jetty.server.HttpChannel - //localhost:4567/role_on_login
org.javalite.activejdbc.DBException: there is no connection 'default' on this thread, are you sure you opened it?
at org.javalite.activejdbc.DB.connection(DB.java:754)
at org.javalite.activejdbc.DB.createStreamingPreparedStatement(DB.java:521)
at org.javalite.activejdbc.DB.find(DB.java:512)
at org.javalite.activejdbc.LazyList.hydrate(LazyList.java:329)
at org.javalite.activejdbc.AbstractLazyList.toString(AbstractLazyList.java:190)
at spark.serialization.DefaultSerializer.process(DefaultSerializer.java:38)
at spark.serialization.Serializer.processElement(Serializer.java:49)
at spark.serialization.Serializer.processElement(Serializer.java:52)
at spark.serialization.Serializer.processElement(Serializer.java:52)
at spark.serialization.SerializerChain.process(SerializerChain.java:53)
at spark.http.matching.Body.serializeTo(Body.java:72)
at spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:189)
at spark.embeddedserver.jetty.JettyHandler.doHandle(JettyHandler.java:50)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.eclipse.jetty.server.Server.handle(Server.java:517)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
at java.lang.Thread.run(Unknown Source)
Так что похоже на проблему с потоком, когда javalite Base.open()
создает поток с именем «по умолчанию», а искра не может понять поток с именем «по умолчанию».