- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在努力在 Spring Boot 中创建基本的 Jolie 支持。 Jolie 是一种微服务语言,其底层基于 Java,但语法非常不同( example )。感谢JavaService通过 Jolie 附带的 class,可以从 Java 及其库中获取类/方法功能,并将它们嵌入到 Jolie 中。我想知道如何通过它们实现的注释和功能实现同样的效果。用JavaService也可以做到吗?或者我必须为 Jolie 编写自己的注释解析?
我想要实现的一个简单的行为示例是 @SpringBootApplication ,它运行一个“Hello world”@RestController,例如 here (第 2.3 和 2.4 点)。理想情况下,Jolie 中的类似程序应如下所示:
interface SpringAppInterface {
OneWay:
run(string)
}
outputPort SpringApplication {
Interfaces: SpringAppInterface
}
embedded {
Java:
"joliex.spring-boot.SpringApplicationService" in SpringApplication
}
@SpringBootApplication
main {
run@SpringApplication(args)
}
其中 SpringApplicationService 扩展了 JavaService 类并嵌入在 Jolie 中。现在是@RestController:
inputPort SpringTestService {
...
}
@RestController
main {
@RequestMapping("/hello")
hello(void)(response) {
response = "hello world"
}
}
这是一种理想的方式,它很好地呈现了我想要实现的行为。并更好地展示JavaService类的真实使用-here是标准 Java Math 类的实现,并且 here - 它嵌入到朱莉身上。
旁注:我想知道是否可以在 JavaService 端运行整个 Spring Boot 逻辑,例如,我有一个已经用 @SpringBootApplication 注释的 JavaService、一个用 @RestController 注释的 JavaService 等。
<小时/>编辑:
正如我所说 - 我想在 Spring Boot 中创建 Jolie 支持,因此最终 Jolie 开发人员将能够包含“spring-boot.iol”等内容,并能够创建基于 Spring Boot 的 Jolie 程序。我想“spring-boot.iol”将类似于所有现有的包含文件,如“console.iol”、“math.iol”等,并且它将嵌入一个JavaService - 让我们称之为“SpringBootService”。现在,这个 SpringBootService 将从 Spring Boot 库中获取功能,以允许 Jolie 使用它们。这样,通过包含一些 *.iol 文件,Jolie 程序确实可以实现 Spring Boot 功能并运行 Spring Boot 应用程序。 这当然只是我的想法 - 我认为这个任务可能是如何完成的,但话又说回来 - 存在 Spring Boot 注释的问题。
最佳答案
您必须在 Spring Boot 应用程序内部从 Java 运行 Jolie 解释器。例如,参见 http://fmontesi.github.io/2015/01/30/running-jolie-inside-of-java.html
在 Jolie 服务中声明本地内存输入端口:https://jolielang.gitbook.io/docs/locations/local
然后,您可以通过调用interpreter.commCore().getLocalCommChannel()
来访问本地输入端口上公开的操作,这将返回一个可用于发送和接收的通信 channel 对象向 Jolie 翻译发送消息。
这是一个快速而肮脏的示例(您可能希望更好地处理 future 和异常),我在其中发送包含整数“x”的值:
Value v = Value.create();
v.setFirstChild( "x", 5 );
CommMessage request = CommMessage.createRequest( "yourOperationName", "/", v );
LocalCommChannel c = interpreter.commCore().getLocalCommChannel();
try {
c.send( request );
CommMessage response = c.recvResponseFor( request ).get();
if ( response.isFault() ) {
throw response.fault();
}
return response.value();
} catch( ExecutionException | InterruptedException | IOException e ) {
throw new FaultException( Constants.IO_EXCEPTION_FAULT_NAME, e );
}
实际上,除了 Jolie 的解释器和 Java 服务内部之外,该 API 仍然没有被广泛使用,因此欢迎提出使其变得更加友好的评论。
PS:您这样做的动机是什么?如果您的目标是使用 Jolie 制作微服务,那么添加所需的功能作为 Jolie 库,而不是“将 Jolie 添加到 Spring Boot”不是更容易吗?
关于java - Jolie 和 Spring Boot 注释 - 如何做到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549113/
我想将多个参数从 Jolie 传递到嵌入式 Java 服务。这是我的 Jolie 程序和 Java 程序的代码: 朱莉节目: include "console.iol" type NandReques
我有一个用 Jolie 编写的服务,我想根据请求提取 http header 。以同样的方式可以打印出 request.id,我想打印标题。代码中的粗体字母下面有一个尝试。这里的代码: exe
我目前正在努力在 Spring Boot 中创建基本的 Jolie 支持。 Jolie 是一种微服务语言,其底层基于 Java,但语法非常不同( example )。感谢JavaService通过 J
我是一名优秀的程序员,十分优秀!