Problems to execute SOAP message

Hi experts,
I have the following problem with this WSDL:
<wsdl:definitions targetNamespace="urn:MDirect" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:MDirect" xmlns:intf="urn:MDirect" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <wsdl:message name="sendSmsWithSenderResponse">
      <wsdl:part name="sendSmsWithSenderReturn" type="xsd:string"/>
   </wsdl:message>
   <wsdl:message name="sendSmsWithSenderRequest">
      <wsdl:part name="user" type="xsd:string"/>
      <wsdl:part name="pwd" type="xsd:string"/>
      <wsdl:part name="company" type="xsd:string"/>
      <wsdl:part name="mobile" type="xsd:string"/>
      <wsdl:part name="txt" type="xsd:string"/>
      <wsdl:part name="sender" type="xsd:string"/>
   </wsdl:message>
   <wsdl:portType name="MDirectWS">
      <wsdl:operation name="sendSmsWithSender" parameterOrder="user pwd company mobile txt sender">
         <wsdl:input message="intf:sendSmsWithSenderRequest" name="sendSmsWithSenderRequest"/>
         <wsdl:output message="intf:sendSmsWithSenderResponse" name="sendSmsWithSenderResponse"/>
      </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name="MDirectWSSoapBinding" type="intf:MDirectWS">
      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="sendSmsWithSender">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="sendSmsWithSenderRequest">
            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:MDirect" use="encoded"/>
         </wsdl:input>
         <wsdl:output name="sendSmsWithSenderResponse">
            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:MDirect" use="encoded"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name="MDirectWSService">
      <wsdl:port binding="intf:MDirectWSSoapBinding" name="MDirectWS">
         <wsdlsoap:address location="https://www.xxx.com/mdirectws/services/MDirectWS"/>
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>
When running the request SOAP to the WebService I returned the following error:
soap fault: No such operation 'sendSmsWithSenderRequest'
Why only happens in SAP XI?
The tool tests WebService, SOAP-IU, works well.
Thanks,
Jose.

Thanks friends,
I tried the following:
1 - The WSDL defines soapAction as follows: ...<wsdlsoap:operation soapAction=""/>...
Therefore, in Comm. Chan. type SOAP Receiver, he left the field SOAP Action without any value.
2 - He changed the soapAction of WSDL with the following value: ...<wsdlsoap:operation soapAction="urn:sendSmsWithSender"/>...
Therefore, in Comm. Chan. type SOAP Receiver, he left the field SOAP Action with the following value: urn:sendSmsWithSender
3 - He changed the soapAction of WSDL with the following value: ...<wsdlsoap:operation soapAction="sendSmsWithSender"/>...
Therefore, in Comm. Chan. type SOAP Receiver, he left the field SOAP Action with the following value: sendSmsWithSender
None of the three options I have worked. I continue to get the same problem. Does it make sense to modify the WSDL of a WebService?
Thaaanks,

