问题标签 [lagom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Lagom 入门会出现运行时异常
安装激活器为:
brew install typesafe-activator
创建了一个新项目:
activator new my-first-system lagom-java
切换到目录并运行项目,如下activator run
所示:
[info] Set current project to my-first-system (in build file:/Users/arungupta/workspaces/my-first-system/)
[info] Updating {file:/Users/arungupta/workspaces/my-first-system/}my-first-system...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
java.lang.RuntimeException: No main class detected.
at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last my-first-system/compile:run for the full output.
[error] (my-first-system/compile:run) No main class detected.
[error] Total time: 0 s, completed Mar 23, 2016 12:08:22 PM
这是JDK版本:
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
少了什么东西?
lagom - 如何在 logom 应用程序中更改服务网关的端口?
我已经创建了入门 lagom 应用程序 http://www.lagomframework.com/documentation/1.0.x/GettingStarted.html
系统启动良好。
如何更改服务网关的主机和端口以侦听 0.0.0.0:8080 ?
lagom - 是否存在 lagom 提供的示例应用程序
我发现 lagom 是一个用于微服务的 cqrs 和 es 框架。但是我没有找到一个可以快速启动的示例应用程序。我想知道它是否在计划中。
java - Lightbend Lagom - 如何重构 Java EE 单体
我正在观看由 lightbend 制作的关于将单体重构为微服务的网络研讨会,我遇到了一个问题。该框架的主要目标似乎是重构单体,但 lagom 似乎在其自己的容器和技术集上运行。当我想到单体和遗留 Java 应用程序时,我想到的主要技术是 Java EE。我认为当今生产中的大多数应用程序都依赖于一些 Java EE 技术。我工作的那个主要是基于 EJB 的。所以我的问题是:Lagom 如何解决这个问题?我想重构这种应用程序涉及将远程 EJB 查找转换为休息调用。但是,如果 lagom 不在 Java EE 容器中运行,我将如何保留我的应用程序的本地 EJB?可以同时使用吗?
microservices - Lagom 服务如何消耗其他服务?
我想不出三种情况。
- Lagom 服务使用同一集群中的另一个 Lagom 服务
- Lagom 服务使用不同集群中的另一个 Lagom 服务
- Lagom 服务使用外部非 Lagom 服务
- 外部非 Lagom 服务使用 Lagom 服务
1、Lagom服务消费同一个集群中的另一个Lagom服务
对于这种情况,方法是 ServiceAImpl 依赖于 ServiceB API,该 API 绑定到将被注入到 ServiceAImpl 的具体实现。
如果我理解正确的话,为了以这种方式使用服务 API,两个客户端必须在同一个集群中。然而拉戈姆说
集群应该只跨越运行相同服务的节点。
在这种情况下,我们有两种不同类型的服务。
- “相同的服务”是指 API 暴露给外部服务的顶级服务?
- 在 Lagom 1 微服务 = 1 个带有外部 API 的服务 + n 个内部服务?
2. Lagom 服务消费不同集群中的另一个 Lagom 服务
文档说:
请注意,如果您要与之通信的服务实际上是 Lagom 服务,您可能需要阅读与外部 Lagom 项目集成的文档。
为什么只配置了对服务 API 的依赖,而不是外部 Lagom 服务的 IP 和端口?
3. Lagom 服务消费外部非 Lagom 服务
您要做的第一件事是在服务定位器中注册每个外部服务。假设我们要注册一个名为 weather 的外部服务,该服务在 http://localhost:3333 上运行,这是我们将添加到构建中的内容:
与该 IP 的合同是什么?背后应该是什么?
4. 外部非 Lagom 服务使用 Lagom 服务
java - sbtEclipse 在 lagom 项目中出现错误
我已经下载了最新版本的激活器 (1.3.9),并尝试使用本指南 ( http://www.lagomframework.com/documentation/1.0.x/GettingStarted.html )启动和运行 Lagom 项目
我有一个新的 lagom-java 项目(使用 activator new 命令)。我能够在项目目录中成功运行 activator 命令,但是当我尝试在 activator 控制台中运行 eclipse 时,出现以下错误。
我在“project/eclipse.sbt”中有以下条目:
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
以及 project/plugins.sbt 中的以下内容:
我知道“lagom-internal-meta-project-service-locator”是一个内部项目,不能导入 eclipse,但不确定它从哪里获取 eclipseSkipProject 设置,因为我没有在构建中定义“skipProject”。 sbt 任何地方。
由于我只是使用 lagom 的默认设置运行,我认为它应该开箱即用。这里有什么问题?
lagom - Lagom 是否仅支持 REST?
我知道这是一个奇怪的问题……毕竟,为什么现在有人会使用 SOAP?但我想建立一个概念证明,我需要生成一个 SOAP 服务。我不清楚如何在 Lagom 中完成这项工作,但从文档来看,它似乎非常关注 REST,因此对于我正在做的事情来说,它看起来不是一个好的选择。
java - Lagom lagomServiceLocatorStart 不工作 - 连接被拒绝
我创建了一个名为 hello-lagom 的示例 Lagom 项目,一切似乎都运行良好。但是,当我尝试通过首先启动服务定位器然后运行项目来运行 helloworld-impl 项目时,如下所示:
控制台显示服务定位器正在运行:
然而,Lagom 在启动 helloworld-impl 服务时抛出连接被拒绝异常:
使用 lagomCassandraStart 启动嵌入式 cassandra 并没有帮助。不仅 cassandra 服务而且 helloworld-impl 无法注册到服务定位器。我试图 telnet 端口,但它返回连接被拒绝。
这可能是仅在尝试独立运行服务时发生的错误,还是我可能缺少某些东西?
cassandra - Lagom 框架 / Persistent Read Side / Cassandra / DataStax / 表未配置
我从http://www.lagomframework.com/documentation/1.0.x/ReadSide.html成功编译了代码示例
这是关于 CQRS 模式的读取端。
唯一的问题是:它不运行。
看起来像配置问题......而Lagom的官方文档此时非常不完整。
错误说:
好的,代码中有一行代码执行 cassandra 查询,从 & 中选择并插入到名为 postsummary 的表中。
我认为这些表是默认自动创建的。无论如何,有疑问,我只是将这一行添加到我的 application.conf 中:
仍然......,没有运气,重新启动后同样的错误。
也许它与启动期间的另一个错误有关,即:
我想...好吧,也许它正在尝试联系 9042(默认 cassandra 端口),而 lagom 默认情况下在 4000 开始嵌入 cassandra。
所以我尝试在 application.conf 中添加这些行:
仍然......,没有运气,同样的错误。
任何人都可以帮我解决它。我需要运行这个示例,这是使用 lagom 进行 CQRS 研究的关键部分。
一些参考:https ://github.com/lagom/lagom/blob/master/persistence/src/main/resources/reference.conf
以下是一些截图:
顺便说一句,我通过在代码中创建表来解决它,从事件处理器的准备方法中调用此方法:
谢谢!,拉卡
websocket - Lagom 框架 / 流式响应 / websocket / pathCall / Descriptor / Creator 而不是 Function
我的服务是这样声明的:
滴答声有效。滴答声没有。
当我使用 websocket 客户端(到 ws://localhost:9000/api/bloggie/tock )调用它时,我得到“未定义”作为响应,表明没有找到该 URL 的映射。
经过一些实验,发现了原因:tick 有效,因为它具有 url 参数(:interval)。Tick 不起作用,因为它没有 url 参数。严重 pathCall 要求您在 URL 中有参数?所以我检查了服务的API:http ://www.lagomframework.com/documentation/1.0.x/api/java/com/lightbend/lagom/javadsl/api/Service.html
pathCall 有几个重载的声明。显然蜱虫使用这个:
所以从签名来看,是的,它需要方法来获取参数。因此,如果方法(例如 tock)不带参数,则绑定将在运行时失败。所以我想我需要改用这个:
问题是......我不知道怎么做。我还没有看到在 pathCall 中使用 akka.japi.function.Creator 的任何示例。
我试过这个:
它编译。但它在运行时抛出一个错误:
提前致谢!
我只是做了一些实验......全部编译,但没有一个工作......
结果:编译成功。运行时:路径未知(无绑定 (?))。
然后我尝试了
结果:异常。
然后我尝试了:
结果:异常
更新:“已解决”(部分)。发现这个有效:
我可以使用以下 URL 打开它:ws://localhost:9000/tock
所以......,当这些函数不需要参数时,我不能为那些返回流的函数提供结构良好的 URL?至少现在 (?)。
更新:似乎这个问题不仅发生在 pathCall 上。我在休息电话中遇到了同样的问题。这个不起作用(没有约束力):
这个有效:
谢谢!