SORU
16 AĞUSTOS 2010, PAZARTESİ


Giriş ve Çıkış ikili akışları JERSEY kullanarak?

Jersey öncelikle almak ve JSON kodlanmış veri hizmet veren Dinlendirici bir API uygulamak için kullanıyorum. Ama aşağıdaki gerçekleştirmek için ihtiyacım var, bazı durumlar var:

  • İndirilebilir belgeler, PDF, DOC, ZİP, ya da diğer ikili dosyaları olarak verme.
  • Parçalı gibi veri, bazı JSON artı yüklenen PDF dosyasını almak

AJAX bu web hizmeti çağrıları oluşturan tek sayfalık bir WordPress kullanmak-web tabanlı bir müşterim var. Şu anda, formu gönderir ve GET ve POST (JSON bir nesne ile) kullanır yapmaz. Veri ve ekli ikili bir dosya göndermek için form post kullanmak gerekir, ya da ben JSON artı ikili dosya ile parçalı bir istek yaratabilir mi?

Benim uygulama hizmeti katmanı şu anda bir PDF dosyası oluşturduğunda bir ByteArrayOutputStream oluşturur. Jersey üzerinden istemciye bu akışı çıkış için en iyi yolu nedir? Bir MessageBodyWriter yarattım, ama Jersey kaynağın nasıl kullanılacağını bilmiyorum. Bu doğru bir yaklaşım mı?

Örnekleri Jersey ile birlikte bakıyordum, ama bu şeylerin nasıl yapıldığını gösteren bir şey bulamadım. Eğer önemliyse, Jackson ile Jersey Nesne -^ yapmak için kullanıyorum . XML adım olmadan JSON ve gerçekten JAX-RS kullanan biri değilim.

CEVAP
17 AĞUSTOS 2010, Salı


Ya da bir PDF StreamingOutput nesne genişleterek dosyası bir ZİP başardı. Burada bazı örnek kod:

@Path("PDF-file.pdf/")
@GET
@Produces({"application/pdf"})
public StreamingOutput getPDF() throws Exception {
    return new StreamingOutput() {
        public void write(OutputStream output) throws IOException, WebApplicationException {
            try {
                PDFGenerator generator = new PDFGenerator(getEntity());
                generator.generatePDF(output);
            } catch (Exception e) {
                throw new WebApplicationException(e);
            }
        }
    };
}

PDFGenerator sınıfı (PDF oluşturmak için kendi sınıf) yazma yöntem çıktısı akışı alır ve yeni oluşturulan çıkış akışı yerine bu yazıyor.

Eğer en iyi yolu var mı bilmiyorum, ama işe yarıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • emimusic

    emimusic

    10 Mart 2006
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006
  • ::..ηєѕѕ мιχ..::

    ::..ηєѕѕ

    15 Aralık 2006