⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 message.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        if(mAttachments!=null) mAttachments.setRootPart(mSOAPPart);        headers = (mimeHeaders == null) ? new MimeHeaders() : new MimeHeaders(mimeHeaders);    }    /**     * Get this message's SOAPPart.     * <p>     * Eventually, this should be generalized beyond just SOAP,     * but it's hard to know how to do that without necessitating     * a lot of casts in client code.  Refactoring keeps getting     * easier anyhow.     *     * @return the soap part of this message     */    public javax.xml.soap.SOAPPart getSOAPPart() {        return mSOAPPart;    }    // fixme: do we realy need this? Can client code not just call    //  getSOAPPart().getAsString() or is there some future optimization that    //  could be hooked in here?    /**     * Get a string representation of this message's SOAPPart.     *     * @return the soap part of this message as a <code>String</code>     * @throws org.apache.axis.AxisFault if the stringification failed     */    public String getSOAPPartAsString() throws org.apache.axis.AxisFault {        return mSOAPPart.getAsString();    }    // fixme: do we realy need this? Can client code not just call    //  getSOAPPart().getAsBytes() or is there some future optimization that    //  could be hooked in here?    /**     * Get a byte array representation of this message's SOAPPart.     *     * @return the soap part of this message as a <code>byte[]</code>     * @throws org.apache.axis.AxisFault if creating the byte[] failed     */    public byte[] getSOAPPartAsBytes() throws org.apache.axis.AxisFault {        return mSOAPPart.getAsBytes();    }    /**     * Get this message's SOAPPart as a SOAPEnvelope.     *     * @return a SOAPEnvelope containing this message's SOAPPart     * @throws AxisFault if this failed     */    public SOAPEnvelope getSOAPEnvelope() throws AxisFault {        return mSOAPPart.getAsSOAPEnvelope();    }    /**     * Get the Attachments of this Message.     * <p>     * If this returns null, then NO ATTACHMENT SUPPORT EXISTS in this     * configuration of Axis, and no attachment operations may be     * performed.     *     * @return the <code>Attachments</code> if attachments are supported, null     *              otherwise     */    public Attachments getAttachmentsImpl() {        return mAttachments;    }    /**     * Get the content type of the attachments.     *     * @param sc    provides the default content type     * @return      a <code>String</code> giving the content type of the     *              attachment     * @throws AxisFault if there was an error deducing the content type from     *              this message     */    public String getContentType(SOAPConstants sc) throws AxisFault {        boolean soap12 = false;                if(sc != null) {            if(sc == SOAPConstants.SOAP12_CONSTANTS) {                soap12 = true;            }        } else {            // Support of SOAP 1.2 HTTP binding            SOAPEnvelope envelope = getSOAPEnvelope();            if (envelope != null) {                if (envelope.getSOAPConstants() == SOAPConstants.SOAP12_CONSTANTS) {                    soap12 = true;                }            }        }        String encoding = XMLUtils.getEncoding(this, msgContext);;        String ret = sc.getContentType() + "; charset=" + encoding.toLowerCase();                // Support of SOAP 1.2 HTTP binding        if (soap12) {            ret = HTTPConstants.HEADER_ACCEPT_APPL_SOAP +"; charset=" + encoding;        }        if (getSendType() != Attachments.SEND_TYPE_NONE && mAttachments != null &&                0 != mAttachments.getAttachmentCount()) {            ret = mAttachments.getContentType();        }        return ret;    }    private int getSendType() {        int sendType = Attachments.SEND_TYPE_NOTSET;        if ((msgContext != null) && (msgContext.getService() != null)) {            sendType = msgContext.getService().getSendType();        }        return sendType;    }    //This will have to give way someday to HTTP Chunking but for now kludge.    /**     * Get the content length, including both soap and any attachments.     *     * @return the total length of this message in bytes     * @throws org.apache.axis.AxisFault if there was a problem that prevented     *              the length being calculated     */    public long getContentLength() throws org.apache.axis.AxisFault {        long ret = mSOAPPart.getContentLength();        if (mAttachments != null && 0 < mAttachments.getAttachmentCount()) {            ret = mAttachments.getContentLength();        }        return ret;    }    /**     * Writes this <CODE>SOAPMessage</CODE> object to the given     *   output stream. The externalization format is as defined by     *   the SOAP 1.1 with Attachments specification.     *     *   <P>If there are no attachments, just an XML stream is     *   written out. For those messages that have attachments,     *   <CODE>writeTo</CODE> writes a MIME-encoded byte stream.</P>     * @param os the <CODE>OutputStream</CODE>     *     object to which this <CODE>SOAPMessage</CODE> object will     *     be written     * @throws SOAPException  if there was a problem in     *     externalizing this SOAP message     * @throws IOException  if an I/O error     *     occurs     */    public void writeTo(java.io.OutputStream os) throws SOAPException, IOException {         //Do it the old fashion way.        if (getSendType() == Attachments.SEND_TYPE_NONE || mAttachments == null || 0 == mAttachments.getAttachmentCount()) {            try {                String charEncoding = XMLUtils.getEncoding(this, msgContext);;                mSOAPPart.setEncoding(charEncoding);                mSOAPPart.writeTo(os);            } catch (java.io.IOException e) {                log.error(Messages.getMessage("javaIOException00"), e);            }        } else {            try {                mAttachments.writeContentToStream(os);            } catch (java.lang.Exception e) {                log.error(Messages.getMessage("exception00"), e);            }        }    }    private java.util.Hashtable mProps = new java.util.Hashtable();        public SOAPBody getSOAPBody() throws SOAPException {        return mSOAPPart.getEnvelope().getBody();    }    public SOAPHeader getSOAPHeader() throws SOAPException {        return mSOAPPart.getEnvelope().getHeader();    }    public void setProperty(String property, Object value) throws SOAPException {        mProps.put(property, value);    }    public Object getProperty(String property) throws SOAPException {        return mProps.get(property);    }    /**     * Retrieves a description of this <CODE>SOAPMessage</CODE>     * object's content.     * @return  a <CODE>String</CODE> describing the content of this     *     message or <CODE>null</CODE> if no description has been     *     set     * @see #setContentDescription(java.lang.String) setContentDescription(java.lang.String)     */    public String getContentDescription() {        String values[] = headers.getHeader(HTTPConstants.HEADER_CONTENT_DESCRIPTION);        if(values != null && values.length > 0)            return values[0];        return null;    }    /**     * Sets the description of this <CODE>SOAPMessage</CODE>     * object's content with the given description.     * @param  description a <CODE>String</CODE>     *     describing the content of this message     * @see #getContentDescription() getContentDescription()     */    public void setContentDescription(String description) {        headers.setHeader(HTTPConstants.HEADER_CONTENT_DESCRIPTION, description);    }    /**     * Updates this <CODE>SOAPMessage</CODE> object with all the     *   changes that have been made to it. This method is called     *   automatically when a message is sent or written to by the     *   methods <CODE>ProviderConnection.send</CODE>, <CODE>     *   SOAPConnection.call</CODE>, or <CODE>     *   SOAPMessage.writeTo</CODE>. However, if changes are made to     *   a message that was received or to one that has already been     *   sent, the method <CODE>saveChanges</CODE> needs to be     *   called explicitly in order to save the changes. The method     *   <CODE>saveChanges</CODE> also generates any changes that     *   can be read back (for example, a MessageId in profiles that     *   support a message id). All MIME headers in a message that     *   is created for sending purposes are guaranteed to have     *   valid values only after <CODE>saveChanges</CODE> has been     *   called.     *     *   <P>In addition, this method marks the point at which the     *   data from all constituent <CODE>AttachmentPart</CODE>     *   objects are pulled into the message.</P>     * @throws  SOAPException if there     *     was a problem saving changes to this message.     */    public void saveChanges() throws SOAPException {        headers.removeHeader("Content-Length");        if (mAttachments != null && 0 < mAttachments.getAttachmentCount()) {            try {                headers.setHeader("Content-Type",mAttachments.getContentType());            } catch (AxisFault af){                log.error(Messages.getMessage("exception00"), af);            }        }        saveRequired = false;        try {            /* Fix for Bug 16418 - Start from scratch */             mSOAPPart.saveChanges();        } catch (AxisFault axisFault) {            log.error(Messages.getMessage("exception00"), axisFault);        }    }    /**     * Indicates whether this <CODE>SOAPMessage</CODE> object     * has had the method <CODE>saveChanges</CODE> called on     * it.     * @return <CODE>true</CODE> if <CODE>saveChanges</CODE> has     *     been called on this message at least once; <CODE>     *     false</CODE> otherwise.     */    public boolean saveRequired() {        return saveRequired;    }    /**     * Returns all the transport-specific MIME headers for this     * <CODE>SOAPMessage</CODE> object in a transport-independent     * fashion.     * @return a <CODE>MimeHeaders</CODE> object containing the     *     <CODE>MimeHeader</CODE> objects     */    public javax.xml.soap.MimeHeaders getMimeHeaders() {        return headers;    }    /**     * Removes all <CODE>AttachmentPart</CODE> objects that have     *   been added to this <CODE>SOAPMessage</CODE> object.     *     *   <P>This method does not touch the SOAP part.</P>     */    public void removeAllAttachments(){        mAttachments.removeAllAttachments();    }    /**     * Gets a count of the number of attachments in this     * message. This count does not include the SOAP part.     * @return  the number of <CODE>AttachmentPart</CODE> objects     *     that are part of this <CODE>SOAPMessage</CODE>     *     object     */    public int countAttachments(){        return mAttachments == null ? 0 : mAttachments.getAttachmentCount();    }    /**     * Retrieves all the <CODE>AttachmentPart</CODE> objects     * that are part of this <CODE>SOAPMessage</CODE> object.     * @return  an iterator over all the attachments in this     *     message     */    public Iterator getAttachments(){        try {            if (mAttachments != null && 0 != mAttachments.getAttachmentCount()) {                return mAttachments.getAttachments().iterator();            }        } catch (AxisFault af){            log.error(Messages.getMessage("exception00"), af);        }        return Collections.EMPTY_LIST.iterator();    }    /**     * Retrieves all the <CODE>AttachmentPart</CODE> objects     * that have header entries that match the specified headers.     * Note that a returned attachment could have headers in     * addition to those specified.     * @param   headers a <CODE>MimeHeaders</CODE>     *     object containing the MIME headers for which to     *     search     * @return an iterator over all attachments that have a header     *     that matches one of the given headers     */    public Iterator getAttachments(javax.xml.soap.MimeHeaders headers){        return mAttachments.getAttachments(headers);    }    /**     * Adds the given <CODE>AttachmentPart</CODE> object to this     * <CODE>SOAPMessage</CODE> object. An <CODE>     * AttachmentPart</CODE> object must be created before it can be     * added to a message.     * @param  attachmentpart an <CODE>     *     AttachmentPart</CODE> object that is to become part of     *     this <CODE>SOAPMessage</CODE> object     * @throws java.lang.IllegalArgumentException     */    public void addAttachmentPart(AttachmentPart attachmentpart){        try {            mAttachments.addAttachmentPart((org.apache.axis.Part)attachmentpart);        } catch (AxisFault af){            log.error(Messages.getMessage("exception00"), af);        }    }    /**     * Creates a new empty <CODE>AttachmentPart</CODE> object.     * Note that the method <CODE>addAttachmentPart</CODE> must be     * called with this new <CODE>AttachmentPart</CODE> object as     * the parameter in order for it to become an attachment to this     * <CODE>SOAPMessage</CODE> object.     * @return  a new <CODE>AttachmentPart</CODE> object that can be     *     populated and added to this <CODE>SOAPMessage</CODE>     *     object     */    public AttachmentPart createAttachmentPart() {        if (!isAttachmentSupportEnabled(getMessageContext())) {            throw new RuntimeException(Messages.getMessage("noAttachments"));        }                try {            return (AttachmentPart) mAttachments.createAttachmentPart();        } catch (AxisFault af){            log.error(Messages.getMessage("exception00"), af);        }        return null;    }    /**     * Dispose of attachments.     */    public void dispose() {        if(mAttachments!=null) {            mAttachments.dispose();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -