Hi !

I try to produce audio/x-mpeg.

I have a methode getRingTone() wich return a MediaResponse.
The Object MediaResponse contains a byte[] parameter.

If my methode return directly a byte[], i get the MP3 in my navigator
But
If my methode return directly a MediaResponse, i get the error below :

/No message body writer has been found for response class MediaResponse./



this is my code :


the code wich works perfectly :


/**
         * Provides a service wich allows to get a specific waiting music
         * @author mickaël.camelot
         */
        @GET
        @Path("/media")
        @Produces("audio/x-mpeg")
        public byte[] getRingTone() {
                final String uri;
                byte[] mediaConverted = null;
                
                try {
                        // Récupération du Business Media
                        iMediaBusiness = (IMediaBusiness)
applicationContext.getBean(MEDIA_BUSINESS_IMPL);
                        if (iMediaBusiness != null) {
                                uri = iMediaBusiness.findMediaUri();
                        } else {
                                uri = StringUtils.EMPTY_STRING;
                        }
                        
                        // Vérification de l'URI
                        if (!StringUtils.EMPTY_STRING.equals(uri)) {
                                final java.io.File mediaFile = new File(uri);
                                final FileInputStream mediaStream = new 
FileInputStream(mediaFile);
                                mediaConverted = 
FileUtils.inputStreamToByteArray(mediaStream);
                        } else {
                                LOG.info("URI : " + uri);
                                throw new Exception("getRingTone() -> Media non 
trouvé");
                        }
                } catch (Exception e) {
                        LOG.error(e.getMessage());
                }
                
                return mediaConverted ;
        }

 
now the code wich doesn't work


/**
         * Provides a service wich allows to get a specific waiting music
         * @author mickaël.camelot
         */
        @GET
        @Path("/media")
        @Produces("audio/x-mpeg")
        public MediaResponse getRingTone() {
                final String uri;
                final MediaResponse response = newMediaResponse();
                final byte[] mediaConverted;
                
                try {
                        // Récupération du Business Media
                        iMediaBusiness = (IMediaBusiness)
applicationContext.getBean(MEDIA_BUSINESS_IMPL);
                        if (iMediaBusiness != null) {
                                uri = iMediaBusiness.findMediaUri();
                        } else {
                                uri = StringUtils.EMPTY_STRING;
                        }
                        
                        // Vérification de l'URI
                        if (!StringUtils.EMPTY_STRING.equals(uri)) {
                                
                                final java.io.File mediaFile = new File(uri);
                                final FileInputStream mediaStream = new 
FileInputStream(mediaFile);
                                mediaConverted = 
FileUtils.inputStreamToByteArray(mediaStream);
                                
                                response.setmedia(mediaConverted);
                                response.setStatus("0");
                                
                        } else {
                                LOG.info("URI : " + uri);
                                throw new Exception("getRingTone() -> Media non 
trouvé");
                        }
                } catch (Exception e) {
                        LOG.error(e.getMessage());
                        response.setStatus("1");
                }
                
                return response;
        }

and now my Class MediaResponse


@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "status",
    "media"
})
@XmlRootElement(name = "MediaResponse")
public class MediaResponse {

    @XmlElement(required = true)
    protected String status;
    @XmlElement(required = true)
    protected byte[] media;

    /**
     * Gets the value of the status property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getStatus() {
        return status;
    }

    /**
     * Sets the value of the status property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setStatus(String value) {
        this.status = value;
    }

    /**
     * Gets the value of the media property.
     * 
     * @return
     *     possible object is
     *     byte[]
     */
    public byte[] getmedia() {
        returnmedia;
    }

    /**
     * Sets the value of the media property.
     * 
     * @param value
     *     allowed object is
     *     byte[]
     */
    public void setmedia(byte[] value) {
        this.media = ((byte[]) value);
    }

}

--
View this message in context: 
http://cxf.547215.n5.nabble.com/No-message-body-writer-has-been-found-tp4560538p4560538.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to