JavaTM Platform
Standard Ed. 6

javax.xml.soap
클래스 AttachmentPart

java.lang.Object 
  상위를 확장 javax.xml.soap.AttachmentPart


public abstract class AttachmentPart
extends Object

SOAPMessage 객체에의 개개의 첨부입니다. SOAPMessage 객체에는 1 개 이상의 AttachmentPart 객체를 추가할 수 있습니다 (추가하지 않는 것도 가능). 각 AttachmentPart 객체는, 어플리케이션 고유의 컨텐츠와 거기에 관련하는 MIME 헤더의 2 개로 구성되어 있습니다. MIME 헤더는, 컨텐츠의 식별과 설명에 사용하는 이름과 값의 페어로 구성되어 있습니다.  

AttachmentPart 객체는 다음의 규격과 조건을 채우고 있을 필요가 있습니다.

  1. MIME [RFC2045] 규격
  2. 컨텐츠를 보유하고 있는 것
  3. 헤더 부분에 다음의 헤더 내용을 포함하는 것

AttachmentPart 객체의 컨텐츠에 관해서는 제한이 없습니다. 단순한 텍스트 객체로부터 복잡한 XML 문서나 이미지 파일까지 컨텐츠로 할 수 있습니다.

AttachmentPart 객체는 SOAPMessage.createAttachmentPart 메소드로 작성됩니다. MIME 헤더 설정 후,SOAPMessage.addAttachmentPart 로 작성된 AttachmentPart 객체는 메세지에 추가됩니다.

다음의 코드의 발췌 (mSOAPMessage 객체,contentStringlString 객체)는,AttachmentPart 객체의 인스턴스의 작성, 컨텐츠와 헤더 정보에 의한 AttachmentPart 객체의 설정,SOAPMessage 객체에의 AttachmentPart 객체의 추가를 실행하는 방법을 나타내고 있습니다.

     AttachmentPart ap1 = m.createAttachmentPart();
     ap1.setContent(contentString1, "text/plain");
     m.addAttachmentPart(ap1);
 

다음의 코드의 발췌는, 동메세지에 2 번째의 AttachmentPart 인스턴스를 작성, 추가하는 방법을 나타내고 있습니다. jpegData 는, JPEG 파일을 의미하는 바이너리의 byte 버퍼입니다.

     AttachmentPart ap2 = m.createAttachmentPart();
     byte[] jpegData =  ...;
     ap2.setContent(new ByteArrayInputStream(jpegData), "image/jpeg");
     m.addAttachmentPart(ap2);
 

getContent 메소드는,AttachmentPart 객체로부터 컨텐츠와 헤더를 가져옵니다. DataContentHandler 객체가 존재하고 있을까 하고 있지 않는 것처럼보다 , 반환되는 Object 가 MIME 타입에 대응한 Java 객체인가, 바이트의 컨텐츠를 포함한 InputStream 객체인가로 나누어집니다.

     String content1 = ap1.getContent();
     java.io.InputStream content2 = ap2.getContent();
 
메소드 clearContent 를 사용하면(자) AttachmentPart 객체의 모든 컨텐츠가 삭제됩니다. 헤더 정보에 영향은 없습니다.
     ap1.clearContent();
 


생성자 의 개요
AttachmentPart ()
           
 
메소드의 개요
abstract  void addMimeHeader (String  name, String  value)
          지정의 이름과 값을 가지는 MIME 헤더를 AttachmentPart 객체에 추가합니다.
abstract  void clearContent ()
          이 AttachmentPart 객체의 컨텐츠를 클리어 합니다.
abstract  Iterator getAllMimeHeaders ()
          이 AttachmentPart 객체의 모든 헤더를 MimeHeader 객체의 반복자로서 가져옵니다.
abstract  InputStream getBase64Content ()
          AttachmentPart 의 컨텐츠를 Base64 로 encode 된 문자 데이터로서 취득할 수 있는 InputStream 를 돌려줍니다.
abstract  Object getContent ()
          이 AttachmentPart 객체의 컨텐츠를 Java 객체로서 가져옵니다.
 String getContentId ()
          이름이 "Content-ID" 의 MIME 헤더의 값을 가져옵니다.
 String getContentLocation ()
          이름이 "Content-Location" 의 MIME 헤더의 값을 가져옵니다.
 String getContentType ()
          이름이 "Content-Type" 의 MIME 헤더의 값을 가져옵니다.
