小编Gab*_*abi的帖子

如何使用RestTemplate转发大文件?

我有一个Web服务调用,通过它可以上传zip文件.然后将文件转发到另一个服务进行存储,解压缩等.现在文件存储在文件系统中,然后构建FileSystemResource.

Resource zipFile = new FileSystemResource(tempFile.getAbsolutePath());
Run Code Online (Sandbox Code Playgroud)

我可以使用ByteStreamResource以节省时间(在转发之前不需要在磁盘上保存文件)但是为此我需要构建一个字节数组.如果是大文件,我将收到"OutOfMemory:java heap space"错误.

ByteArrayResource r = new ByteArrayResource(inputStream.getBytes());
Run Code Online (Sandbox Code Playgroud)

任何使用RestTemplate转发文件而不会出现OutOfMemory错误的解决方案?

java groovy spring resttemplate

36
推荐指数
3
解决办法
3万
查看次数

包含g:include的布尔参数作为字符串传递给包含的视图

我不知道以下更改是一个问题还是意图.

<g:include view="line.gsp" params="['label':'test', 'progress':false]"/>
Run Code Online (Sandbox Code Playgroud)

然后line.gsp aways中的表达式求值为true,因为'progress'参数的类型是String,而不是Boolean.

  class is: ${params.progress.getClass()}
  <g:if test="${params.progress}">
   this should not be displayed
 </g:if>
Run Code Online (Sandbox Code Playgroud)

请注意,这同样适用于其他类型,而不仅仅是布尔值.我正在使用grails 3.3.8这不会发生在grails 2.5.2中.

我没有在网上找到任何关于这个的信息,所以这就是我在这里问的原因.谢谢.

编辑:

正如Daniel所说,我也尝试过grails 3.3.2.我刚刚使用grails create-app创建了一个应用程序,并修改了现有的index.gsp以包含line.gsp,如上面的代码所示.

这是一个截图: 在此输入图像描述

grails grails-3.3.x

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

当null作为参数传递时,Groovy选择了什么重载方法?

class SimpleTest {
    void met( Object a ) {
        println "Object"
    }

    void met( String b ) {
        println "String"
    }

    static main( args ) {
        SimpleTest i = new SimpleTest()
        i.met(null)
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码将生成输出"Object".它不会选择最专业的方法版本.在这种情况下,String比Object更专业,因此该规则不适用.

groovy

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

标签 统计

groovy ×2

grails ×1

grails-3.3.x ×1

java ×1

resttemplate ×1

spring ×1