I’m creating a SOAP service using JAXM request response method. Upon receiving a SOAP request, the receiving servlet invokes a query to Tamino 4.1 to retrieve a XML document and encapsulates into a SOAP response.
What’s interesting is that when using Tamino 4.1 Java API, receiving servlet using TQuery can successully query Tamino and return a SOAP response. However, when using TXQuery, I get the following exceptions from the client invoking the service:
javax.xml.soap.SOAPException: Invalid Content-Type:text/html
at com.sun.xml.messaging.saaj.soap.MessageImpl.verify(MessageImpl.java:159)
at com.sun.xml.messaging.saaj.soap.MessageImpl.(MessageImpl.java:91)
at com.sun.xml.messaging.saaj.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:32)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:333)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:142)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:115)
at com.my.client.test.(test.java:46)
at com.my.client.test.main(test.java:109)
javax.xml.soap.SOAPException: Unable to internalize message
at com.sun.xml.messaging.saaj.soap.MessageImpl.(MessageImpl.java:135)
at com.sun.xml.messaging.saaj.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:32)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:333)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:142)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:115)
at com.my.client.test.(test.java:46)
at com.my.client.test.main(test.java:109)
Caused by: javax.xml.soap.SOAPException: Invalid Content-Type:text/html
at com.sun.xml.messaging.saaj.soap.MessageImpl.verify(MessageImpl.java:159)
at com.sun.xml.messaging.saaj.soap.MessageImpl.(MessageImpl.java:91)
Code snippets below:
TConnection connection = TConnectionFactory.getInstance().newConnection( DATABASE_URI );
// Obtain a TXMLObjectAccessor with a DOM object model
TXMLObjectAccessor xmlObjectAccessor = connection.newXMLObjectAccessor(
TAccessLocation.newInstance( “General” ),
TDOMObjectModel.getInstance() );
// Prepare to read the instance
/* TQuery query = TQuery.newInstance( “TestXML[/sample="test"]” );
try {
// Invoke the query operation
TResponse response = xmlObjectAccessor.query( query );
if ( response.hasFirstXMLObject() ) {
StringWriter stringWriter = new StringWriter();
response.getFirstXMLObject().writeTo( stringWriter );
System.out.println( “Retrieved following instance:” + stringWriter );
TXMLObject xmlObject = response.getFirstXMLObject();
doc = (Document) xmlObject.getDocument();
}
else doc= null;
}
catch (TQueryException queryException) {
// Inform about the reason for the failure
System.out.println( “Query failed!” );
if ( queryException.hasAccessFailureException() )
System.out.println( “Query rejected by Tamino. Reason:” +
queryException.getAccessFailureException() );
} */
TXQuery query = TXQuery.newInstance( “for $b in input()/TestXML where $b/sample=‘test’ return $b”);
try {
// Invoke the query operation
TResponse response = xmlObjectAccessor.xquery( query );
if ( response.hasFirstXMLObject() ) {
StringWriter stringWriter = new StringWriter();
response.getFirstXMLObject().writeTo( stringWriter );
System.out.println( “Retrieved following instance:” + stringWriter );
TXMLObject xmlObject = response.getFirstXMLObject();
doc = (Document) xmlObject.getDocument();
}
else doc= null;
}
catch (TXQueryException queryException) {
// Inform about the reason for the failure
System.out.println( “Query failed!” );
if ( queryException.hasAccessFailureException() )
System.out.println( “Query rejected by Tamino. Reason:” +
queryException.getAccessFailureException() );
}
// OK, everything is done, close the connection.
connection.close();
} catch (Exception e) {
System.out.println( “Error” + e.toString() );
};
I’ve similar experience when using X-Application 4.1 as well. Is this a bug or due to my incorrect use of the APIs? Any advise is greatly appreciated. Thanks!
#API-Management#webMethods-Tamino-XML-Server-APIs#webMethods