Hi,
I am trying to enable my webservice to handle both REST and SOAP. I am currently using ADB for databinding. Also I changed the ' 'enableRESTInAxis2MainServlet' flag to true in axis2.xml file. Please see the file snippet below: <!--parameters help to tweak the message handling of two main servlets. --> <!-- If the enableRESTInAxis2MainServlet is true, then Axis2MainServlet will handle both SOAP and REST messages --> <parameter name="enableRESTInAxis2MainServlet" locked="true">true</parameter> <!-- Following parameter will completely disable REST handling in both the servlets--> <parameter name="disableREST" locked="true">false</parameter> <!-- This will disable the separate servlet we have for REST handling. --> <parameter name="disableSeparateEndpointForREST" locked="true">true</parameter> After changing the file I regenerated the wsdl and created the aar file again. When I deployed it on the server(JBoss) and tried invoke the service using REST I was able to do so. But when I tried to invoke the service using SOAP client(with the help of stub). I get the following error. [java] org.apache.axis2.AxisFault: Transport level information does not ma ch with SOAP Message namespace URI; nested exception is: [java] org.apache.axiom.soap.SOAPProcessingException: Transport level nformation does not match with SOAP Message namespace URI [java] at org.apache.axis2.transport.TransportUtils.createSOAPMessage( ransportUtils.java:126) [java] at org.apache.axis2.transport.TransportUtils.createSOAPMessage( ransportUtils.java:67) [java] at org.apache.axis2.description.OutInAxisOperationClient.send(O tInAxisOperation.java:252) [java] at org.apache.axis2.description.OutInAxisOperationClient.execut (OutInAxisOperation.java:202) [java] at com.gryphonnetworks.ws.CertifyServiceStub.certifyClient(Cert fyServiceStub.java:344) [java] at com.gryphonnetworks.ws.GryphonClient.main(GryphonClient.java 56) [java] Caused by: org.apache.axiom.soap.SOAPProcessingException: Transport level information does not match with SOAP Message namespace URI [java] at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.iden ifySOAPVersion(StAXSOAPModelBuilder.java:144) [java] at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<ini >(StAXSOAPModelBuilder.java:108) [java] at org.apache.axis2.transport.TransportUtils.createSOAPMessage( ransportUtils.java:120) [java] ... 5 more Following is my SOAP client code: package com.gryphonnetworks.ws; import java.rmi.RemoteException; import com.gryphonnetworks.ws.CertifyServiceStub; import com.gryphonnetworks.common.xsd.ChannelDetails; import com.gryphonnetworks.common.xsd.CertificationData; import com.gryphonnetworks.ws.xsd.CertifyClient; import com.gryphonnetworks.ws.CertifyClientFaultException; import com.gryphonnetworks.ws.xsd.CertifyClientFault; import com.gryphonnetworks.ws.xsd.CertifyClientResponse; public class GryphonClient { /** * If account# == "13", then you will get a AccountNotExistFault. * otherwise if you provide an amount > 1000, you will get a InsufficientFundFaultMessageException, * otherwise you will get a response with a balance equal to 1000 - amountWithdrawn. */ private static String URL = "http://localhost:8080/axis2/services/CertifyService"; public static void main(String[] args) { CertifyServiceStub stub = null; System.out.println("Entering: GryphonClient"); try { stub = new CertifyServiceStub(URL); CertificationData[] certificationData = new CertificationData[2]; CertificationData cdTemp = new CertificationData(); ChannelDetails [] cahnnelDetails = new ChannelDetails[1]; ChannelDetails temp = new ChannelDetails(); temp.setChannelType("EMAIL"); temp.setChannelDetails("12345"); cahnnelDetails[0] = temp; cdTemp.setChannelDetails(cahnnelDetails); cdTemp.setClientId(124); certificationData[0] = cdTemp; cdTemp = new CertificationData(); temp = new ChannelDetails(); cahnnelDetails = new ChannelDetails[1]; temp.setChannelType("FAX"); temp.setChannelDetails("6789"); cahnnelDetails[0] = temp; cdTemp.setChannelDetails(cahnnelDetails); cdTemp.setClientId(2489); certificationData[1] = cdTemp; CertifyClient certifyClient = new CertifyClient(); certifyClient.setData(certificationData); /*RestEnabled re = new RestEnabled(); re.setArg("Nalini Srivastava"); RestEnabledResponse response = stub.restEnabled(re);*/ CertifyClientResponse response = stub.certifyClient(certifyClient); System.out.println("After calling the ws..."+response); if(response != null) { System.out.println("After calling the ws...response != null"); CertificationData[] ret = response.get_return(); if(ret != null) { System.out.println("After calling the ws...ret != null"); System.out.println("After calling the ws...ret[0].getClientId : "+ret[0].getClientId()); } } } catch (CertifyClientFaultException e) { final CertifyClientFault fault = e.getFaultMessage(); System.out.println("The fault is " + fault.getErrorCode()); } catch (RemoteException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } Please let me know what I am doing wrong in this. Regards, Nalini -----Original Message----- From: Nalini Srivastava Sent: Wednesday, February 28, 2007 5:36 PM To: Nalini Srivastava; 'axis-user@ws.apache.org' Subject: RE: [axis2] REST approach Hi, I am new to web services. I was looking at the 'userguide' provided with axis2 distribution. The sample has used AXIOM data binding mechanism. Can we use any other mechanism in it's place for the same example. Regards, Nalini ***The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review,retransmission,dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.***