2012-07-20 1 views
0

이 클래스 ByteArrayDataSource를 사용하여 첨부 파일이있는 이메일 (iText로 만든 pdf)을 사용해야하지만 환경은 Java 1.4에서 실행되지만이 클래스는 Javamail에서 상위 버전이 필요합니다.Java에서 ByteArrayDataSource 1.4

나는 다음과 같이이 클래스를 사용해야합니다 :

//now write the PDF content to the output stream 
    outputStream = new ByteArrayOutputStream(); 
    pdfCreator.createPdf(data,outputStream); 
    byte[] bytes = outputStream.toByteArray(); 


    //construct the pdf body part 
    DataSource dataSource = **new ByteArrayDataSource**(bytes, "application/pdf"); 
    MimeBodyPart pdfBodyPart = new MimeBodyPart(); 
    pdfBodyPart.setDataHandler(new DataHandler(dataSource)); 
    pdfBodyPart.setFileName("listadosCitaciones.pdf"); 

    multipart.addBodyPart(messageBodyPart); 

어떤 제안을?

답변

0

동일한 클래스를 처음부터 직접 구현할 수 있어야합니다. DataSource 인터페이스의 메소드에 대한 javadocs를 살펴보고 구현 방법을 분명히해야합니다.

, 방금과 같은 사용자 정의 데이터 소스 구현하기 위해 필요 (나는 당신을 위해 그것을 할 것입니다,하지만 난 이번 주 :-)만큼 지루한 코드를 작성했습니다)

+0

효과가있었습니다. 한 쌍의 웹에서 소스 코드를 발견 했으므로 복사 및 붙여 넣기 만하면됩니다 ... 한 쌍의 클래스를 구현해야했지만 운 좋게도 더 많은 종속성이 없었습니다. – dragonalvaro

0

스티븐 잘입니다 :

public class ByteArrayDataSource implements DataSource { 
    public ByteArrayDataSource(byte[] b, String ct) { 
     bytes = b; 
     contentType = ct; 
    } 

    public String getContentType() { 
     return contentType; 
    } 

    public InputStream getInputStream() throws IOException { 
     return new ByteArrayInputStream(bytes); 
    } 

    public String getName() { 
     return null; 
    } 

    public OutputStream getOutputStream() { 
     throw new UnsupportedOperationException(); 
    } 

    private byte[] bytes; 
    private String contentType; 
} 

그리고 나서 jdk1.5 ByteArrayDataSource와 같은 방법으로 사용할 수 있습니다.