小编Eri*_*las的帖子

如何从RestTemplate中读取响应头?

我使用RestTemplate.postForObject将信息发布到Web服务.除了结果字符串,我还需要响应头中的信息.有没有办法得到这个?

RestTemplate template = new RestTemplate();
String result = template.postForObject(url, request, String.class);
Run Code Online (Sandbox Code Playgroud)

java spring resttemplate

32
推荐指数
2
解决办法
4万
查看次数

如何直接从磁盘复制锁定的文件并确保文件完好无损?

我正在编写的应用程序需要能够复制被锁定的文件.我们尝试使用卷影复制,虽然它成功复制了文件,但是对文件进行锁定的应用程序崩溃了,因为在我们复制文件时它无法获取锁定.

我不得不相信我唯一的选择是绕过操作系统并直接从磁盘读取.问题是如果我直接读到磁盘我不能确定文件的完整性,如果它在写入的中间,文件将处于损坏状态.

经过几个小时的搜索,我能够找到一个直接从磁盘复制文件的实用程序,并使用文件系统驱动程序在复制时缓存写入,以便确保文件处于完整状态.但是,该实用程序非常昂贵,我可能需要使用的许可证为100k +.

有没有人对如何完成我想要的事情有任何想法?

我们计划仅将系统限制为NTFS卷.

c filesystems file-io ntfs disk

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

我怎么知道我的消息是用spring amqp成功发送的?

我使用RabbitTemplate类使用spring amqp写入RabbitMQ队列.我使用convertAndSend方法将消息发送到队列.这在正常情况下运行良好,但如果队列不存在,它似乎无声地失败.不会抛出异常,也不会将错误/调试消息记录到记录器中.

确保邮件传递的最佳方式是什么?

以下是代码当前正在执行的操作的示例.

RabbitTemplate template = new RabbitTemplate(factory);
template.setQueue(queueName);
template.setRoutingKey(queueName);
template.convertAndSend(message);
Run Code Online (Sandbox Code Playgroud)

java spring amqp rabbitmq spring-amqp

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

AWS Java TransferManager问题,JVM无法获取更多本机线程

TransferManager几个星期以来我一直在争论一个问题,我希望得到一些反馈,

我有一个服务器应用程序,等待发送给它的任务.其中一些任务需要上传到S3.该任务包含我需要的所有上传信息,包括访问密钥.

在我的实际上传的代码,我需要创建一个新的S3ClientTransferManager对象每次我需要做的上传,因为我不知道提前我的访问密钥的时间.

在系统处理大约1200个上载后,我收到一个错误,指示JVM无法获得更多本机线程.我将一个分析器附加到应用程序,并注意到该TransferManager对象没有得到正确清理,有成千上万的"s3-transfer-manager-worker-1"线程处于空闲状态.

我试图TransferManager.shutdownNow()在上传完成后添加一个电话.这确实清理了线程.但是,RejectedExecutionException无论何时TransferManager创建新内容并尝试上传,我都会收到.

TransferManager包含一个UploadMonitorUploadMonitor具有静态ScheduledExecutorService. TransferManager.shutdownNow()调用UploadMonitor.shutdownNow()调用shutdownNow()执行程序服务的静态方法.这使得我不能再使用任何TransferManager对象,即使我尝试创建一个新对象.

如何在不耗尽线程的情况下使用多个传输对象?这似乎是一个错误.

java amazon-s3 amazon-web-services

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

如何在OSX上的Java 7中使用32位本机库

我的Java应用程序需要在OSX上使用32位本机库.

具体来说,我有一个32位ODBC驱动程序,并有一些JNI代码来使用驱动程序,但似乎没有任何32位Java 7 JVM将在OSX上运行.

我没有驱动程序的源代码,所以我无法重新编译它.

此产品没有JDBC驱动程序,这就是我使用ODBC的原因.

我已经四处寻找32位OpenJDK端口,但唯一可能支持它的项目已经死了.

有没有人有任何想法?

java macos java-native-interface odbc 32bit-64bit

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

如何使用多个多对一关系保存GORM对象?

假设我有以下层次的域类.

class School {
   String name
   static hasMany = [teachers: Teacher, students: Student]
}

class Teacher {
   String name
   static belongsTo = [school: School]
   static hasMany = [students: Student]
}

class Student {
   String name
   static belongsTo = [school: School, teacher: Teacher]
}
Run Code Online (Sandbox Code Playgroud)

我尝试了两种不同的方法来拯救学校,老师和学生.

尝试1:

def school = new School(name: "School").save()
def teacher = new Teacher(name: "Teacher", school: school).save()
def student = new Student(name: "Student", school: school, teacher: teacher).save(flush: true)
Run Code Online (Sandbox Code Playgroud)

它看起来保存得当但是我跑的时候:

println(school.students*.name)
Run Code Online (Sandbox Code Playgroud)

它打印null.

所以我决定尝试不同的方法.

尝试2:

def school = …
Run Code Online (Sandbox Code Playgroud)

grails groovy grails-orm

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