Spring WebService - Unable to create envelope from given source
Here I am pasting my Endpoint code.
It is construncting the response object but it is throwing following exception
Oct 4, 2007 6:27:27 PM com.sun.xml.messaging.saaj.soap.EnvelopeFactory createEnvelope
SEVERE: SAAJ0511: Unable to create envelope from given source
Exception in thread "main" java.lang.ClassCastException: org.apache.xmlbeans.impl.values.XmlAnyTypeImpl
at com.sp.ag.ws.test.TestService.main(TestService.jav a:27)
Code:
public class IssuerEndpoint extends AbstractMarshallingPayloadEndpoint {
private static Logger logger=Logger.getLogger(IssuerEndpoint.class);
private IssuerService issuerService;
public IssuerEndpoint(IssuerService issuerService, Marshaller marshaller) {
super(marshaller);
this.issuerService = issuerService;
}
@Override
protected Object invokeInternal(Object request) throws Exception {
ShowIssueDocument issueDoc=(ShowIssueDocument)request;
logger.debug("Request XML:"+ issueDoc.xmlText());
String authrozationId=issueDoc.getShowIssue().getApplicationArea().getSender().getAuthorizationID().getStringValue();
logger.debug("Authorization Id:"+authrozationId);
//This will call the Issuer Business Service
List issuerList=this.issuerService.getIssuerList(authrozationId);
ShowIssueDocument responseDoc=ShowIssueDocument.Factory.newInstance();
Iterator iterator=issuerList.iterator();
// Creating the resonse object
while(iterator.hasNext()){
IssueSchemaType data=responseDoc.addNewShowIssue().addNewDataArea().addNewIssue();
Issuer issuer=(Issuer) iterator.next();
data.addNewID().setStringValue(issuer.getId());
data.addNewName().setStringValue(issuer.getName());
data.addNewNameAlias().setStringValue("Alias Name");
data.setStreet1(issuer.getStreet1());
data.setStreet2(issuer.getStreet2());
data.setState(issuer.getState());
data.setCity(issuer.getCity());
data.setCountry(issuer.getCountry());
data.setZip(new BigInteger(issuer.getZip().toString()));
}
System.out.println("Response XML:"+responseDoc.xmlText());
logger.debug("Response XML:"+responseDoc.xmlText());
return responseDoc;
}
}
public class WebServiceClient {
private static Logger logger=Logger.getLogger(WebServiceClient.class);
private final WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
public WebServiceClient(String defaultUri, Marshaller marshaller, Unmarshaller unmarshaller) {
webServiceTemplate.setDefaultUri(defaultUri);
webServiceTemplate.setMarshaller(marshaller);
webServiceTemplate.setUnmarshaller(unmarshaller);
}
/**
*
* @param xmlObject It will take XmlObject as input parameter
* @return Object
* @since send to the configured default URI
*/
public Object simpleSendAndReceive(XmlObject xmlObject) {
return webServiceTemplate.marshalSendAndReceive(xmlObject);
}
}
java.lang.ClassCastException: org.apache.xmlbeans.impl.values.XmlAnyTypeImpl
This exception is thrown when you have compiled your XML schema with one version of Xmlbeans but you use another version of Xmlbeans in your application.
Check that you use the same xmlbeans.jars in the both cases.