问题标签 [finatra]

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.

0 投票
1 回答
2367 浏览

docker - 如何使用 docker-compose 通过 ssl 发布服务?

我有一个使用finatra在 docker 容器上运行的服务器的服务。目前我正在使用letsencrypt,并且我创建了我的.pfx文件等。但我不知道如何使用它docker-compose。我的项目中有一个keystore文件夹,里面有我的 ssl 文件。这是我的docker-compose.yml

0 投票
1 回答
555 浏览

scala - 用于 Finatra Web 服务器的具有 Kerberos 身份验证的 HTTP/Spnego

0 投票
1 回答
485 浏览

java - Finatra TooLongMessageException HTTP 内容长度超过 5242880 字节,尽管标志设置了更多字节

我看到 TooLongMessageException HTTP content length exceeded 5242880 bytes.我的 finatra 服务器抛出异常。查看通过 可用的标志-help=true,看起来要设置的标志是maxRequestSize。这是帮助命令的输出

我已经传入-maxRequestSize=10.megabytes并可以看到/admin/registry.json文档中的值:maxRequestSize: "10485760.bytes"但我仍然看到TooLongMessageException5 兆字节的值。如何增加这个最大尺寸?

0 投票
0 回答
146 浏览

scala - 将 Guava 期货转换为 Twitter 期货

我有一个 Finatra 应用程序,它使用产生 Guava 的 Datastax 驱动程序访问 Cassandra Futures。转换通过以下代码完成

问题是,在这种转换之后,其余的请求处理发生在由 Cassandra 驱动程序创建的线程池中,这可能会阻塞其他 I/O 任务。我如何访问 Finagle 的执行程序,这种 CPU 密集型工作应该在哪里完成?

0 投票
1 回答
81 浏览

scala - 在 POST 正文 Finatra 中为多个字段使用案例类时遇到问题

我正在研究一个简单的 Finatra API 示例,但是在请求正文中使用多个字段时,无法为 POST 请求使用案例类。

这是我的案例类和控制器的示例:

我使用以下请求正文 JSON 向该路由发送发布请求:

响应: Sale(Some(Foo Barrington),None)

响应显示用户正在正确反序列化,但由于某种原因,我无法填充 streetAddress 字段。

另外,我注意到当我将这些字段中的任何一个设置为String而不是Option[String]我只得到不成功的 500 个响应时。

我尝试过的事情:

  • Some(streetAddress)匹配该字段字符串值或“未找到”的case 语句,当它是None. 在这些情况下,它仍然在说它streetAddress不是None
  • curl向邮递员和邮递员提出请求。

我总是可以从Sales对象访问用户字段,但streetAddress如果我将测试元素添加到案例类,则永远不能访问(或请求正文中的任何其他字段)。

我希望这两个字段都能被识别,因为它们都在请求中提供。一般来说,我对 Scala/Finatra 比较陌生,所以我可能只是错误地使用了 Finatra 库或 Case 类。

编辑:似乎将字段名称更改为不混合/驼峰式可以解决所有问题,但这似乎是奇怪的行为。

0 投票
1 回答
363 浏览

mongodb - Mongo Number of Connections is Negative (Connections Don't Properly Terminate)

I have a service that connects to a Mongo Cluster running on MongoAtlas. The test suite, for the time being, connects to the cluster runs a number of tests, destroys the created data and closes the connection, at least thats what it is supposed to do.

A chunk of the Test Suite:

The dbscope flag will used to name the database, so that different test suites can boot different dbs and run in parallel w/o deleting each other's data

DatabaseTestProviderTestModule:

MongoDatabaseConnector:

I have noticed that after the suite is done and all tests pass, the Mongo cluster continued to print to the sbt console:

Now, frankly, I am not super sure where the problem is coming from but I did a few things, leaning my guess towards Mongo as the source.

  • I have confirmed in the debug mode that the object id of the MongoDataBaseProvider class that is being hit in the src code is the same as the one that is being hit by the mockDbProvider.close I was wondering if for some reason the Finatra Injector created a separate instance. Turn out it's not the case.

  • I have added in an extra .close() fall in an afterEach function.

    Normally adding this should result in the afterAll() call to error out. Because there would not be an open connection to close. To my surprise it didn't. So I logged into MongoAtlas to see if any of the metrics. I have realized the the number of connections is negative, pictured below. The reasonable explanation for this is that the second .close() call got executed, driving the metrics below zero on every test run.

enter image description here

I am curious if I am terminating it wrongly or if anyone else ran into this problem.

P.S. Contacted Mongo Support about this, awaiting response

0 投票
1 回答
514 浏览

scala - Finatra 与 Akka-http 作为普通 http 库的性能

我需要为我的服务构建 REST API,而且我是Scala. 我已经知道finatraakka-http。经过一段时间的学习,我更倾向于finatrajava-style为Web服务提供语法和方法。但是,在这一点上与我akka有非常密切的联系scala,学习akka-http可能会帮助我的scala旅程。

任何帮助表示赞赏。

0 投票
1 回答
46 浏览

finatra - 修改 Finatra 响应头

Finatra 默认在响应头中返回框架的名称为“Server”-> Finatra,

出于某种原因,我不想公开这部分信息。

无论如何要修改它吗?我已经尝试过过滤器和 response.ok.header.set。但没有运气。

谢谢大家。

服务器头信息:

服务器头信息

0 投票
2 回答
39 浏览

scala - 将 Finatra 与 SBT 一起使用,在哪里搜索文件?

Finatra 在哪里搜索文件?当我写

文件应该放在哪个文件夹中才能找到?

文档中,它说“类路径根”无处可寻(严格来说,它不存在)。

0 投票
2 回答
130 浏览

scala - 设置 Finatra HTTP 请求超时

是否可以在 Finatra 服务器中设置 HTTP 请求响应超时?

http 控制器回调通常返回一个 Future,一旦解决,就会传输响应。我想在 Finatra 中定义服务器在返回 500 或 400 响应之前应该等待多长时间。