请帮助将此simple example部署到Wildfly(首选版本10.1.0)上。 示例代码:
import org.glassfish.jersey.server.ChunkedOutput;
import javax.ws.rs.*;
import java.io.*;
@Path("/numbers")
public class NumbersResource {
@GET
public ChunkedOutput<String> streamExample(){
final ChunkedOutput<String> output = new ChunkedOutput<String>(String.class);
new Thread() {
@Override
public void run() {
try {
for (int i = 0; i < 100000 ; i++){
output.write(i + " ");
}
} catch (IOException e){
e.printStackTrace();
} finally {
try {
output.close();
} catch (IOException e){
e.printStackTrace();
}
}
}
}.start();
return output;
}
}
(代码片段属于作者MEMORYNOTFOUND。我已将其添加到此处以防万一因为任何原因关闭了一侧) 我已将它部署在GlassFish上,一切正常。但现在,我需要将此功能移植到Wildfly上。并从导入
import org.glassfish.jersey.server.ChunkedOutput;
它接口ChunkedOutput类属于GlassFish us功能。换句话说,从Wildfly罐子中导入是否有与我们类似的功能,或者我不知道......?
P.S。请在回复中提供一个简单的例子。 提前谢谢!
答案 0 :(得分:4)
改为使用StreamingOutput:
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("/<your-path>")
public Response hello() {
StreamingOutput stream = new StreamingOutput() {
@Override
public void write(OutputStream os) throws IOException, WebApplicationException {
Writer writer = new BufferedWriter(new OutputStreamWriter(os));
for (...) {
writer.write(...);
}
writer.flush();
}
};
return Response.ok(stream).build();
}