创建blob-java堆空间
我正在将一个多部分文件从控制器传递到服务和服务内部 正在尝试从此多部分文件创建Blob。问题是我正在使用的文件非常大(4-5GB),我得到了“java堆空间”错误(不,我无法为应用程序分配更多内存) 有没有办法把它流出来? 我正在使用Java7 服务代码:创建blob-java堆空间,java,grails,groovy,Java,Grails,Groovy,我正在将一个多部分文件从控制器传递到服务和服务内部 正在尝试从此多部分文件创建Blob。问题是我正在使用的文件非常大(4-5GB),我得到了“java堆空间”错误(不,我无法为应用程序分配更多内存) 有没有办法把它流出来? 我正在使用Java7 服务代码: def uploadFile(MultipartFile file){ Sql sql = utilsService.retrieveSQLFromDataSource() Blob blob = dataSource.con
def uploadFile(MultipartFile file){
Sql sql = utilsService.retrieveSQLFromDataSource()
Blob blob = dataSource.connection.createBlob()
blob.setBytes(1, file.bytes)
...
}
这里是相关的部分-我正在通过反复编写一小块来模拟一个大的BLOB 最重要的部分是创造的 看见
def bytes = data.getBytes()
BLOB tempBlob = BLOB.createTemporary(con, true, BLOB.DURATION_SESSION);
def os = tempBlob.setBinaryStream(0);
20000.times {
os.write(bytes,0,bytes.size())
}
os.close()
int len = tempBlob.length()
println "length $len"
stmt.setBLOB (1,tempBlob)
stmt.execute()