标签: ratpack

Spring Boot + Spring MVC + Ratpack可能吗?

我们是一个Spring Boot商店,并且非常依赖Spring MVC作为我们的REST端点.我们使用Boot和嵌入式Tomcat来创建自托管JAR.是否可以用Ratback替换Tomcat,同时仍然保留我的所有Spring MVC代码?我担心Spring MVC会以某种方式绑定到servlet规范中,并且不会在没有servlet容器的情况下运行.我知道dsyer/spring-boot-ratpack的工作,但在略读之后,代码无法决定Spring MVC是否能够很好地使用桥接器.是否有人知道任何可以让我们保留对Spring MVC的投资并让Spring Boot使用Ratpack来管理HTTP流量的工作?

spring-mvc ratpack spring-boot

7
推荐指数
2
解决办法
1818
查看次数

在Ratpack Groovy中解析json

我在Groovy控制台中启动了一个小型的ratpack应用程序,但我无法从文档中找到如何获取已在请求中发送的json数据.

@Grab("io.ratpack:ratpack-groovy:0.9.4")
import static ratpack.groovy.Groovy.*
import groovy.json.JsonSlurper

ratpack {
  handlers {
    get {
      def slurper = new JsonSlurper()
      def result = slurper.parseText('{"person":{"name":"Guillaume","age":33,"pets":["dog","cat"]}}')
      render "Hello world! ${result.person}"
    }
    post("foo") {
      def slurper = new JsonSlurper()
      def result = slurper.parseText("WHAT DO i PUT HERE?")
      render "Hello world! ${result.person}"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

一个示例请求:

curl -XPOST -H "Content-Type: application/json" -d '{"person":{"name":"Guillaume","age":33,"pets":["dog","cat"]}}' localhost:5050/foo
Run Code Online (Sandbox Code Playgroud)

groovy json ratpack

6
推荐指数
1
解决办法
2036
查看次数

在ratpack中忽略groovy html模板'yieldUnescaped'

我试图将部分html注入GTPL文件,但似乎总是"逃脱"html内容.如何将HTML代码段发送到标记并直接呈现?

"hello.gtpl"的内容

yieldUnescaped '<!DOCTYPE html>'
html {
    yieldUnescaped text
}
Run Code Online (Sandbox Code Playgroud)

来自ratpack.groovy

    get('helloplain') { //works .but clumsy
        String htmlPayLoad = "<!DOCTYPE html>  <html>  <title> Hello </title><body> <h3> Hello </h3> </body> </html>"
        context.getResponse().contentType(HttpHeaderConstants.HTML_UTF_8).send(htmlPayLoad.getBytes());
    }
    get('hellotemplate') { //ex: /users/
        String text = "<title> Hello </title><body> <h3> Hello </h3> </body> "
        render groovyMarkupTemplate( "hello.gtpl"  ,text: text  )
    }
Run Code Online (Sandbox Code Playgroud)

localhost:5050/helloplain 提供适当的HTML,以 localhost:5050/hellotemplate提供已转义所有HTML内容的文件.

<!DOCTYPE html><html>&lt;title&gt; Hello &lt;/title&gt;&lt;body&gt; &lt;h3&gt; Hello &lt;/h3&gt; &lt;/body&gt; </html>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

groovy ratpack

4
推荐指数
1
解决办法
286
查看次数

Nginx 不会为“if-modified-since”标头返回 304

我有一台运行 nginx 的服务器,该服务器为使用 ratpack 构建的 Web 应用程序提供服务,但从浏览器或使用 curl 请求网站时,我无法获得 304 响应。

Nginx 配置:

location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_read_timeout 240;
    proxy_pass http://example.com/;
    proxy_redirect off;
    add_header Last-modified "Wed, 29 Nov 2017 12:56:25";
    if_modified_since   before;
}
Run Code Online (Sandbox Code Playgroud)

从浏览器我总是得到 200 ok 和 curl 我得到

HTTP/1.1 302 Found
Server: nginx/1.6.3
Date: Wed, 29 Nov 2017 14:23:07 GMT
Content-Length: 0
Connection: keep-alive
location: http://example.com/display
Last-Modified: Wed, 29 Nov 2017 12:56:25
Run Code Online (Sandbox Code Playgroud)

我已经尝试了这两个 curl 命令,并且都给出了上述响应:

curl -I -H …
Run Code Online (Sandbox Code Playgroud)

curl nginx ratpack server

4
推荐指数
1
解决办法
4899
查看次数

Ratpack Rest API 异常处理程序

我希望在使用ratpack 实现REST API 时使用单个ExceptionHandler 来处理每个异常。此 ExceptionHandler 将处理每个运行时异常并相应地发送 json 响应。

可以在ratpack中实现吗?在 Spring 中,我们使用 @ControllerAdvice 注释来做到这一点。我想使用ratpack 实现类似的行为。

谢谢你的帮助。

java rest spring ratpack

3
推荐指数
1
解决办法
1653
查看次数

在命令行上设置gradle/ratpack的http端口

我正在尝试运行ratpack (https://github.com/pledbrook/lazybones/tree/master/src/templates/ratpack)

使用"gradlew run" - 这使用默认端口,有没有办法在命令行上设置将用于http的端口?

像gradlew运行-Dhttp.port = 8080或类似的东西?

groovy gradle ratpack

1
推荐指数
1
解决办法
1033
查看次数

标签 统计

ratpack ×6

groovy ×3

curl ×1

gradle ×1

java ×1

json ×1

nginx ×1

rest ×1

server ×1

spring ×1

spring-boot ×1

spring-mvc ×1