abstract  DataHandler getDataHandler ()
          이 AttachmentPart 객체의 DataHandler 객체를 가져옵니다.
abstract  Iterator getMatchingMimeHeaders (String [] names)
          지정의 배열의 이름에 일치하는 MimeHeader 객체를 모두 가져옵니다.
abstract  String [] getMimeHeader (String  name)
          지정의 String 로 식별된 헤더의 값을 모두 가져옵니다.
abstract  Iterator getNonMatchingMimeHeaders (String [] names)
          지정의 배열의 이름에 일치하지 않는 MimeHeader 객체를 모두 가져옵니다.
abstract  InputStream getRawContent ()
          GetContent 에의 호출이 실행된 위에 DataContentHandler 가 이 AttachmentPartcontent-type 에 등록되지 않았던 것이라고 봐, 이 AttachmentPart 객체의 컨텐츠를 InputStream 로서 가져옵니다.
abstract  byte[] getRawContentBytes ()
          GetContent 에의 호출이 실행된 위에 DataContentHandler 가 이 AttachmentPartcontent-type 에 등록되지 않았던 것이라고 봐, 이 AttachmentPart 객체의 컨텐츠를 byte[] 배열로서 가져옵니다.
abstract  int getSize ()
          이 AttachmentPart 객체의 바이트수를 돌려줍니다.
abstract  void removeAllMimeHeaders ()
          MIME 헤더의 엔트리를 모두 삭제합니다.
abstract  void removeMimeHeader (String  header)
          지정의 이름에 일치하는 모든 MIME 헤더를 삭제합니다.
abstract  void setBase64Content (InputStream  content, String  contentType)
          Base64 의 소스 InputStream 로부터 이 첨부 부분의 컨텐츠를 설정해,Content-Type 헤더의 값을 contentType 에 포함되는 값으로 합니다.
abstract  void setContent (Object  object, String  contentType)
          이 첨부 부분의 컨텐츠를 지정의 Object 의 컨텐츠로 설정해,Content-Type 헤더의 값을 지정의 타입으로 합니다.
 void setContentId (String  contentId)
          이름이 "Content-ID" 의 MIME 헤더를 지정의 값으로 설정합니다.
 void setContentLocation (String  contentLocation)
          이름이 "Content-Location" 의 MIME 헤더를 지정의 값으로 설정합니다.
 void setContentType (String  contentType)
          이름이 "Content-Type" 의 MIME 헤더를 지정의 값으로 설정합니다.
abstract  void setDataHandler (DataHandler  dataHandler)
          지정의 DataHandler 객체를 AttachmentPart 객체의 데이터 핸들러로서 설정합니다.
abstract  void setMimeHeader (String  name, String  value)
          지정의 이름에 일치하는, 최초의 헤더 엔트리를 지정의 값으로 변경합니다.
abstract  void setRawContent (InputStream  content, String  contentType)
          이 첨부 부분의 컨텐츠를 InputStream content 에 포함되는 것으로서 설정해,Content-Type 헤더의 값을 contentType 에 포함되는 값으로 합니다.
abstract  void setRawContentBytes (byte[] content, int offset, int len, String  contentType)
          이 첨부 부분의 컨텐츠를 byte[] 배열의 content 에 포함되는 것으로서 설정해,Content-Type 헤더의 값을 contentType 에 포함되는 값으로 합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

AttachmentPart

public AttachmentPart()
메소드의 상세

getSize

public abstract int getSize()
                     throws SOAPException 
AttachmentPart 객체의 바이트수를 돌려줍니다.

반환값:
AttachmentPart 객체의 사이즈 (바이트수), 또는 -1 (사이즈를 결정할 수 없는 경우)
예외:
SOAPException - 이 첨부의 컨텐츠가 파손하고 있는 경우, 또는 사이즈를 결정중에 예외가 발생했을 경우

clearContent

public abstract void clearContent()
AttachmentPart 객체의 컨텐츠를 클리어 합니다. MIME 헤더 부분은 그대로 남습니다.


getContent

public abstract Object  getContent()
                           throws SOAPException 
AttachmentPart 객체의 컨텐츠를 Java 객체로서 가져옵니다. 반환된 Java 객체의 형태는, 바이트의 해석에 사용하는 (1) DataContentHandler 객체와 헤더로 지정되고 있는 (2) Content-Type 에 따라서 다릅니다.  

