Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

"SAAJ0537: Invalid Content-Type" Exception

843833Jul 13 2005 — edited Jan 13 2009
Hi All,

I am using SAAJ and JAXM API implementations. When I send request soap message to the service I am getting back response soap message from the service but the client is abnormally terminating with exception "SAAJ0537: Invalid Content-Type. Could be an error message instead of a SOAP message". The details are hereunder.

Can anyone please tell me why I am getting this exception. As you see my client and service soap message consrtruction, I am using the same soap message for sending and receiving. Also, I see there are some junk characters like "179", "0" in my response soap message. I dont why they are generated by JAXM/SAAJ API


StandaloneClient.java
--------------------------------------------------------------------------------------
import java.util.*;
import javax.xml.soap.*;
import javax.xml.messaging.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import java.io.*;

public class StandaloneClient {
	public static void main(String[] args) {
		try 		{
			SOAPConnectionFactory conFact = SOAPConnectionFactory.newInstance();
			SOAPConnection con = conFact.createConnection();

			MessageFactory msgFact = MessageFactory.newInstance();
			SOAPMessage msg = msgFact.createMessage();

			SOAPPart soapPart=msg.getSOAPPart();
			SOAPEnvelope soapEnvelope = soapPart.getEnvelope();

			Name name = soapEnvelope.createName("GetWeatherReport", "wrp", "http://www.weatherreporter.com/wrp/");

			SOAPBody soapBody=soapEnvelope.getBody();
			SOAPBodyElement soapBodyElement = soapBody.addBodyElement(name);

			Name name2 = soapEnvelope.createName("message");
			SOAPElement soapElement = soapBodyElement.addChildElement(name2);
			soapElement.addTextNode("Sending Message...");

			msg.saveChanges();

			URLEndpoint url = new URLEndpoint("http://localhost:9999/ApServerWeb/MessageReceiver");

			SOAPMessage response = con.call(msg, url);
			SOAPPart resSoapPart = response.getSOAPPart();
			SOAPEnvelope resSoapEnvelope = resSoapPart.getEnvelope();

			SOAPBody resSoapBody = resSoapEnvelope.getBody();
			if (resSoapBody.hasFault()) {
				SOAPFault soapFault = resSoapBody.getFault();
				System.out.println("Fault Cause " + soapFault.getFaultCode()+soapFault.getFaultString());
			}

			Source source = resSoapPart.getContent();

			TransformerFactory transfFact = TransformerFactory.newInstance();
			Transformer transformer = transfFact.newTransformer();
			transformer.transform(source, new StreamResult(System.out));

			con.close();
		}
		catch(Exception e) {
			e.printStackTrace();
		}
	}
}
MessageReceiver.java
---------------------------------------------------------------------------------------------
import java.util.Iterator;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.xml.messaging.JAXMServlet;
import javax.xml.messaging.ReqRespListener;
import javax.xml.soap.AttachmentPart;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;

public class MessageReceiver extends JAXMServlet implements ReqRespListener {
	private MessageFactory messageFactory = null;

