[ 
https://issues.apache.org/jira/browse/AXIS-1609?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Davanum Srinivas updated AXIS-1609:
-----------------------------------

    Assignee:     (was: Davanum Srinivas)

> No option available to map all MIME type to javax.activation.DataHandler as 
> required by JAX-RPC 1.1 specification.
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS-1609
>                 URL: https://issues.apache.org/jira/browse/AXIS-1609
>             Project: Axis
>          Issue Type: Bug
>          Components: WSDL processing
>    Affects Versions: 1.2 Beta
>         Environment: Axis 09/23/2004
>            Reporter: Sébastien Tardif
>         Attachments: AXIS-1609-simpler-diff.txt, diff.txt, docHarbor.wsdl
>
>
> My use case is to use SwA and doing streaming from end to end. The type of 
> attachment is not known. So as suggested by many documents I use the mime 
> type: "application/octet-stream". Wsdl2Java utility use 
> org.apache.axis.attachments.OctetStream to represent the data. It's a class 
> specific to Axis which is one of my concern.
> Take a look a the class:
> public class OctetStream {
>     private byte[] bytes = null;
>     public OctetStream() {
>     }
>     public OctetStream(byte[] bytes) {
>         this.bytes = bytes;
>     }
>     public byte[] getBytes() {
>         return this.bytes;
>     }
>     public void setBytes(byte[] bytes) {
>         this.bytes = bytes;
>     }
> }
> It doesn't support streaming! It's probably the reason why people will use 
> attachment instead of the most compatible way: "xsd:base64Binary".
> As a third issues:
> The JAX-RPC 1.1 specification said:
> 7.5 Mapping between MIME types and Java types
> The following table specifies the standard Java mapping for a subset of the 
> MIME types.
> The Java to WSDL/XML and WSDL/XML to Java mapping for the MIME types is
> required to conform to the above mapping. This mapping is reflected in the 
> mapped Java
> method signatures and WSDL description. A WSDL/XML to Java mapping tool is
> required to provide an option to map the above set of MIME types to the
> javax.activation.DataHandler class. The DataHandler class provides methods to
> get access to the stream representation of the data for a MIME type.
> A Java to WSDL mapping tool is required to provide a facility for specifying 
> metadata
> related to the above mapping between Java and MIME types. This metadata 
> identifies
> whether a Java type is mapped to a MIME type (using the WSDL MIME binding) or 
> is
> mapped to an XML schema type (based on the section 4.2, "XML to Java Type
> Mapping"). For example, a java.lang.String can be mapped to either an 
> xsd:string
> or MIME type text/plain. The mapping metadata identifies a specific mapping.
> If a MIME type is mapped to the javax.activation.DataHandler, the getContent
> method of the DataHandler class must return instance of the corresponding 
> Java type
> for a specific MIME content type.
> A JAX-RPC implementation is required to support the above MIME types (as 
> specified
> in the TABLE 7-1) and provide implementation of the required
> javax.activation.DataContentHandler classes.
> ...
> A JAX-RPC implementation is not required to support MIME types beyond that
> specified in the above table. These additional MIME types may be mapped and
> supported using the javax.activation.DataHandler class and Java Activation
> Framework.
> TABLE 7-1 Mapping of MIME Types
> MIME Type Java Type
> image/gif java.awt.Image
> image/jpeg java.awt.Image
> text/plain java.lang.String
> multipart/* javax.mail.internet.MimeMultipart
> text/xml or application/xml javax.xml.transform.Source
> Here the approch of another stack:
> From: https://jax-rpc.dev.java.net/whitepaper/1.1.2/attachments-howto.html
> JAXRPC specification uses the JavaBeans Activation Framework to support 
> various MIME content types. The DataHandler class provides a consistent 
> interface to the data represented in various MIME types. A DataHandler class 
> uses the DataContentHandler interface to convert between a stream and 
> specific Java object based on the MIME type. JAXRPC uses SAAJ, which provides 
> DataContentHandlers for the MIME types supported by JAXRPC. If the MIME type 
> is not one of the JAXRPC supported MIME types, then the user has to register 
> corresponding DataContentHandlers. Here "text/plain" and "text/xml" are both 
> JAXRPC supported MIME types and is taken care of automatically. A DataHandler 
> can be instantiated using the constructor DataHandler(Object obj, String 
> mime_type). The method DataHandler.getContentType returns the MIME type of 
> the encapsulatd data and DataHandler.getContent method retruns a Java object 
> based on the MIME type of the encapsulated data. If you do not want the MIME 
> types to map to coresponding Java types, you can use wscompile with 
> -datahandleronly option to map all MIME types to DataHandler.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to