首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在JavaLite中使用数据库属性文件

无法在JavaLite中使用数据库属性文件
EN

Stack Overflow用户
提问于 2017-03-31 06:43:45
回答 2查看 648关注 0票数 0

无法加载数据库属性文件。

我的database.properties文件位于类路径资源文件夹中,并且已在classpathenv.connections.file=MyProject/src/main/resources/database.properties根目录下配置了activejdbc.properties

我正在使用mvn运行我的应用程序:

代码语言:javascript
复制
mvn process-classes

mvn activejdbc-instrumentation:instrument

mvn package

mvn compile exec:java

当我使用Base.open()运行这个应用程序时,我会发现错误:

代码语言:javascript
复制
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运行示例运行良好,但是,用火花布线更改它的抛出错误:

代码语言:javascript
复制
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;
});

错误:

代码语言:javascript
复制
[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()创建了一个名为"default“的线程,而seems无法理解名为"default”的线程。

EN

回答 2

Stack Overflow用户

发布于 2017-04-05 23:56:49

您需要了解Maven生命周期如何工作。

  1. 无需打电话给mvn activejdbc-instrumentation:instrument
  2. 不要在compile之前执行exec.java

就这么做吧:

代码语言:javascript
复制
mvn package
mvn exec:java

由于您没有提供任何关于您的pom.xml的其他信息,所以我认为它对于ActiveJDBC Maven配置来说是典型的。

票数 1
EN

Stack Overflow用户

发布于 2017-04-14 19:53:19

这是你最后补充的问题第二部分的第二个答案。

您没有连接的原因是ActiveJDBC在默认情况下是懒惰的:渴望。这意味着在执行星火get()方法时,您打开和关闭到数据库的连接。传递给视图的data对象没有机会从数据库加载数据。解决这一问题有三种方法:

  1. 直接访问数据库: Base.open(); 人物导演=新人物(“斯蒂芬·斯皮尔伯格”);director.saveIt();director.add(新电影(“拯救士兵瑞安”,1998年);director.add(新片(“大白鲨”,1982年);List data = director.getAll(Movie.class);data.size();// <<--在关闭连接Base.close()之前强制访问数据库;返回数据);
  2. 使用Spark顶部打开和关闭DB连接,不要污染get()方法中的代码:http://sparkjava.com/documentation.html#filters
  3. 使用ActiveWeb,它与ActiveJDBC:http://javalite.io/activeweb集成得很好
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43134132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档