	public void init(ServletConfig servletConfig) throws ServletException 	{
		super.init(servletConfig);
		try {
		}
		catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	
	public SOAPMessage onMessage(SOAPMessage message) 	{
		try {
			MessageFactory msgFact = MessageFactory.newInstance();
			SOAPMessage msg = msgFact.createMessage();
			SOAPPart soapPart=msg.getSOAPPart();
			SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
			Name name = soapEnvelope.createName("GetWeatherReport", "wrp", "http://www.weatherreporter.com/wrp/");
			SOAPBody soapBody=soapEnvelope.getBody();
			SOAPBodyElement soapBodyElement = soapBody.addBodyElement(name);

			Name name2 = soapEnvelope.createName("message");
			SOAPElement soapElement = soapBodyElement.addChildElement(name2);
			soapElement.addTextNode("Sending Message...");
			msg.saveChanges();
			return msg;
		}
		catch(Exception e) {
			e.printStackTrace();
			return null;
		}
	}
}
Request SOAP Message
--------------------------------------------------------------------------------------------------
POST /ApServerWeb/MessageReceiver HTTP/1.1
Content-Type: text/xml; charset=utf-8
Content-Length: 277
SOAPAction: ""
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Java/1.4.2_04
Host: 127.0.0.1:9999
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive


<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body>
      <wrp:GetWeatherReport xmlns:wrp="http://www.weatherreporter.com/wrp/">
         <message>Sending Message...</message>
      </wrp:GetWeatherReport>
   </SOAP-ENV:Body></SOAP-ENV:Envelope>
Response SOAP Message
--------------------------------------------------------------------------------------------------
HTTP/1.1 200 OK
Server: WebSphere Application Server/5.1
Content-Type: text/html; charset=ISO-8859-1
Content-Language: en-US
Transfer-Encoding: chunked


179
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
   <soapenv:Body>  
      <wrp:GetWeatherReport xmlns:wrp="http://www.weatherreporter.com/wrp/">   
         <message xmlns="">Sending Message...</message>  
      </wrp:GetWeatherReport> 
   </soapenv:Body></soapenv:Envelope>
0
Exception on Client Side
--------------------------------------------------------------------------------------------------
Jul 13, 2005 11:52:22 AM com.sun.xml.messaging.saaj.soap.MessageImpl identifyContentType
SEVERE: SAAJ0537: Invalid Content-Type. Could be an error message instead of a SOAP message
Jul 13, 2005 11:52:22 AM com.sun.xml.messaging.saaj.soap.MessageImpl <init>
SEVERE: SAAJ0535: Unable to internalize message
com.sun.xml.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:127)
        at StandaloneClient.main(StandaloneClient.java:43)
Caused by: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:121)
        ... 1 more
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at com.sun.xml.messaging.saaj.soap.MessageImpl.<init>(MessageImpl.java:302)
        at com.sun.xml.messaging.saaj.soap.ver1_1.Message1_1Impl.<init>(Message1_1Impl.java:47)
        at com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl.createMessage(SOAPMessageFactory1_1Impl.java:38)
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:354)
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:150)
        ... 3 more
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:text/html. Is this an error message instead of a SOAP response?
        at com.sun.xml.messaging.saaj.soap.MessageImpl.identifyContentType(MessageImpl.java:398)
        at com.sun.xml.messaging.saaj.soap.MessageImpl.<init>(MessageImpl.java:189)
        ... 7 more

CAUSE:

java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:121)
        at StandaloneClient.main(StandaloneClient.java:43)
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at com.sun.xml.messaging.saaj.soap.MessageImpl.<init>(MessageImpl.java:302)
        at com.sun.xml.messaging.saaj.soap.ver1_1.Message1_1Impl.<init>(Message1_1Impl.java:47)
        at com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl.createMessage(SOAPMessageFactory1_1Impl.java:38)
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:354)
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:150)
        ... 3 more
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:text/html. Is this an error message instead of a SOAP response?
        at com.sun.xml.messaging.saaj.soap.MessageImpl.identifyContentType(MessageImpl.java:398)
        at com.sun.xml.messaging.saaj.soap.MessageImpl.<init>(MessageImpl.java:189)
        ... 7 more

CAUSE:

java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:121)
        at StandaloneClient.main(StandaloneClient.java:43)
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at com.sun.xml.messaging.saaj.soap.MessageImpl.<init>(MessageImpl.java:302)
        at com.sun.xml.messaging.saaj.soap.ver1_1.Message1_1Impl.<init>(Message1_1Impl.java:47)
        at com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl.createMessage(SOAPMessageFactory1_1Impl.java:38)
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:354)
        at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:150)
        ... 3 more
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:text/html. Is this an error message instead of a SOAP response?
        at com.sun.xml.messaging.saaj.soap.MessageImpl.identifyContentType(MessageImpl.java:398)
        at com.sun.xml.messaging.saaj.soap.MessageImpl.<init>(MessageImpl.java:189)
        ... 7 more
Thanks & Regards,
Kumar.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 10 2009
Added on Jul 13 2005
20 comments
23,561 views