我在这里是Scala / PlayFramework菜鸟,所以请对我很轻松:)。
我正在尝试创建一个操作(提供GET请求),这样当我在浏览器中输入url时,浏览器应该下载该文件。到目前为止,我有这个:
def sepaCreditXml() = Action {
val data: SepaCreditTransfer = invoiceService.sepaCredit()
val content: HtmlFormat.Appendable = views.html.sepacredittransfer(data)
Ok(content)
}
它的作用基本上是在浏览器中显示XML(而我实际上希望它下载文件)。另外,我有两个问题:
我不确定使用Play的模板“views.html ...”是创建XML模板的最佳选择。它是好/简单还是我应该使用不同的解决方案?
我在Play的文档中找到了Ok.sendFile。但它需要一个java.io.File。我不知道如何从HtmlFormat.Appendable创建一个文件。我更愿意在内存中创建一个文件,即没有new File("/tmp/temporary.xml")
。
编辑:这里的SepaCreditTransfer是一个包含一些数据的案例类。没什么特别的。
答案 0 :(得分:1)
我认为浏览器可视化XML而不是下载XML是很正常的。您是否尝试使用package com.package;
import java.util.HashMap;
import java.util.Properties;
import java.util.Map;
import java.util.List;
import java.lang.Object;
import kafka.consumer.Consumer;
import kafka.consumer.ConsumerConfig;
import kafka.consumer.ConsumerConnector;
import kafka.consumer.ConsumerIterator;
import kafka.consumer.KafkaStream;
public class ExampleConsumer {
public void exampleConsumer(){
Properties props = new Properties();
props.put("zk.connect", "localhost:2181");
props.put("zk.connectiontimeout.ms", "1000000");
props.put("groupid", "test_group");
ConsumerConfig consumerConfig = new ConsumerConfig(props);
ConsumerConnector consumerConnector = (ConsumerConnector) Consumer.createJavaConsumerConnector(consumerConfig);
Map<String, Object> topicCountMap = new HashMap<String, Object>();
topicCountMap.put("test", new Integer(1));
Map<String, List<KafkaStream<byte[], byte[]>>> consumerMap = (Map<String, List<KafkaStream<byte[], byte[]>>>) consumerConnector.createMessageStreams((scala.collection.Map<String, Object>) topicCountMap);
KafkaStream<byte[], byte[]> stream = consumerMap.get("test").get(0);
ConsumerIterator<byte[], byte[]> it = stream.iterator();
while(it.hasNext())
System.out.println(new String(it.next().message()));
}
}
内容类型标题,如下所示?
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.10</artifactId>
<version>0.8.2.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.8.2.1</version>
<scope>compile</scope>
</dependency>