MIME 컨텐츠 타입이 "text/plain","text/html","text/xml" 의 경우,DataContentHandler 객체는 MIME 타입에 대응하는 Java 타입과의 변환을 실행합니다. 다른 MIME 타입의 경우,DataContentHandler 객체는, raw 바이트의 컨텐츠 데이터를 포함한 InputStream 객체를 돌려줍니다.  

SAAJ 에 준거한 구현에서는 적어도,text/plainContent-Type 의 값을 가지는 컨텐츠 스트림에 대응한 java.lang.String 객체,text/xmlContent-Type 의 값을 가지는 컨텐츠 스트림에 대응한 javax.xml.transform.stream.StreamSource 객체,image/gif 또는 image/jpegContent-Type 의 값을 가지는 컨텐츠 스트림에 대응한 java.awt.Image 객체를 돌려줄 필요가 있습니다. 인스톨 한 DataContentHandler 객체를 해석할 수 없는 컨텐츠 타입의 경우,DataContentHandler 객체는 raw 바이트로 java.io.InputStream 객체를 돌려줄 필요가 있습니다.

반환값:
AttachmentPart 객체의 컨텐츠를 가지는 Java 객체
예외:
SOAPException - 이 AttachmentPart 객체에 컨텐츠가 설정되어 있지 않은 경우, 또는 데이터 변환 에러가 발생했을 경우

getRawContent

public abstract InputStream  getRawContent()
                                   throws SOAPException 
GetContent 에의 호출이 실행된 위에 DataContentHandler 가 이 AttachmentPartcontent-type 에 등록되지 않았던 것이라고 봐, 이 AttachmentPart 객체의 컨텐츠를 InputStream 로서 가져옵니다.

반환된 InputStream 로부터 읽어들이면(자), 스트림의 데이터가 소비될테니 주의해 주세요. 호출측은 다음의 API 를 호출하기 전에, InputStream 를 적절히 리셋 할 필요가 있습니다. 생의 첨부 컨텐츠의 카피가 필요한 경우,getRawContentBytes() API 를 대신에 사용합니다.

반환값:
액세스 가능한 raw 데이터의 InputStream 생의 데이터는 AttachmentPart 에 포함되어 있다
예외:
SOAPException - 이 AttachmentPart 객체에 컨텐츠가 설정되어 있지 않은 경우, 또는 데이터 변환 에러가 발생했을 경우
도입된 버젼:
SAAJ 1.3
관련 항목:
getRawContentBytes()

getRawContentBytes

public abstract byte[] getRawContentBytes()
                                   throws SOAPException 
GetContent 에의 호출이 실행된 위에 DataContentHandler 가 이 AttachmentPartcontent-type 에 등록되지 않았던 것이라고 봐, 이 AttachmentPart 객체의 컨텐츠를 byte[] 배열로서 가져옵니다.

반환값:
AttachmentPart 의 raw 데이터를 포함한 byte[] 배열
예외:
SOAPException - 이 AttachmentPart 객체에 컨텐츠가 설정되어 있지 않은 경우, 또는 데이터 변환 에러가 발생했을 경우
도입된 버젼:
SAAJ 1.3

getBase64Content

public abstract InputStream  getBase64Content()
                                      throws SOAPException 
AttachmentPart 의 컨텐츠를 Base64 로 encode 된 문자 데이터로서 취득할 수 있는 InputStream 를 돌려줍니다. 이 메소드를 사용하면(자), 첨부의 raw 바이트가 Base64 로 encode 되어 돌아갑니다.

반환값:
읽어들여 가능한 Base64 로 encode 된 AttachmentPartInputStream
예외:
SOAPException - 이 AttachmentPart 객체에 컨텐츠가 설정되어 있지 않은 경우, 또는 데이터 변환 에러가 발생했을 경우
도입된 버젼:
SAAJ 1.3

setContent

public abstract void setContent(Object  object,
                                String  contentType)
이 첨부 부분의 컨텐츠를 지정의 Object 의 컨텐츠로 설정해,Content-Type 헤더의 값을 지정의 타입으로 합니다. Object 의 형태는 Content-Type 로 지정된 값에 대응시킬 필요가 있습니다. 이것은, 사용중의 DataContentHandler 객체의 특정세트에 따라서 다릅니다.

