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); } }


Reply With Quote