Similar Messages

  • How do i get soap message

    Hi everyone.
    I've generated a web service in netbeans 5.5 with SAAJ.
    I've run my web service client. The incoming message (service soap response) is
    empty.
    The problem is, my soap message (payload) is not appearing in the soap response.
    I expect to see....
    <?xml version="1.0" ?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://mywork">
    <soapenv:Body>
    <ns1:getMessageResponse>
    <document>transfer<document>
    <number>123456<number>
    <telephone>555-12345<telephone>
    </ns1:getMessageResponse>
    </soapenv:Body>
    </soapenv:Envelope>
    But i receive the "return" element only, without payload.
    <ns1:getMessageResponse>
    <return/>
    </ns1:getMessageResponse>
    My service and client method is listed below.
    Service....
    public SOAPMessage getMessage() {
    SOAPMessage message = null;
    try {
    MessageFactory mf = MessageFactory.newInstance();
    message = mf.createMessage();
    SOAPPart sp = message.getSOAPPart();
    SOAPEnvelope env = sp.getEnvelope();
    SOAPBody body = env.getBody();
    SOAPHeader header = env.getHeader();
    header.detachNode();
    SOAPFactory sf = SOAPFactory.newInstance();
    Name ElName = sf.createName("getMessage", "ns1", "http:mywork");
    SOAPBodyElement sbe = body.addBodyElement(ElName);
    SOAPElement name = sbe.addChildElement("name");
    name.addTextNode("transfer");
    SOAPElement document = sbe.addChildElement("document");
    document.addTextNode("123456");
    SOAPElement telephone = sbe.addChildElement("telephone");
    telephone.addTextNode("555-12345");
    message.saveChanges();
    } catch (Exception e) {
    System.out.println(e.getMessage());
    return message;
    Client Request....
    public static void main(String[] args) {
    // TODO code application logic here
    try {
    SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
    SOAPConnection con = scf.createConnection();
    MessageFactory mf = MessageFactory.newInstance();
    message = mf.createMessage();
    SOAPPart sp = message.getSOAPPart();
    SOAPEnvelope env = sp.getEnvelope();
    SOAPBody body = env.getBody();
    SOAPHeader header = envelope.getHeader();
    header.detachNode();
    SOAPFactory sf = SOAPFactory.newInstance();
    Name ElName = sf.createName("getMessage", "ns1", "http:mywork");
    SOAPBodyElement sbe = body.addBodyElement(ElName);
    message.saveChanges();
    URL urlep = new URL("http://localhost:8080/jaxws05/jaxws05?WSDL");
    SOAPMessage reply = con.call(message, urlep);
    con.close();
    } catch(Exception ex) {
    // TODO handle custom exceptions here
    Can anyone please help? , Thanks. --Nelson                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    I'd suggest you post this in the workshop newsgroup.
    I don't believe Workshop supports SOAP w/attachments in the current
    release, but you should ask in the workshop group for suggestions.
    -- Rob
    John wrote:
    I'm trying to create a web service which takes an attachment and in
    the BEA site, they have an example called "filetransfer" which does
    what I'm looking for.
    The example uses a SOAPMessageContext.getMessage() and
    SOAPMessage.getAttachments(); however, there doesn't seem to be any
    properties or methods which returns any of these object types.
    Are handling file attachments beyond the scope of weblogic workshop,
    or is there another way around this using workshop?
    Thanks.

  • Changing SOAP message

    Hi,
    I have a problem with the SOAP messages sent by the Oracle BPEL Process manager and wondered if someone could help. When I recieve a reply from a process it always comes back in this format:
    <envelope>
    <head/>
    <body>
    </body>
    </envelope>
    The problem is there is only one head tag which is confusing the parser that Im using as it expects both the opening and closing tags. Is there any way I can access the message and change this?

    Thanks, I tried to do what you suggested before but it didnt do what I wanted it to. I know that it is valid XML but I am calling it from the JSR 172 implementation on J2ME which requires a pair of tags. I will go back and try it again just in case.
    If this doesnt work however does anyone know if it is possible to manipulate the messages directly. Im getting desperate now.
    Clive

  • WLS 7.0 sp2 - Servlet Problems with SOAP messages

              I'm using Weblogic 7.0 SP2 and trying to create a Servlet to receive SOAP wrapped
              XML messages. I'm getting the following error. Is this a problem with WLS7.0sp2's
              support of JAXM? The System.out.println's indicate I have successfully received
              the incoming SOAP request and then successfully formatted the SOAP response, but
              upon returning saving the response it appears to blow up. Does anyone have any
              suggestions?
              I need to do the following in a servlet:
              - receive an incoming SOAP request with an embedded XML message
              - perform some processing
              - return a SOAP response with an embedded XML message
              Should I be using JAXM? Or can I do this same task easily with JAX-RPC?
              <Feb 24, 2004 4:10:42 PM AST> <Error> <HTTP> <101017> <[ServletContext(id=260434
              7,name=isd.war,context-path=)] Root cause of ServletException
              java.lang.Error: NYI
              at weblogic.webservice.core.soap.SOAPMessageImpl.saveRequired(SOAPMessag
              eImpl.java:360)
              at javax.xml.messaging.JAXMServlet.doPost(Unknown Source)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
              (ServletStubImpl.java:1058)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:401)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:306)
              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
              n.run(WebAppServletContext.java:5445)
              at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
              eManager.java:780)
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
              rvletContext.java:3105)
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
              pl.java:2588)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
              >
              I've stripped the code down so that all it does is verifies the incoming SOAP/XML
              request and creates a hard-coded response... be gentle... I'm a novice at this
              import javax.xml.soap.*;
              import javax.servlet.*;
              import javax.servlet.http.*;
              // import javax.xml.transform.*;
              import java.util.*;
              import java.io.*;
              public class RegisterServlet extends HttpServlet
              static MessageFactory fac = null;
              static
              try
              fac = MessageFactory.newInstance();
              catch (Exception ex)
              ex.printStackTrace();
              public void init(ServletConfig servletConfig) throws ServletException
              super.init(servletConfig);
              public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
              IOException
              try
              System.out.println("** Note: doPost() Entering req = " + req);
              // Get all the headers from the HTTP request
              MimeHeaders headers = getHeaders(req);
              // Get the body of the HTTP request
              InputStream is = req.getInputStream();
              // Now internalize the contents of a HTTP request
              // and create a SOAPMessage
              SOAPMessage msg = fac.createMessage(headers, is);
              System.out.println("** Note: doPost() Step A");
              SOAPMessage reply = null;
              reply = onMessage(msg);
              System.out.println("** Note: doPost() Step B reply = " + reply);
              if (reply != null)
              * Need to call saveChanges because we're
              * going to use the MimeHeaders to set HTTP
              * response information. These MimeHeaders
              * are generated as part of the save.
              if (reply.saveRequired())
              System.out.println("** Note: doPost() Step C reply.saveRequired()");
              reply.saveChanges();
              resp.setStatus(HttpServletResponse.SC_OK);
              putHeaders(reply.getMimeHeaders(), resp);
              // Write out the message on the response stream
              OutputStream os = resp.getOutputStream();
              System.out.println("** Note: doPost() Step D os = " + os);
              reply.writeTo(os);
              os.flush();
              else
              resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
              catch (Exception ex)
              throw new ServletException("** Error: SAAJ POST failed: " + ex.getMessage());
              static MimeHeaders getHeaders(HttpServletRequest req)
              Enumeration enum = req.getHeaderNames();
              MimeHeaders headers = new MimeHeaders();
              while (enum.hasMoreElements())
              String headerName = (String)enum.nextElement();
              String headerValue = req.getHeader(headerName);
              StringTokenizer values =
              new StringTokenizer(headerValue, ",");
              while (values.hasMoreTokens())
              headers.addHeader(headerName,
              values.nextToken().trim());
              return headers;
              static void putHeaders(MimeHeaders headers, HttpServletResponse res)
              Iterator it = headers.getAllHeaders();
              while (it.hasNext())
              MimeHeader header = (MimeHeader)it.next();
              String[] values = headers.getHeader(header.getName());
              if (values.length == 1)
              res.setHeader(header.getName(),
              header.getValue());
              else
              StringBuffer concat = new StringBuffer();
              int i = 0;
              while (i < values.length)
              if (i != 0)
              concat.append(',');
              concat.append(values[i++]);
              res.setHeader(header.getName(), concat.toString());
              // This is the application code for handling the message.
              public SOAPMessage onMessage(SOAPMessage message)
              SOAPMessage replymsg = null;
              try
              System.out.println("** Note: OnMessage() Entering msg = " + message);
              //Extract the ComputerPart element from request message and add to reply SOAP
              message.
              SOAPEnvelope reqse = message.getSOAPPart().getEnvelope();
              SOAPBody reqsb = reqse.getBody();
              //System.out.println("** Note: OnMessage() Step B");
              System.out.println("** Note: OnMessage () Step A Soap Request Message Body = "
              + reqsb);
              //Create a reply mesage from the msgFactory of JAXMServlet
              System.out.println("** Note: OnMessage () Step B");
              replymsg = fac.createMessage();
              SOAPPart sp = replymsg.getSOAPPart();
              SOAPEnvelope se = sp.getEnvelope();
              SOAPBody sb = se.getBody();
              System.out.println("** Note: OnMessage () Step C Soap Reply Before Message Body
              = " + sb);
              se.getBody().addBodyElement(se.createName("RegisterResponse")).addChildElement(se.createName("ErrorCode")).addTextNode("000");
              System.out.println("** Note: OnMessage () Step D Soap Reply After Message Body
              = " + sb);
              replymsg.saveChanges();
              System.out.println("** Note: OnMessage() Exiting replymsg = " + (replymsg));
              catch (Exception ex)
              ex.printStackTrace();
              return replymsg;
              

    Michael,
    I got the same error on WLS8.1/Win2K professional and apache FOP (old version).
    After digging into the WLS code and FOP(old version). i found the conflict happens
    on
    the "org.xml.sax.parser" system property. In WLS code, they hard coded like the
    following when startup weblogic server:
    System.setProperty("org.xml.sax.parser", "weblogic.xml.jaxp.RegistryParser");
    But the FOP code try to use the "org.xml.sax.parser" system property to find the
    sax parser then conlict happens.
    Here is the response from BEA support :
    "I consulted with our developers regarding the question of whether we can change
    the hard-coded value for the java system property: org.xml.sax.parser by using
    a configuration parameter and I found that unfortunately there is no specific
    setting to change the value. As you had mentioned in your note the org.xml.sax.parser
    system property can be changed programmatically in your application code."
    I solve my problem by using newer apache FOP (it never use the system property:org.xml.sax.parser
    any more) and XML Registy for WLS8.1.
    Good luck.
    David Liu
    Point2 Technologies Inc.
    "p_michael" <[email protected]> wrote:
    >
    Help.
    When we migrated from WLS 6.1 to WLS 7.0 SP2 when encountered a problem
    with XML
    parsing that did not previously exist.
    We get the error "weblogic.xml.jaxp.RegistryParser is not a SAX driver".
    What does this mean? And, what should we do about it.
    p_michael

  • OWSM SAML Verify step problem: Missing Security Header in SOAP message

    I'm having a problem with SAML steps. From gateway log:
    2008-09-17 13:21:32,987 INFO [HTTPThreadGroup-58] saml.InsertSAMLSVStep - User attributes map set to generate the attribute assertions: null
    2008-09-17 13:21:33,034 INFO [HTTPThreadGroup-60] saml.SAMLProcessor - Assertion Major Version :1 , Minor Version :1
    2008-09-17 13:21:33,034 WARNING [HTTPThreadGroup-60] saml.SAMLProcessor - SAML Assertion verification error: An invalid token was provided
    2008-09-17 13:21:33,034 WARNING [HTTPThreadGroup-60] saml.VerifySAMLStep - SAML Token verification failed:
    2008-09-17 13:21:33,096 SEVERE [HTTPThreadGroup-58] wssecurity.OSDTWSSecurity - Missing Security Header in SOAP message
    2008-09-17 13:21:33,096 WARNING [HTTPThreadGroup-58] wssecurity.SecurityBaseStep - Failure while applying XML Security
    FAULT CODE: InvalidSecurity FAULT MESSAGE: Missing WS Security header in the SOAP message
    at com.cfluent.policysteps.security.wssecurity.OSDTWSSecurity.decryptVerify(OSDTWSSecurity.java:369)
    at com.cfluent.policysteps.security.wssecurity.DecryptStep.performXmlSecurity(DecryptStep.java:131)
    at com.cfluent.policysteps.security.wssecurity.SecurityBaseStep.execute(SecurityBaseStep.java:238)
    at com.cfluent.pipelineengine.container.DefaultPipeline.executeStep(DefaultPipeline.java:124)
    but the wsse:Security header with SAML assertion IS confirmed in the incoming message log. Anybody seen this issue?

    Below is the log of the incoming message just prior to the failing SAML Verify step:
    <?xml version="1.0" encoding="UTF-8" ?>
    - <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://exception.common.periop.gehc.com" xmlns:ns1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns2="http://www.patient.patientmanager.periop.gehc.com/service/" xmlns:ns3="http://entity.common.periop.gehc.com" xmlns:ns4="http://entity.patient.patientmanager.periop.gehc.com" xmlns:ns5="http://entity.allergy.patientmanager.periop.gehc.com" xmlns:ns6="http://pdo.domain.customizer.periop.gehc.com" xmlns:ns7="http://entity.cases.scheduler.periop.gehc.com" xmlns:ns8="http://entity.insurance.patientmanager.periop.gehc.com">
    - <env:Header>
    - <ns1:Security>
    - <saml:Assertion MajorVersion="1" MinorVersion="1" AssertionID="158RBY2QvCFPiTqdXYWh9A22" IssueInstant="2008-09-17T19:58:43Z" Issuer="GE" xmlns="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
    <saml:Conditions NotBefore="2008-09-17T19:58:13Z" NotOnOrAfter="2008-09-17T19:59:43Z" />
    - <saml:AuthenticationStatement AuthenticationInstant="2008-09-17T19:58:43Z" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password">
    - <saml:Subject>
    <saml:NameIdentifier NameQualifier="www.ge.com" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">gowri</saml:NameIdentifier>
    - <saml:SubjectConfirmation>
    <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:sender-vouches</saml:ConfirmationMethod>
    </saml:SubjectConfirmation>
    </saml:Subject>
    </saml:AuthenticationStatement>
    </saml:Assertion>
    </ns1:Security>
    </env:Header>
    - <env:Body>
    - <ns2:getPatient>
    <ns2:patientId>137115</ns2:patientId>
    </ns2:getPatient>
    </env:Body>
    </env:Envelope>

  • Problem to send SOAP 1.1 message

    Hi,
    I have a piece of code developed with SAAJ and I am trying to import it in an existing web application developed with Weblogic Workshop 8.1 SP3. My problem is that the classes of javax.xml.soap are packaged in one of the weblogic libraries (webservices.jar I believe).
    When I try to use external jar (picked from SAAJ), it always uses the BEA libraries instead. As, by default, it sends SOAP 1.2 message it is a problem for me. I have seen that a SOAP message created with BEA libraries contains two static variable: SOAP11 and SOAP12 and SOAP12 is set to 1.
    So I want to be sure that my application uses my libraries and not the BEA ones. I have tried to modify the classpath and even if I see my packages before the BEA packages, it always uses the BEA classes.
    If you think I should use the BEA libraries, I welcome any advice to send SOAP 1.1 messages instead of SOAP1.2 and to add a header with my own attribute.
    Thanks in advance for any clue :)
    Cheers,
    Fred

    Try a reset:
    Hold the Sleep and Home button down for about 10 second until you see the Apple logo.

  • Problem: Applets cannot Create SOAP Message Objects using JAX Pack

    Hi all
    I want to invoke a simple webservice located at a url.
    I wish to send a SOAP Message . The Message is creating using
    javax.xml.soap package
    Here is the code
    public void init(){
    try{
    MessageFactory MF = MessageFactory.newInstance();
    SOAPMessage message = MF.createMessage();
    SOAPPart SP = message.getSOAPPart();
    SOAPEnvelope SE = SP.getEnvelope();
    SOAPHeader SH = SE.getHeader();
    SOAPBody SB = SE.getBody();
    Name bodyName = SE.createName
    ("testString","L","http://tempuri.org/");
    SOAPBodyElement SBE = SB.addBodyElement(bodyName);
    }catch(Exception e){}
    When I run the applet in a browser I am getting ExceptionInInitializerError or NullPointer Exception.
    The same application works when i run as a standalone application. But not in APPLET.
    Can somebody help me in this regard

    Im trying to do the same thing !!, i have a servlet that processes SOAP messages, and return SOAP messages back.
    Like you i have a implementation running with a stand alone client instead of an applet, which runs fine (there are several .jar files that have to be included in the jre/lib/ext directory, in total about a meg!).
    Im now looking to incorporate this client into an applet, but it moans about cannot find classes (the JAXM and SOAP classes).
    Have you found a solution to this yet ?? Surely you cannot expect the user to download all the required jar files along with the applet??
    With regards to your problem try setting up a button that fires off the SOAP Msg and processes the response, i read on the Sun Java Applet tutorials that some code should stay out of the init method(its a bit vague about WHAT should stay out..), maybe this is an example.
    Thanks,
    (i dont really expect a response as you posted this ages ago !!, but it would be nice.)

  • Problem to serialise the soap message in a handler

    I'm using a sun web service with a handler on the server side.
    In this handler I want to analize the soap message.
    First I try to serialize it :
    public boolean handleRequest(MessageContext arg0) {
        SOAPMessageContext context = SOAPMessageContext) arg0;
        SOAPMessage mes = context.getMessage();
        Document doc= mes.getSOAPPart();
        OutputFormat format = new OutputFormat(doc);
        format.setLineSeparator(LineSeparator.Windows);
        format.setIndenting(true);
        format.setLineWidth(0);            
        format.setPreserveSpace(true);
        StringWriter sw = new StringWriter();
        XMLSerializer serializer = new XMLSerializer(sw , format);
        serializer.asDOMSerializer();
        serializer.serialize(doc);             
        System.out.println(sw.toString());
    }The result I get looks like that :
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope><soapenv:Header>
    Where are the namespaces ?
    This xml is not correct because the soapenv prefix is not bound.
    How can I get a correct xml from the SOAP message ?

    Hi,
    Is ZYBTT a new attribute? Have you changed the status of the attribute to implemented or released (in SWO1: Edit -> Change release status)?
    And actually I think that your syntax is wrong too (BOR world is different compared to classes). If you want to use an attribute, I think that the syntax should be something like this:
    SWC_GET_PROPERTY <Object> <Attribute> <AttributeValue>.
    Read more here:
    http://help.sap.com/saphelp_nw04/helpdata/en/c5/e4acef453d11d189430000e829fbbd/content.htm
    Regards,
    Karri

  • External WebService call from CAF Core returns Invalid soap message

    I am trying to perform the very simple action of calling a WebService from a CAF Core app service.
      1. I imported the WS (Axis Web service running on NW 2004s SP9 server) with WSDL (option 2 on import external service page).
      2. I then assembled the call in an app service method and invoke it.
      3. I made sure to configure the end point for the service and the method using the External Service configuration.
    When I execute the CAF core method using a simple Callable Object test client, I get the following error:
    com.sap.caf.mp.base.exception.EngineException: Invalid soap message received
         at com.sap.caf.mp.core.data.service.manager.wsdl11.SOAPToMessageValueConverter.processComplexTypeMode(SOAPToMessageValueConverter.java:290)
         at com.sap.caf.mp.core.data.service.manager.wsdl11.SOAPToMessageValueConverter.generateComplexTypeValue(SOAPToMessageValueConverter.java:179)
         at
    truncated.
    I have also captured the XML request/reponse trace using tcpmon :
    REQUEST:
    POST /NWTestExpressWAR/services/TestExpressService HTTP/1.1
    Host: 192.168.99.120:8078
    Content-Type: text/xml; charset=UTF-8
    Content-Length: 348
    SOAPAction: http://www.testsys.com/TestExpressService/getAvailableModels
    <?xml version="1.0" encoding="utf-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><ns1:GetAvailableModels xmlns:ns1="http://www.testsys.com/TestExpressService"/></SOAP-ENV:Body></SOAP-ENV:Envelope>
    RESPONSE:
    HTTP/1.1 200 OK
    Server: SAP J2EE Engine/7.00
    Set-Cookie: saplb_*=(J2EE11743000)11743050; Version=1; Path=/
    Content-Type: text/xml; charset=utf-8
    Date: Mon, 04 Dec 2006 02:19:39 GMT
    Transfer-Encoding: chunked
    Set-Cookie: JSESSIONID=(J2EE11743000)ID1261187150DB11296929644926762709End; Version=1; Domain=192.168.99.120; Path=/
    1f3
    <?xml version="1.0" encoding="UTF-8"?><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><GetAvailableModelsResponse xmlns="http://www.testsys.com/TestExpressService"><modelNames><name>Great Oak Manufacturing-January03 Test</name><name>PriceCheck-default</name></modelNames><errorMessagesReturn/></GetAvailableModelsResponse></soapenv:Body></soapenv:Envelope>
    0
    The only problem I can think off is that the transfer-encoding is marked as chunked which is causing the characters '1f3' and '0' to appear after and before the response and that this is causing the app to crash.
    192.168.99.120 is the server the hosts the WS. It is also a 2004s SP9 server. The client server that hosts the CAF core service is of the same configuration. 8078 is the port I redirect for tcpmon purposes.
    Could anyone shed some light on my problem?
    Thanks,
    Pratap.

    It looks like NW WS client cannot handle Transfer-encoding of chunked even though this is part of HTTP 1.1. What seems to be happening is that the NW WS client is creating a HTTP 1.1 request. The service (axis ws running on NW) seeing this is creating a HTTP 1.1 response w/ chunked encoding. However, the client cannot handle this encoding and barfs. The solution is to change the service to return a HTTP/1.0 response since NW cant handle HTTP 1.1.
    Pratap.

  • ABAP runtime error in sxmb_moni when SOAP message has header with some tags

    Hi!!!
    I have a problem with sxmb_moni transaction.
    If I double-click on a successfully processed
    message, then this monitor can't show me
    the message details but fails with the following error:
    <COPY_AND_PASTE_FROM_SCREEN>
    Runtime errors         OBJECTS_OBJREF_NOT_ASSIGNED_NO                              
    Exception              CX_SY_REF_IS_INITIAL                                        
    Occurred on     02.03.2005 at 16:44:21  
    Access with 'ZERO' object reference not possible.                                                
    What happened?                                                            
    Error in ABAP application program.                                                 
    The current ABAP program "CL_XMS_PROP_STRING============CP " had to be             
    terminated because one of the                                                     
    statements could not be executed.                                                  
    This is probably due to an error in the ABAP program.
    </COPY_AND_PASTE_FROM_SCREEN>
    This situation takes place only when I want
    to look at a SOAP message which was sent to XI
    from .Net platform or was sent to
    .Net platform from XI (via SOAP adapter).
    In all other cases sxmb_moni works fine.
    I know that the problem is connected with some tags from Header record of SOAP message:
          <soap:Header>
             <wsa:Action>http://aaa.bbb.ccc/MessageResponse</wsa:Action>
             <wsa:MessageID>uuid:1838f870-1688-4cfe-8c4f-afe14d98c515</wsa:MessageID>
             <wsa:RelatesTo>uuid:308b950f-8cff-4b63-9861-93b041825f9d</wsa:RelatesTo>
             <wsa:To>http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</wsa:To>
             <wsse:Security>
                <wsu:Timestamp wsu:Id="Timestamp-389847df-8760-4d57-9777-6ce159d85205">
                   <wsu:Created>2005-03-02T08:54:29Z</wsu:Created>
                   <wsu:Expires>2005-03-02T08:59:29Z</wsu:Expires>
                </wsu:Timestamp>
             </wsse:Security>
          </soap:Header>
    If I take a SOAP message I have problem with, and
    I remove all tags from this Header (or remove
    the whole Header) and send it from any XML editor
    that can send SOAP messages then sxmb_moni hasn't
    any problems with showing me details of a such message.
    Any hints how to force a .Net platform not to send
    a such header or how to force sxmb_moni transaction
    not to fail if a such header occurs?
    Regards,
    Andrzej Filusz

    Hi Santhosh
    1.Check your authorization settings in XI and R/3. Whether the user has sufficient rights to execute the Function Module etc. This is the most common reason for this error.
    2.If the XI system was brought online even before the R/3 system then re-activate the communication channels from the Integration directory.
    Cheers..
    Vasu
    <u><i><b>** Reward Points if found useful **</b></i></u>

  • Documentation for SOAP-Messages OR RFC-Calls

    Hello,
    I am very interested in documentations about
    - the SOAP-Messages BOPC sends from Client to .NET-Server and
    - the RFC-Calls BOPC executes from .NET-Server to ABAP-Server
    Does somebody know where to get this kind of documentations? Thanks very much for your help!

    I need this documentation too. We are developing extension in .Net, ABAP and VBA to solve some problems with Workflow.

  • Problem in webservices SOAP

    Hi All
    iam new to webservices technology, i have downloaded a sample on DocumentStyle webserice and executed it as the per the instructions given the document and could succeed.
    now on the same lines i have written the below service and tried to execute.
    the steps what i followed are
    1 written a service interface
    2 written impl class which is as below
    3 compiled and created ear file using config.xml file
    4 started the oc4j server
    5 deployed the generated ear file into the server
    6 binded the service
    7 Checked if the service is running by the following url
    http://yourhost.com:8888/docws/validate
    it is sucessful
    8 prepared a jsp client
    9 placed it in default-wep-app directory
    10 opened the browser and called the jsp
    it has displayed me with a html form where i have to give some input.
    when clicked on submit
    i did not call the service
    so when i look at the server console
    it says as follows
    java.lang.IllegalArgumentException: Root element of a SOAP message must be: 'http://schemas.xmlsoap.org/soap/envelope/:Envelope'.
    please any one help me how to trouble shoot the above.
    i checked for the soap file in oc4j directory but failed.
    please help me in fixing the above problem
    import org.w3c.dom.*;
    import oracle.xml.parser.v2.*;
    import java.io.*;
    public class ValidateServiceImpl implements ValidateService
    public ValidateServiceImpl(){}
    public Element validate(Element e){
    Element processedEl=null;
    try{
    NodeList list = e.getChildNodes();
    Node node = null;
    String values [] = new String[list.getLength()-1];
    for(int i=0;i<list.getLength();i++){
    node = list.item(i);
    values = node.getNodeValue();
    int age = Integer.parseInt(values[0]);
    int income = Integer.parseInt(values[1]);
    int loanAmount = Integer.parseInt(values[2]);
    String answer=null;
    answer = checkAvailability(age,income,loanAmount);
    processedEl = createElement(answer);
    }catch(Exception ex){
    ex.printStackTrace();
    return null;
    return processedEl;
    private Element createElement(String value){
    Document xmldoc = new XMLDocument();
    Element e1 = xmldoc.createElement("answer");
    xmldoc.appendChild(e1);
    Text t = xmldoc.createTextNode(value);
    e1.appendChild(t);
    return (Element)xmldoc.getFirstChild();
    private String checkAvailability(int age,int income,int loanAmount){
    if((age>=20 && age <= 40) && (income > 2000) && loanAmount >= 10000){
    return "true";
    else{
    return "false";
    }

    Hi Ramadhar,
    If you are accessing the Webservice through the proxy you need to configure the proxy.
    1. Follow the menu Path:
    <b></b>System Administration>System Configuration>Service Configuration>Applications>com.sap.portal.ivs.httpservice>Services>proxy<i></i> and edit the property fields "HTTP-Enable Proxy Setting", "HTTP Proxy Host", and "HTTP Proxy port" and save.
    2.Right click on "com.sap.portal.ivs.httpservice" node and choose "Administrate" and restart the service.
    Hope this helps.
    -Venkat Malempati

  • How to intercept incoming SOAP messages?

    I'm using weblogic workshop 8.1 for creating web services. I need to intercept incoming SOAP messages in order to do some processing before executing the required function (especially i would like to be able to know which function is to be executed and if required, execute an athorer one, according to the processing result)
    I've tryed the tutorial given in the help, but i can't get it work. I'm using the example here after and i'm getting the following error: " the element '@jws:handler' is not allowed at this location".
    package Handler;
    * @jws:handler operation="handler.ConsoleLoggingHandler"
    public class HandlerExample1 implements com.bea.jws.WebService
    static final long serialVersionUID = 1L;
    /** @common:operation */
    public String echoString(String inputString)
    return inputString;
    I will apreciate if some one has a clue to resolve this problem.
    Thank you

    Hello,
    From [1], Handlers on incoming messages are invoked before the message
    is delivered to the web service operation, and handlers on outgoing
    messages are invoked after the web service operation has completed. The
    web service itself is unaware of the presence of handlers. SOAP message
    handlers are sometimes referred to as interceptors. Also see [2][3].
    Did you include the code for the handler
    (handler.ConsoleLoggingHandler)? [4]
    Here's a simple handler example [5]
    Hope this is of some value,
    Bruce
    [1]
    http://e-docs.bea.com/workshop/docs81/doc/en/workshop/guide/getstarted/conSOAPHandlers.html
    [2]
    http://e-docs.bea.com/workshop/docs81/doc/en/workshop/guide/getstarted/conSOAPHandlers.html?skipReload=true#WhereHandlersFit
    [3]
    http://edocs.beasys.com/wls/docs81/webserv/interceptors.html#1060763
    [4]
    http://e-docs.bea.com/workshop/docs81/doc/en/workshop/guide/getstarted/conSOAPHandlers.html?skipReload=true#HandlerExample
    [5]
    http://webservice.bea.com/log.zip
    Fatna wrote:
    >
    I'm using weblogic workshop 8.1 for creating web services. I need to intercept incoming SOAP messages in order to do some processing before executing the required function (especially i would like to be able to know which function is to be executed and if required, execute an athorer one, according to the processing result)
    I've tryed the tutorial given in the help, but i can't get it work. I'm using the example here after and i'm getting the following error: " the element '@jws:handler' is not allowed at this location".
    package Handler;
    * @jws:handler operation="handler.ConsoleLoggingHandler"
    public class HandlerExample1 implements com.bea.jws.WebService
    static final long serialVersionUID = 1L;
    /** @common:operation */
    public String echoString(String inputString)
    return inputString;
    I will apreciate if some one has a clue to resolve this problem.
    Thank you

  • Re: [iPlanet-JATO] Experiencing problem while executing model.

    Hi Todd,
    Thanks a lot for your input!
    In the case , I found that "TO_CHAR(PLAN_DT, 'MM/DD/YYYY')" is alaised as a
    column name in the resultset. So I am using this as a column in Jato
    Descriptor for Plan_Dt. Now it is working fine.
    Thanks and Regards,
    Santa.
    ----- Original Message -----
    From: Todd Fast <toddwork@c...>
    Sent: Thursday, July 26, 2001 9:50 AM
    Subject: Re: [iPlanet-JATO] Experiencing problem while executing model.
    Santa--
    I am experiencing a problem while executing a bounded model. I am usingQueryModelBase. Whenever the following query gets executed inonBeforeModel
    execute of TiledView, it throws an exception describing "PLAN_DT not found
    in ResultSet". If you execute this query on the SQL prompt then we getrows
    of data. Please could you tell us how the mapping between model and
    resultset works ? And what changes do we have to make to execute thisquery.
    >>
    SELECT PART_NM,NEWTXTDOLL
    TO_CHAR(PLAN_DT, 'MM/DD/YYYY'),
    FROM cpsselect
    WHERE CHG_DT >= TO_DATE('2001-06-17', 'YYYY-MM-DD')The mapping of result set to model is done via JDBC, using the columnnames
    you provide in your model's column descriptors. It sounds as if you are
    providing the column name "PLAN_DT" in a descriptor, and when the model
    tries to look up that column in the result set, there is no such columnand
    the operation fails.
    In order to debug this, you should try running your query with a JDBC
    connection, not SQL*Plus or your command-line SQL tool. What you need to
    find out is how the expresion "TO_CHAR(PLAN_DT, 'MM/DD/YYYY')" is aliasedas
    a column name in the resut set. The easiest way to do this is to write a
    simple class that does nothing but use your JDBC driver to connect the
    database and execute this query. After execution, use theResultSetMetaData
    information to find out the column names for the result set. Then, use
    these column names in your JATO column descriptors.
    Another Problem:We are not getting the values for NEWTXTDOLL column whenwe try to display it in a Tiled View.
    I'm sorry, this isn't enough information for me to offer any suggestions.
    Using the technique above, determine which columns are coming back in the
    result set, and make sure your display fields in the TiledView are boundto
    those column names. The problem could be something as simple as a typo in
    the field's bound name, or something more complex like the column in the
    result set being named something you don't expect.
    Another approach might be to alias the columns yourself using the "AS
    <alias>" expression, and assign them names that you choose instead ofusing
    the names assigned by the database or JDBC driver.
    Todd
    [email protected]
    The Information contained and transmitted by this E-MAIL is proprietary to
    Wipro Limited and is intended for use only by the individual or entity to
    which
    it is addressed, and may contain information that is privileged, confidential
    or
    exempt from disclosure under applicable law. If this is a forwarded message,
    the content of this E-MAIL may not have been sent with the authority of the
    Company. If you are not the intended recipient, an agent of the intended
    recipient or a person responsible for delivering the information to the named
    recipient, you are notified that any use, distribution, transmission,
    printing,
    copying or dissemination of this information in any way or in any manner is
    strictly prohibited. If you have received this communication in error, please
    delete this mail & notify us immediately at mailadmin@w...
    [Non-text portions of this message have been removed]

    Hi Todd,
    Thanks a lot for your input!
    In the case , I found that "TO_CHAR(PLAN_DT, 'MM/DD/YYYY')" is alaised as a
    column name in the resultset. So I am using this as a column in Jato
    Descriptor for Plan_Dt. Now it is working fine.
    Thanks and Regards,
    Santa.
    ----- Original Message -----
    From: Todd Fast <toddwork@c...>
    Sent: Thursday, July 26, 2001 9:50 AM
    Subject: Re: [iPlanet-JATO] Experiencing problem while executing model.
    Santa--
    I am experiencing a problem while executing a bounded model. I am usingQueryModelBase. Whenever the following query gets executed inonBeforeModel
    execute of TiledView, it throws an exception describing "PLAN_DT not found
    in ResultSet". If you execute this query on the SQL prompt then we getrows
    of data. Please could you tell us how the mapping between model and
    resultset works ? And what changes do we have to make to execute thisquery.
    >>
    SELECT PART_NM,NEWTXTDOLL
    TO_CHAR(PLAN_DT, 'MM/DD/YYYY'),
    FROM cpsselect
    WHERE CHG_DT >= TO_DATE('2001-06-17', 'YYYY-MM-DD')The mapping of result set to model is done via JDBC, using the columnnames
    you provide in your model's column descriptors. It sounds as if you are
    providing the column name "PLAN_DT" in a descriptor, and when the model
    tries to look up that column in the result set, there is no such columnand
    the operation fails.
    In order to debug this, you should try running your query with a JDBC
    connection, not SQL*Plus or your command-line SQL tool. What you need to
    find out is how the expresion "TO_CHAR(PLAN_DT, 'MM/DD/YYYY')" is aliasedas
    a column name in the resut set. The easiest way to do this is to write a
    simple class that does nothing but use your JDBC driver to connect the
    database and execute this query. After execution, use theResultSetMetaData
    information to find out the column names for the result set. Then, use
    these column names in your JATO column descriptors.
    Another Problem:We are not getting the values for NEWTXTDOLL column whenwe try to display it in a Tiled View.
    I'm sorry, this isn't enough information for me to offer any suggestions.
    Using the technique above, determine which columns are coming back in the
    result set, and make sure your display fields in the TiledView are boundto
    those column names. The problem could be something as simple as a typo in
    the field's bound name, or something more complex like the column in the
    result set being named something you don't expect.
    Another approach might be to alias the columns yourself using the "AS
    <alias>" expression, and assign them names that you choose instead ofusing
    the names assigned by the database or JDBC driver.
    Todd
    [email protected]
    The Information contained and transmitted by this E-MAIL is proprietary to
    Wipro Limited and is intended for use only by the individual or entity to
    which
    it is addressed, and may contain information that is privileged, confidential
    or
    exempt from disclosure under applicable law. If this is a forwarded message,
    the content of this E-MAIL may not have been sent with the authority of the
    Company. If you are not the intended recipient, an agent of the intended
    recipient or a person responsible for delivering the information to the named
    recipient, you are notified that any use, distribution, transmission,
    printing,
    copying or dissemination of this information in any way or in any manner is
    strictly prohibited. If you have received this communication in error, please
    delete this mail & notify us immediately at mailadmin@w...
    [Non-text portions of this message have been removed]

  • Writting attached file from SOAP message to a FTP folder

    Hi everybody,
    Our scenario is an interface which receives a SOAP message with a file attached. As we don't need to do any mapping into the attachment, we are supposed to deliver that file as it is into a FTP folder.
    Our problem is that we cannot find how to configure File comm channel to write the attached file and no the SOAP XML message which is what we are getting now. Any help on this?
    Thanks in advance.

    Hi
    check these forum posts
    SOAP with attachments
    Mail Sender Adapter - Attachment Handling
    Regards
    Vishnu

Maybe you are looking for