파라미터:
object - 이 첨부 부분의 컨텐츠를 구성하는 Java 객체
contentType - 컨텐츠 타입을 지정한다 MIME 의 캐릭터 라인
예외:
IllegalArgumentException - contentType 가 컨텐츠 객체의 타입과 일치하지 않는 경우, 또는 이 컨텐츠 객체에 DataContentHandler 객체가 없는 경우에 throw 되는
관련 항목:
getContent()

setRawContent

public abstract void setRawContent(InputStream  content,
                                   String  contentType)
                            throws SOAPException 
이 첨부 부분의 컨텐츠를 InputStream content 에 포함되는 것으로서 설정해,Content-Type 헤더의 값을 contentType 에 포함되는 값으로 합니다.  

이후의 getSize()의 호출은 정확한 컨텐츠 사이즈가 아닌 경우가 있습니다.

파라미터:
content - 첨부 부분에 추가하는 raw 데이터
contentType - Content-Type 헤더에 설정하는 값
예외:
SOAPException - 컨텐츠의 설정으로 에러가 발생했을 경우
NullPointerException - content 가 null 의 경우
도입된 버젼:
SAAJ 1.3

setRawContentBytes

public abstract void setRawContentBytes(byte[] content,
                                        int offset,
                                        int len,
                                        String  contentType)
                                 throws SOAPException 
이 첨부 부분의 컨텐츠를 byte[] 배열의 content 에 포함되는 것으로서 설정해,Content-Type 헤더의 값을 contentType 에 포함되는 값으로 합니다.

파라미터:
content - 첨부 부분에 추가하는 raw 데이터
contentType - Content-Type 헤더에 설정하는 값
offset - 컨텐츠의 바이트 배열내의 오프셋(offset)
len - 컨텐츠를 형성하는 바이트수
예외:
SOAPException - 컨텐츠의 설정으로 에러가 발생했을 경우 또는 content 가 null 의 경우
도입된 버젼:
SAAJ 1.3

setBase64Content

public abstract void setBase64Content(InputStream  content,
                                      String  contentType)
                               throws SOAPException 
Base64 의 소스 InputStream 로부터 이 첨부 부분의 컨텐츠를 설정해,Content-Type 헤더의 값을 contentType 에 포함되는 값으로 합니다. 이 메소드에 의해, Base64 의 입력 내용은 최초로 복호화 되어 최종적으로 raw 바이트가 첨부 부분에 기입해집니다.  

이후의 getSize()의 호출은 정확한 컨텐츠 사이즈가 아닌 경우가 있습니다.

파라미터:
content - 첨부 부분에 추가하는 Base64 로 encode 된 데이터
contentType - Content-Type 헤더에 설정하는 값
예외:
SOAPException - 컨텐츠의 설정으로 에러가 발생했을 경우
NullPointerException - content 가 null 의 경우
도입된 버젼:
SAAJ 1.3

getDataHandler

public abstract DataHandler  getDataHandler()
                                    throws SOAPException 
AttachmentPart 객체의 DataHandler 객체를 가져옵니다.

반환값:
AttachmentPart 객체에 관련한 DataHandler 객체
예외:
SOAPException - 이 AttachmentPart 객체에 데이터가 없는 경우

setDataHandler

public abstract void setDataHandler(DataHandler  dataHandler)
지정의 DataHandler 객체를 AttachmentPart 객체의 데이터 핸들러로서 설정합니다. 일반적으로, 착신 메세지에는, 데이터 핸들러가 자동적으로 설정됩니다. 메세지의 작성중이나 컨텐츠에 의한 메세지의 생성중에 setDataHandler 메소드를 사용해, 다양한 데이터 소스의 데이터를 메세지에 짜넣을 수가 있습니다.

파라미터:
dataHandler - 설정하는 DataHandler 객체
예외:
IllegalArgumentException - 지정의 DataHandler 객체에 문제가 발생했을 경우

getContentId

public String  getContentId()
이름이 "Content-ID" 의 MIME 헤더의 값을 가져옵니다.

반환값:
"Content-ID" 헤더의 값을 제공하는 String, 또는 아무것도 없는 경우 null
관련 항목:
setContentId(java.lang.String)

getContentLocation

public String  getContentLocation()
이름이 "Content-Location" 의 MIME 헤더의 값을 가져옵니다.

반환값:
"Content-Location" 헤더의 값을 제공하는 String, 또는 아무것도 없는 경우 null

getContentType

public String  getContentType()
이름이 "Content-Type" 의 MIME 헤더의 값을 가져옵니다.

반환값:
"Content-Type" 헤더의 값을 제공하는 String, 또는 아무것도 없는 경우 null

