简体   繁体   English

Java Package Javalite 应用程序的名称

[英]Java Package Name(s) for Javalite Application

I'm quite new to Javalite and have coded my first application.我是 Javalite 的新手并且编写了我的第一个应用程序。

My first question is about Java package names to use - all examples I've found have top-level package name as 'app'.我的第一个问题是关于要使用的 Java package 名称 - 我发现的所有示例都有顶级 package 名称作为“应用程序”。 Can I define and use my own package names assuming that package names below follow the structure recommended?假设下面的 package 名称遵循推荐的结构,我可以定义和使用自己的 package 名称吗?

My second question is about class names used - are the names fixed or I can use my own names but follow certain conventions?我的第二个问题是关于使用的 class 个名称 - 这些名称是固定的还是我可以使用我自己的名称但遵循某些约定? Where these conventions can be found?在哪里可以找到这些约定?

I have create application with my own packages and class names.我已经使用自己的包和 class 名称创建了应用程序。 When I run it under Eclipse the process started but failed - see the partial log below Jan 25, 2023 8:49:28 PM org.javalite.activeweb.RequestDispatcher initAppConfig SEVERE: Failed to create and init a new instance of class: app.config.AppBootstrap.当我在 Eclipse 下运行它时,进程启动但失败了 - 请参阅 2023 年 1 月 25 日晚上 8:49:28 以下的部分日志配置.AppBootstrap。 Application failed to start, so it will not run.应用程序启动失败,因此不会运行。 java.lang.ClassNotFoundException: app.config.AppBootstrap at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at org.javalite.activeweb.RequestDispatcher.initAppConfig(RequestDispatcher.java:126) at org.javalite.activeweb.RequestDispatcher.initApp(RequestDispatcher.java:74) at org.javalite.activeweb.RequestDispatcher.init(RequestDispatcher.java:68) at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:133) at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$2(ServletHandler.java:725 java.lang.ClassNotFoundException: app.config.AppBootstrap 位于 java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582) 位于 java.base/jdk.Internal.loader .java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class .forName(Class.java:315) 在 org.javalite.activeweb.RequestDispatcher.initAppConfig(RequestDispatcher.java:126) 在 org.javalite.activeweb.RequestDispatcher.initApp(RequestDispatcher.java:74) 在 org.activeweb.javalite.active.java RequestDispatcher.init(RequestDispatcher.java:68) at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:133) at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$2(ServletHandler.java:725 ) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:749) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:900) at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532) at org.eclipse.jetty.util.component. ) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1654) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) at java.base/ java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:749) at org.eclipse.jetty.servlet.ServletContextHandler.startContext( ServletContextHandler.java:392) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:900) at org.eclipse .jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)在org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532)在org.88317647.88788.componentutil.jet AbstractLifeCycle.start(AbstractLifeCycle.java:93) at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171) at org.eclipse.jetty.server.Server.start(Server.java:470) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89) at org.eclipse.jetty.server.Server.doStart(Server.java:415) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93) at org.ns.tools.bcweb.BCWJServer.webSetup(BCWJServer.java:24) at org.ns.tools.bcweb.BCWJServer.main(BCWJServer.java:11) Class app.config.AppBootstrap is not present in my application but I have class named BCWServerBootstrap that implements the similar functionality. AbstractLifeCycle.start(AbstractLifeCycle.java:93) at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171) at org.eclipse.jetty.server.Server.start(Server.java:470) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89) at org.eclipse.jetty.server .Server.doStart(Server.java:415)在org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)在org.ns.tools.bcweb.BCWJServer.webSetup(BCWJServer.888453) ) 在 org.ns.tools.bcweb.BCWJServer.main(BCWJServer.java:11) Class app.config.AppBootstrap 不存在于我的应用程序中,但我有 class 名为 BCWServerBootstrap 实现了类似的功能。

Regards Nick Sorokin e-mail: Nick.Sorokin at gmail.com此致 Nick Sorokin 电子邮件:Nick.Sorokin,电话:gmail.com

To answer your question quickly, the only two requirements for packages and class names are for configuration classes and for controllers.为了快速回答您的问题,包和 class 名称的唯一两个要求是配置类和控制器。 Any other classes, including filters, models, services, etc. can be located in any package and have their preferred name.任何其他类,包括过滤器、模型、服务等,都可以位于任何 package 中并具有它们的首选名称。

Here is the page you need to look at:这是您需要查看的页面:

https://javalite.io/structure_of_activeweb_project https://javalite.io/structure_of_activeweb_project

As you can see, controllers need to be in the app.controllers package:如您所见,控制器需要在app.controllers package 中:

app.controllers.MyController

The config classes are in the app.config package:配置类在app.config package 中:

app.config.AppBootstrap
app.config.AppControllerConfig
app.config.DbConfig
app.config.RouteConfig
app.config.FreemarkerConfig

Any other classes can b wherever you want them to be.任何其他类都可以放在您想要的任何位置。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM