"text/xml" is the standard content type for SOAP 1.1. So if you try to send a POX message with text/xml content type the formatter will change that back to application/xml. I don't think changing this behavior will break something though (fingers crossed on that :)).
Thanks, Hiranya On Tue, Jan 31, 2012 at 12:08 AM, Abid Khan <[email protected]> wrote: > Hello all, > > Please look at the following code and tell me why this code is explicitly > changing contentType from "text/xml" to "application/xml"? > > This issue is because this kind of code in ApplicationXMLFormatter, > > if (contentType == null) { > contentType = HTTPConstants.MEDIA_TYPE_APPLICATION_XML; > } else if (isSOAPContentType(contentType)) { > contentType = HTTPConstants.MEDIA_TYPE_APPLICATION_XML; > if (log.isDebugEnabled()) { > log.debug("contentType is set incorrectly for Application > XML."); > log.debug("It is changed to " + contentType); > } > } > > Along with function in > > > private boolean isSOAPContentType(String contentType) { > if (JavaUtils.indexOfIgnoreCase(contentType, > SOAP12Constants.SOAP_12_CONTENT_TYPE) > -1) { > return true; > } > // search for "type=text/xml" > else if (JavaUtils.indexOfIgnoreCase(contentType, > > SOAP11Constants.SOAP_11_CONTENT_TYPE) > -1) { > return true; > } > return false; > } > > This code is explicitly changing the content type to "application/xml" if > it is "text/xml" > > I would like to know if changing this code would have any negative impacts. > > Regards, > Abid > > -----Original Message----- > From: Abid Khan > Sent: Friday, January 27, 2012 9:34 AM > To: '[email protected]' > Subject: RE: Help needed for endpoint level content type. > > Hello all, > > I have tried all options, I do need to change the content-type to > "text/xml". And I do neet a quick resolution to this. > > Can anyone please point me to right direction. > > Thanks in advance, > Abid > > > > > > -----Original Message----- > From: Abid Khan > Sent: Tuesday, January 24, 2012 4:02 PM > To: [email protected] > Subject: RE: Help needed for endpoint level content type. > > Hello Sadeep, > > I tried this, and several others. It look either synapse or axis2 is > completely ignoring those properties. No matter what I set I always get > "application/xml". > > So there may be a bug somewhere or this is by design. The content type are > always posted as "application/xml" > > > -----Original Message----- > From: Sadeep Jayasumana [mailto:[email protected]] > Sent: Tuesday, January 24, 2012 11:23 AM > To: [email protected] > Subject: Re: Help needed for endpoint level content type. > > Hi, > > You can set these properties conditionally within your CBR logic. Please > check whether it works for you. > > Eg: > <proxy name="CBRProxy"> > <target> > <inSequence> > <switch source="//m0:getQuote/m0:request/m0:symbol" xmlns:m0=" > http://services.samples"> > <case regex="IBM"> > <!-- Send with text/xml content type to endpoint 1 --> > <property name="messageType" value="text/xml" > scope="axis2"/> > <property name="ContentType" value="text/xml" > scope="axis2"/> > <send> > <endpoint> > <address uri="http://localhost:9000/endpoint1" /> > </endpoint> > </send> > </case> > <case regex="MSFT"> > <!-- Send with application/xml content type to endpoint 2 > --> > <property name="messageType" value="application/xml" > scope="axis2"/> > <property name="ContentType" value="application/xml" > scope="axis2"/> > <send> > <endpoint> > <address uri="http://localhost:9000/endpoint2" /> > </endpoint> > </send> > </case> > </switch> > </inSequence> > </target> > </proxy> > > Thanks, > Sadeep > > On Tue, Jan 24, 2012 at 9:14 PM, Abid Khan <[email protected]> wrote: > > > Hello Sadeep, > > > > Thanks for the quicker response. > > > > I actually knew this approach, but my problem is multiple application > send > > request to same proxy. That same proxy is delivering message (using > content > > based routing) to different endpoints. > > > > One of those endpoint expects "Content-Type=text/xml", where as rest of > > them expect "Content-Type=application/xml". > > > > Having said that I need something in the endpoint not in the proxy. > > > > Thanks, > > Abid > > > > > > > > -----Original Message----- > > From: Sadeep Jayasumana [mailto:[email protected]] > > Sent: Tuesday, January 24, 2012 12:52 AM > > To: [email protected] > > Subject: Re: Help needed for endpoint level content type. > > > > Hi, > > > > You can force the content type while sending a message out using > > "messageType" and "ContentType" Axis2 level properties. Please check > > whether this works for your scenario. This might not work if the message > > content is not compatible with the formatter associated to the content > type > > you are forcibly setting. > > > > .. > > .. > > <property name="messageType" value="text/xml" scope="axis2"/> > > <property name="ContentType" value="text/xml" scope="axis2"/> > > <send> > > <endpoint> > > <address uri="http://localhost:9000/endpoint1" /> > > </endpoint> > > </send> > > > > AND > > > > .. > > .. > > <property name="messageType" value="application/xml" scope="axis2"/> > > <property name="ContentType" value="application/xml" scope="axis2"/> > > <send> > > <endpoint> > > <address uri="http://localhost:9000/endpoint2" /> > > </endpoint> > > </send> > > > > Thanks, > > Sadeep > > > > On Tue, Jan 24, 2012 at 9:47 AM, Hiranya Jayathilaka > > <[email protected]>wrote: > > > > > I believe these endpoints are being invoked through some proxy service. > > If > > > so what is the content type of the requests sent to the proxy service? > > > > > > Thanks, > > > Hiranya > > > > > > On Tue, Jan 24, 2012 at 7:03 AM, Abid Khan <[email protected]> > > wrote: > > > > > > > Hello all, > > > > > > > > Please help me in following scenario. (I am using synapse 1.2) > > > > > > > > I have two different endpoint, the application on one endpoint > accepts > > > > "Content-Type=application/xml", and second application on the other > > > > endpoint accepts "Content-Type=text/xml". > > > > > > > > Those application are external application and are running for > several > > > > years, is there any way I can configure Synapse to send content type > > > > properly to their respective endpoint. > > > > > > > > A prompt response will be much appreciated. > > > > > > > > Regards, > > > > Abid > > > > > > > > > > > > > > > > -- > > > Hiranya Jayathilaka > > > Associate Technical Lead; > > > WSO2 Inc.; http://wso2.org > > > E-mail: [email protected]; Mobile: +94 77 633 3491 > > > Blog: http://techfeast-hiranya.blogspot.com > > > > > > > > > > > -- > > > > Sadeep Jayasumana**** > > > > Email: [email protected]**** > > > > Phone: +94-77-2266507 > > > > > > -- > > Sadeep Jayasumana**** > > Email: [email protected]**** > > Phone: +94-77-2266507 > -- Hiranya Jayathilaka Associate Technical Lead; WSO2 Inc.; http://wso2.org E-mail: [email protected]; Mobile: +94 77 633 3491 Blog: http://techfeast-hiranya.blogspot.com