setContentId

public void setContentId(String  contentId)
이름이 "Content-ID" 의 MIME 헤더를 지정의 값으로 설정합니다.

파라미터:
contentId - "Content-ID" 헤더의 값을 제공한다 String
예외:
IllegalArgumentException - 지정의 contentId 치에 문제가 발생했을 경우
관련 항목:
getContentId()

setContentLocation

public void setContentLocation(String  contentLocation)
이름이 "Content-Location" 의 MIME 헤더를 지정의 값으로 설정합니다.

파라미터:
contentLocation - "Content-Location" 헤더의 값을 제공한다 String
예외:
IllegalArgumentException - 지정의 컨텐츠의 장소에 문제가 발생했을 경우

setContentType

public void setContentType(String  contentType)
이름이 "Content-Type" 의 MIME 헤더를 지정의 값으로 설정합니다.

파라미터:
contentType - "Content-Type" 헤더의 값을 제공한다 String
예외:
IllegalArgumentException - 지정의 컨텐츠 타입에 문제가 발생했을 경우

removeMimeHeader

public abstract void removeMimeHeader(String  header)
지정의 이름에 일치하는 모든 MIME 헤더를 삭제합니다.

파라미터:
header - 삭제하는 MIME 헤더명 의 캐릭터 라인

removeAllMimeHeaders

public abstract void removeAllMimeHeaders()
MIME 헤더의 엔트리를 모두 삭제합니다.


getMimeHeader

public abstract String [] getMimeHeader(String  name)
지정의 String 로 식별된 헤더의 값을 모두 가져옵니다.

파라미터:
name - 헤더명 (예: "Content-Type")
반환값:
지정의 헤더의 값을 제공하는 String 배열
관련 항목:
setMimeHeader(java.lang.String, java.lang.String)

setMimeHeader

public abstract void setMimeHeader(String  name,
                                   String  value)
지정의 이름에 일치하는, 최초의 헤더 엔트리를 지정의 값으로 변경합니다. 기존의 헤더로 일치하는 것이 없는 경우, 새롭게 헤더를 추가합니다. 또, 이 메소드는, 일치하는 헤더의 최초의 엔트리 이외를 모두 삭제합니다.

RFC822 헤더는 US-ASCII 문자만을 포함하는 것이 가능한 점에 주의해 주세요.

파라미터:
name - 검색하는 헤더명을 제공한다 String
value - 지정의 이름과 일치하는 헤더에, 설정한 값을 제공하는 String
예외:
IllegalArgumentException - 지정의 MIME 헤더명이나 값에 문제가 발생했을 경우

addMimeHeader

public abstract void addMimeHeader(String  name,
                                   String  value)
지정의 이름과 값을 가지는 MIME 헤더를 AttachmentPart 객체에 추가합니다.  

RFC822 헤더는 US-ASCII 문자만을 포함하는 것이 가능한 점에 주의해 주세요.

파라미터:
name - 추가하는 헤더명을 제공한다 String
value - 추가하는 헤더치를 제공한다 String
예외:
IllegalArgumentException - 지정의 MIME 헤더명이나 값에 문제가 발생했을 경우

getAllMimeHeaders

public abstract Iterator  getAllMimeHeaders()
AttachmentPart 객체의 모든 헤더를 MimeHeader 객체의 반복자로서 가져옵니다.

반환값:
AttachmentPart 객체에 대한다 모든 MIME 헤더를 가지는 Iterator 객체

getMatchingMimeHeaders

public abstract Iterator  getMatchingMimeHeaders(String [] names)
지정의 배열의 이름에 일치하는 MimeHeader 객체를 모두 가져옵니다.

파라미터:
names - 반환되는 MIME 헤더명을 가지는 String 배열
반환값:
지정의 배열의 이름의 1 개에 일치하는, 모든 MIME 헤더에 대한 Iterator 객체

getNonMatchingMimeHeaders

public abstract Iterator  getNonMatchingMimeHeaders(String [] names)
지정의 배열의 이름에 일치하지 않는 MimeHeader 객체를 모두 가져옵니다.

파라미터:
names - 돌려주어지지 않은 MIME 헤더명을 가지는 String 배열
반환값:
지정의 배열의 이름의 어느 것에도 일치하지 않는,AttachmentPart 객체의 모든 MIME 헤더. 일치하지 않는 MIME 헤더는 Iterator 객체로서 돌아간다

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.