Message Validation in Web Services

I noticed today that my service allows messages to reach
my service implementation class even when the message doesn't appear to satisfy the WSDL. For example I can pass it an object whose child members are null even if the WSDL says that they must exist. Is It true that no validation occurs against the WSDL. If not do newer versions of WebLogic do this. I am using 8.1.5. What is the industry standard of performing validation ?
I am writing this service for a client and want them to recieve faults if the message set to me is invalid.
Thanks;
Kahler

Doron,
Actually, what we are doing is to work out a feasible archet. for a hub platform, or agent for the agencies to implement their enterprise services. So we need to build a simple echoXXX test case to prove our archet. works.
The propose hub plateform allows the services providers to publish theis enterprise services, mostly which are async. web services, on the hub.
I think it is hard to explain through plain words. Can you give me your email adress and show you some diagram? Thanks,
Shaun

Similar Messages

  • ERROR: MyService.jws:715:There are two or more operations with the same schema-element 'ns0:MyNameSpace' on the input message in a web service file or callback interface.

    I have two web service operations that have the same complex type as their input
    parameter. I want to map this type to an existing schema. I can successfully
    do this with the first operation using XQuery but when I attempt to do this with
    the second operation I get the following error:
    ERROR: MyService.jws:715:There are two or more operations with the same schema-element
    'ns0:MyNamespace' on the input message in a web service file or callback interface.
    ERROR:      SUGGESTION: Use different schema-element values for each of those operations.
    How can I use different schema-element values? The input parameters are to be
    mapped to the same schema and same element since they are the same for both operations....

    I am having the same problem. How did you resolve this..?? could you please tell me the solution??
    Thanks
    Shari

  • How to view the SOAP message in a web service call + Urgent

    Hi All,
    Iam trying to test a web service call(Iam using CXF). But I need to view SOAP message sent to web service or need to debug the web service call. Please help me on this regard with example.

    Yes. to find any tcp monitor, define a listen port number, task host and port number, changing your request to listen post, then you can monitor TCP/IP like
    HTTP/1.1 200 OK
    Set-Cookie: JSESSIONID=7A00BD65EF7516AD8947359A25C4D98B; Path=/ComponentName
    Content-Type: text/xml;charset=utf-8
    Date: Wed, 20 Oct 2004 15:45:03 GMT
    Server: Apache-Coyote/1.1
    Connection: close
    <?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>
    <ns1:testObjectResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:ComponentName">
    <testObjectReturn href="#id0"/>
    </ns1:testObjectResponse>
    <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:MyObject" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:ComponentName">
    <name xsi:type="xsd:string">Set Name</name>
    <value xsi:type="xsd:string">set Value</value>
    </multiRef>
    </soapenv:Body>
    </soapenv:Envelope>
    Lixin

  • How to send the SOAP Fault Message to the Web Service Consumer

    Hi,
    I have configured SAOP  to Proxy Syncronous Scenario in PI 7.1 and using XML Validation  in Adapter Engine to Validate the Structure of the Message Payload.The scenario is working fine.When some of the Filed's Length  increses the maxLength specified in the Data Type . We are getting the Following error.
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>ADAPTER.JAVA_EXCEPTION</code>
                   <text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: XML Validation for payload with root element name MT_Out_CustomerMaster_FPMReq , target namespace http://Pegasystems.com/I06_Customers Failed!Errors Encountered During Parsing
    1.cvc-maxLength-valid: Value '123456789' with length = '9' is not facet-valid with respect to maxLength '8' for type 'null'.
    2.cvc-type.3.1.3: The value '123456789' of element 'CompanyCode' is not valid.
    3.cvc-maxLength-valid: Value 'asdf' with length = '4' is not facet-valid with respect to maxLength '1' for type 'null'.
    4.cvc-type.3.1.3: The value 'asdf' of element 'OperationType' is not valid.
         at com.sap.aii.adapter.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1164)
    My question is How does the Web Service Consumer can handle this Soap Server Error in the SOAP Fault.Or How can we provide a specific information like  'The value '123456789' of element 'CompanyCode' is not valid.It exceeds the Maximum Length'.
    I read this /people/sap.user72/blog/2006/01/16/xi-propagation-of-meaningful-error-information-to-soap-client blog .Where it is mentioned that the Web Service Consumer can handle while calling the Web Service.Is there any other solution?
    Kindly appreciate your help.

    Thank You Stefan for your kind reply.
    So  you mean to say if we use the XML Validation .we cannot provide proper error information to the calling Web Service Consumer .And While calling a Web Service they cannot Extract the Exact Message in the Text Filed(<text>) present under the Detail Element (<detail>) in the <SOAP:Fault> node. as
    <text>com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessageFormatException: XML Validation for payload with root element name MT_Out_CustomerMaster_FPMReq , target namespace http://Pegasystems.com/I06_Customers Failed!Errors Encountered During Parsing
    1.cvc-maxLength-valid: Value '123456789' with length = '9' is not facet-valid with respect to maxLength '8' for type 'null'.
    2.cvc-type.3.1.3: The value '123456789' of element 'CompanyCode' is not valid.**
    3.cvc-maxLength-valid: Value 'asdf' with length = '4' is not facet-valid with respect to maxLength '1' for type 'null'.
    4.cvc-type.3.1.3: The value 'asdf' of element 'OperationType' is not valid.
    That is why we have to use the Fault messages and  Field Lengths has to be Validated  in the Server proxy.
    Please Correct me If I am wrong.

  • WSDL Validation Failed (Web Services)

    I want to create a Web Service-Based Application in LabVIEW and I'm
    trying to go through the steps in the tutorial
    http://zone.ni.com/devzone/cda/tut/p/id/4728.
    I tried the following web services, but I always get the same error.
    http://coeservice.en.kku.ac.th:8080/TemperatureConvertor/TemperatureConvertorService?WSDL
    http://www.ecubicle.net/iptocountry.asmx?wsdl
    Error:
    WSDL Validation Failed.
    Validation failed. The URL is not formatted correctly and should be in the folowing form: http://localhost/test/good.asmx?WSDL
    I defined a proxy server with authentication. Without doing, that I get another error:
    Validation Failed.
    Possible Reasons are:
    1. The URL does not exist or the WSDL is bad.
    2. Authentication is not correct.
    3. Proxy information is not correct.
    So it seems that the proxy information is ok. But the web service I want to access isn't located on the localhost - I want to access a service in the internet. Can somebody give me a hint? I already tried to change some settings of the LabVIEW webserver. But it didn't help anything.
    David
    Solved!
    Go to Solution.

    In my browser I don't need to define a proxy (the proxy is detected automatically). But I still tried to define a proxy for the webservice - I got the informations from our IT department.
    I attached 3 screenshots of the webservice wizard with the error message...
    Attachments:
    ImportWebService1.gif ‏19 KB
    ImportWebService2.gif ‏22 KB
    ImportWebService3.gif ‏6 KB

  • Fault messages in target web service (microsoft visual studio) -experience?

    Hi guys!
    We use async scenario : SAP_R3 (ABAP Proxy) -> XI -> Web Service (SOAP). Target web service is created in microsoft visual studio. Standard scenario worx fine. We send data from r3, the web service processes them. However, we want to use also fault messages in case, there will be exception rised in the target web service and let operator in sxmb monitor know, that there's a problem. These fault messages should be used as acknowledgement. But we have serious problem with implementing fault messages in the target web service in the visual studio. Does someone have experience with this?
    Thanx a lot for info!
    Olian

    Hi
    see the below links
    Consuming XI Web Services using Web Dynpro – Part II-/people/riyaz.sayyad/blog/2006/05/08/consuming-xi-web-services-using-web-dynpro-150-part-ii
    Consuming XI Web Services using Web Dynpro – Part I -/people/riyaz.sayyad/blog/2006/05/07/consuming-xi-web-services-using-web-dynpro-150-part-i
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/0d7349b6-0901-0010-ddbe-ec43178a61ff
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/ee5bc490-0201-0010-e9b5-a258cf083bca
    Troubleshooting SOAP Message - XI - /people/varadharajan.krishnasamy/blog/2007/01/09/troubleshooting-soap-message--xi
    Troubleshooting - RFC and SOAP scenarios-/people/shabarish.vijayakumar/blog/2008/01/08/troubleshooting--rfc-and-soap-scenarios-updated-on-20042009
    Regards
    Chilla

  • WLDL files exported from XI 2.0 not valid for Web Service Clients

    Hi there,
    Im struggling for almost a week with a <b>BAPI WSDL file</b> exported from the XI repository. My scenario is very simple; A BAPI in R/3 exposed as web service through XI using the SOAP adapter.
    The intention was to generate a Web Service Client based on this WSDL file, unfortunately I get all kind of errors when trying to generate the client. (using tools like, SOAPScope, XML Spy and WebSphere Developer Studio none of this tools can validate the generated WSDL file obtained from XI)
    Can someone <b>Please explain</b> me how/what exaclty do I have to do in order to expose my BAPI as Web Service in XI 2.0? Or Please tell me if this is just impossible in this version of XI.
    Thanks a lot!
    Rob.

    Hi Rob,
    It seems that when exporting to a WSDL file from the Repository, <service> and <binding> are missing from the structure.
    A way to work this out is to either add them maually, or to create the WSDL from the Directory, using the Create End Point as Webservice in the Tools menu.
    When you do that, consider a couple of things:
    1. The message interface, by which you create the wsdl should be inbound. The message interface in the scenario should be outbound.
    2. In the binding section, the produced url is of the intergration server, and you need to change it to that defined in the SOAP adapter configuration.
    Hope this helps.
    Avihai

  • Message Monitoring and Web services Sequences  .. SOAMANAGER

    When can I use Mesage Monitoring and Sequence Monitoring .
    We are making a proof a concept and we are the following.
    1. A program which executes a proxy and with this proxy we are consuming a web services.
    2. The proxy and web services were implemented in the same Abap Machine .
    3. We execute the test and everything works very well and we consume the webservice and the program displays the expected result.
    Now want to know How can we use the Message Monitoring and the Sequence Monitoring . Is this posible ? Do we have to make any previous configuration?
    We don´t have any XI installation and for that we wonder if we can monitorize the  webservices  sequences ?
    Any idea about if we can realize such king of actions ..
    Many Thanks

    Hi
    I assumes u have dual stack.
    You can do the sequence monitoring with or without PI. But without PI you would achieve that thing on the local machine.
    You have to do those things at Java End using SAP NWA.
    Please see this link
    http://help.sap.com/saphelp_nwce10/helpdata/en/46/b00c2a99930764e10000000a1553f6/content.htm
    http://help.sap.com/saphelp_nwce10/helpdata/en/46/9cb2b57ded371ae10000000a11466f/content.htm

  • Unable to retreive the fault message returned by web service

    Hi,
    We are working on Proxy to SOAP synchronous scenario. The WSDL provided by the third party has 3 messages - 1. for request structure, 2. response structure and 3. Error message to track the exceptions, if any.  The interface working fine for positive test cases but we are facing issues when trying to capture the error message returned by the web service.
    We have configured the error message(provided in WSDL) as fault message in our Inbound interface. In the outbound interface, we have configured standard Fault message type provided by XI. we have mapped the two structure.
    Now when error is returned by the web service, we are able to see the blank response structure in the payload in MONI in XI. Also the SOAP Error Message structure is there in XI.
    But when we trying to retrieve the same in our proxy, it is giving the blank structure.
    Please help how to get the error message returned by the web service in proxy....
    Please help..
    Thanks in advance.

    >>>I am getting the error message as the fault message, in the response from the web service.
    >>>Now I want to forward the same message to SAP R/3 system. For this I have configured the standard fault message in the >>>outbound interface and have mapped the same with the web service error message. So if I am not wrong, the transformed >>>>structure according to the rules in message mapping should be sent to SAP R/3 system. But I am unable to see the result >>>>of this mapping in XI MONI. Neither is this passed to Client proxy.
    You are consuming the third party webservice. Third party webservice WSDL has request, response and fault message. if the third party application logic capture the exception and pass the response as fault mesg, then the above specified target fault mesg mapping with your Standard fault message mapping will be sent to sender or client proxy.
    Suggestions:
    Having fault message in WSDL does not mean that target system sends fault message during application exception. Check in the SXMB_MONI whether your response during exception is occuring in the fault message structure publised as WSDL. If not then doing mapping will not help. It gives only blank.
    If you notice response in fault message structure from third party in SXMB_MONI, then you need to check that at the client proxy side, are you handling/done coding for fault message methods similar to response strucutre for capturing data.
    Hope that helps.

  • Messages Monitoring and Web Services Sequences .... SOAMANAGER

    When can I use Mesage Monitoring and Sequence Monitoring .
    We are making a proof a concept and we are the following.
    1. A program which executes a proxy and with this proxy we are consuming a web services.
    2. The proxy and web services were implemented in the same Abap Machine .
    3. We execute the test and everything works very well and we consume the webservice and the program displays the expected result.
    Now want to know How can we use the Message Monitoring and the Sequence Monitoring . Is this posible ? Do we have to make any previous configuration?
    We don´t have any XI installation and for that we wonder if we can monitorize the  webservices  sequences ?
    Any idea about if we can realize such king of actions ..
    Many Thanks

    hi,
    short answer: you can't. to my knowledge there is no such thing as message/sequence monitoring outside of PI/XI.
    the only thing you can do is to enable debugging and access some debugging info from ST22. other than that you do not have access to the original (XML) message, the HTTP headers or the ST(simple transformation) info or anything else.
    regards,
    anton

  • How To Set Parameters in a SOAP-Message for QUERY_VIEW_DATA Web Service

    Hi all,
    I want to use the QUERY_VIEW_DATA Web Service to get data from BI through an existing BEx-query.
    How can I set a navigation status as it is stated in the SAP documentation [Web Service for Accessing Query Data|http://help.sap.com/saphelp_nw04/helpdata/en/d8/3bfc3f8fc2c542e10000000a1550b0/frameset.htm]?
    I am able to set filter values but setting any parameter with the name 'CMD' has no effect to the response.
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
      <soapenv:Header/>
      <soapenv:Body>
        <urn:GetQueryViewData>
          <Parameter>
            <!-- This has no effect -->
            <item>
              <Name>CMD</Name>
              <Value>SWITCH_AXIS</Value>
            </item>
            <!-- This works --> 
            <item>
              <Name>FILTER_IOBJNM</Name>
              <Value>0COMP_CODE</Value>
            </item>
            <item>
              <Name>FILTER_VALUE</Name>
              <Value>4020</Value>
            </item>
          </Parameter>
          <Query>Z_MYQUERY</Query>
        </urn:GetQueryViewData>
      </soapenv:Body>
    </soapenv:Envelope>
    We use SAP NetWeaver 7.0 EHP1. The documentation mentioned above belongs to NetWeaver 2004s and I can't find it in the docu for 7.0. Does that mean the QUERY_VIEW_DATA is deprecated?
    Thanks for your help!
    Best regards
    Heiko Braeske

    Dear Heiko,
    did you solve this problem?
    We are facing the same problem. Every parameter that requries "cmd" does not work. I guess we don´t use this paramter the right way.
    Best, Chris

  • CRUD operation return messages thru the web services

    Hello,
    I am creating some webservices which exposes the CRUD operations. Now when I am invoking these operations e.g. delete, update, it does not return proper messages when the record gets deleted or updated.
    Can anyone pls let me know what I need to do to return more meaningful message to the user ?
    Thanks in advance.
    Ranjan

    Hello,
    I am creating some webservices which exposes the CRUD operations. Now when I am invoking these operations e.g. delete, update, it does not return proper messages when the record gets deleted or updated.
    Can anyone pls let me know what I need to do to return more meaningful message to the user ?
    Thanks in advance.
    Ranjan

  • Web Service XML Input Arguments Schema Validation

    I'm new to web services, but we are currently implementing a number of Web Services that all take as arguments a single parameter which is an XMLBean, which has been generated by a XML Schema.
    What I find surprising is that when I submit a SOAP message to the Web Service (through the http Web Service Tester inside eclipse), I can send any valid XML without getting a SOAP fault. Is there a way on the Web Service that I want the XML submitted to be validated against the XML Schema for that parameter?
    Bit surprised I have to implement my own input argument validation, and there doesn't appear to be a standard way to do this. I must be missing soemthing surely? Why else would the Schema be in the WSDL?
    Cheers
    John

    I'm new to web services, but we are currently
    implementing a number of Web Services that all take
    as arguments a single parameter which is an XMLBean,
    which has been generated by a XML Schema.
    What I find surprising is that when I submit a SOAP
    message to the Web Service (through the http Web
    Service Tester inside eclipse), I can send any valid
    XML without getting a SOAP fault. Is there a way on
    the Web Service that I want the XML submitted to be
    validated against the XML Schema for that parameter?
    Bit surprised I have to implement my own input
    argument validation, and there doesn't appear to be a
    standard way to do this. I must be missing soemthing
    surely? Why else would the Schema be in the WSDL?
    Cheers
    JohnHas anyone found an answer to this, we have the same issue?

  • How to create Web Service based on PI WSDL message

    Hi all,
    we have following scenario:
    Within PI (version 7.1) we set up a message type and inbound service interface. This service interface should send the PI message to a web service running on a SAP J2EE (version 7.01). As the PI message is sent as WSDL I thought it should be easy to build a web service on the SAP J2EE based on this WSDL from PI.
    Unfortunately, I have problems creating the Web Service.
    For my current project we integrated the NWDI to the SAP NetWeaver Developer Studio and I'm required to add the Web Service to an existing DC (Development Component) within the NWDI.
    What I tried so far is:
    - I created a Deployable Proxy Project and within this I created a Client Proxy Definition based on the WSDL from the PI. But I can't add this Proxy to the DCs of the NWDI and I don't know how to implement my own coding here in order execute specific functions.
    - I created a new class within the NWDI DC and a public method. Based on this I created a Virtual Interface and a Web Service Definition (WSD). Then I added this to a Web Service Deployment Descriptor. I uploaded this to the SAP J2EE. But I'm not able to access this and I don't know hoe to assign the WSDL here.
    I also tried here to create a client proxy based on this WSD as I thought I might assign the WSDL here. But I don't see the WSD in the list of Web Services uploaded to the SAP J2EE...
    Can you please advice me how to create a Web Service in such an environment?
    regards
    René Jurmann

    Hi Tahir,
    sorry that you needed to wait this long - but this is how I created the web service:
    The steps on how to create the web service in NetWeaver Developer studio are nearly the same as described in the blog http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/5838. [original link is broken] [original link is broken] [original link is broken]
    Some steps I just skipped and some others I added. Some of the steps I did the way I described it as I needed to connect the web service with the SAP PI.
    Prerequisites:
    Add Java Perspective and J2EE Development Perspective to the open perspectives.
    Within "Window - Preferences - Web Services" check "Soap extensions visible in the virtual interface editor"
    The SDM of the corresponding SAP J2EE is configured within "Window - Preferences"
    Create a Development Component (DC) with type "J2EE -> EJB Module"
    The business logic of the web service will be implemented in an Enterprise Java Bean (EJB). So first the EJB component must be created:
         Choose "File -> New -> Other"
         In opening PopUp choose "Development Component -> Development Component Project"
         Select the Software Component for which you want to add the DC (e.g. "Local Development -> MyComponents")
         Choose now vendor, name and type:
              vendor is an alpha-numeric string of 20 characters starting with a letter - all in lower case
              name is an alpha-numeric string starting with a letter - all in lower case
              vendor and name concatenated must not be longer then 40 characters
              the name can be separated into different part using "/" as separator
              each part of the name must not be longer than 8 characters
              the type is "J2EE - EJB Module"
              you can specify a Caption as general description for the web service
    Create new EJB
    To create the EJB itself:
         In J2EE DC Explorer of J2EE Development Perspective expand new DC and right-click on folder "ejbModule"
         Choose "New - EJB" with following details:
              EJB Name: <name as for PI service Interface to be created - starting in upper case>
              EJB Project: <pre selected>
              Bean Type: Stateless Session Bean
              Default EJB Package: <corresponds to namespace in PI>
              generate default interfaces: Checked
    Regarding the "Default EJB Package" this should be created according the namespace in PI for which all PI objects will be created. This only applies if you have some naming conventions here.
    Example:
    Namespace in PI is:  http://company.net/pi/SOFTWARE_COMP/Application
    The corresponding package then is: net.company.pi.software_comp.application
    Implement coding for web service
    As the web service will be called via PI some transfer variables will be submitted. Most likely, those variables will not be standard type (e.g. String) but a complex type. Those types must be generated as Java classes. Below an example of a complex type I needed:
    Data Type
    net.company.pi.software_comp.application.types.MessageProcessingInformation
    Structure:
         Element name          Element type
         sendingSystemID          String
         interfaceID               String
         businessProcessVariantCode     String
         testIndicator               Boolean
    For every element described a public "get", "set" and "has" method must be created in the corresponding Java class:
    package net.company.pi.software_comp.application.types;
    import java.io.Serializable;
    public class MessageProcessingInformation implements Serializable {
         protected String sendingSystemID;
         protected String interfaceID;
         protected String businessProcessVariantCode;
         protected Boolean testIndicator;
         public String getSendingSystemID() {
              return sendingSystemID;
         public void setSendingSystemID(String value) {
              this.sendingSystemID = value;
         public boolean hasSendingSystemID() {
              if(sendingSystemID != null && !sendingSystemID.equals("")){
                   return true;
              return false;
    All Java classes representing complex types and all classes referenced here (used for sub-types) must implement java.io.Serializable. Java standard types which do not implement this class must not be used as sub-types.
    As soon as all data types are declared the real business logic can be implemented:
         In J2EE DC Explorer of J2EE Development Perspective expand DC - "ejb-jar.xml" - <Name> and double click on "ejbCreate"
         In detail view select folder "Business Methods" and click "Add"
         choose name of business method - this should be the same as the PI message type used for the service interface - starting lower case
         return type should be "void"
         add needed parameters fully qualified - including package (as specified in PI and created previously in DC)
         you can mark certain parameters as array if necessary
    Remark:
    It might be that after saving you get an error. This might be as the package name of one component is copied to the corresponding Java class at the very beginning (before the package declaration within the Java class). Simply delete the string here.
    It also might be, that the new business method is only defined in the remote interface class but not in the bean class. Just create an according method in the bean class.
    Within the newly created business method within the bean class you can now implement the business logic.
    Create a DC with type "J2EE -> Enterprise Application"
    In order to create the "real" web service and deploy it to the J2EE an Enterprise Application project has to be created. So create a new DC as for the EJB Module but choose as type "J2EE -> Enterprise Application".
    After the DC is created right click on the EJB DC and choose "Add to EAR Project". Choose the new DC.
    Create web service for EJB
    As soon as you implemented the business logic you can create the "real" web service. Therefore:
         Right click on the EJB name below "ejb-jar.xml"
         Choose "New - Web Service"
         Choose proper "Web Service Name" and "Configuration Name" (probably oriented at the EJB name)
         Copy the URL of the web service - you'll need it later for PI configuration
         on the second next screen use the same name for "Virtual Interface" and "Web Service Definition" (the name should be the name of the "Endpoint")
         the "EAR Project" should be preselected
    Unfortunately, the web service can't be used in its current configuration to be accessed by PI. Therefore the Virtual Interface must be changed. To do so, expand folder "Virtual Interfaces" and double click the virtual interface created.
    Within the detail view expand in tabs "Mapping" and "Types" the complete folder structure. For any "SOAP Extension" where a namespace can be defined use as namespace the corresponding namespace in PI (e.g. http://corpintra.net/pi/CBFC_GLOBAL_SAP_APPL/BillerDirect) but do not change any "Soap Extension" of a standard Java type. (if you don't have any naming convetions for namespaces in PI you can leave the SOAP Extension here. But then the namespace in PI should be set accordingly.)
    Probably it can be necessary on top level "Soap Extensions" in tab "Mapping" to leave "Use Namespaces for Parameters" unchecked. For some of my web services this parameter must be checked for others not - just try.
    If you can define a "New Name", "Local Name" or "Item Label" for a Soap Extension then use a name with starting upper case letter. (For Java Naming conventions most of the data type names will start with lower case letters.) Especially the method name must be renamed this way in order to stick to the PI namings.
    As a last point to change here check in tab "Mapping" all "Incoming Parameters" which you specified as array. Use for those as "New Name" a different name - do not just simply change from lower case to upper case. This is necessary as on PI we need to create two levels although here only one is specified.
    For any own sub-type declared as array the name within the coding should also differ from the corresponding Java Class name the type refers to.
    If all this is done you can deploy the web service to the J2EE:
         right click on "Enterprise Application" DC and choose "Development Component - Build..." and build all corresponding components
         right click on "Enterprise Application" DC and choose "Development Component - Deploy"
    Test the new web service via <J2EE URL>/wsnavigator/enterwsdl.html
    Create PI interface
    After the web service is created successfully the PI integration can be started.
    Therefore, within the Enterprise Services Builder create a data type according to the web service definition. All components defined on top-level for this data type should be declared as incoming parameter for the web service business method. Therefore it could be necessary to create some sub data types on PI first and add those to the "master" data type.
    Ensure that the names of the components correspond to the names defined in the web service (see virtual interface here). Those names must exactly be the same - including lower/upper case. Also take care for the ordering of the components.
    In case you need to include arrays following applies:
    The upper level is of occurrence "1:1". This has only one sub-entry with occurrence "1:n". The names for upper and sub-level must not equal.
    Based on the data type a message type is created. The name of the message type must be exactly the same as the name of the web service business method. (Hint: the name of the web service business method was most likely changed in the virtual interface. Then this name must correspond to the message type name.) Based on the message type an asynchronous inbound interface is to be created (which will be referred in the Integration Directory). The operation name for this interface (left panel) should be the same as the name for the web service business method.
    Create PI mappings and routings
    How to map (message mapping and operation mapping) from source to the web service message I wont explain here as this depends on the source message. The only important things here are:
         When creating the SOAP communication channel within the Integration Builder the "Target URL" is:
              <J2EE URL>/<Access URL as specified in web service creation>?wsdl&style=document
         The soap action is the name of the web service business method.
         Most likely the web service needs authentication to be executed.

  • Issue with - Consume Web Services in a Messaging Only Scenario

    Hello,
    I am trying to consume a Oracle - SOA web service in BizTalk.
    1. I followed the below MSDN post,
    http://msdn.microsoft.com/en-us/library/aa560545%28v=bts.70%29.aspx
    but I am getting "The custom tool 'BtsDiscoCodeGenerator' failed." error.
    2. Tried another approach like the below blog
    http://blogs.msdn.com/b/amantaras/archive/2010/03/03/consuming-a-web-service-in-a-non-orchestration-scenario.aspx
    In this case, I am getting this error
    "A message sent to adapter "SOAP" on send port "xxx" with URI "<<WSDL>>" is suspended.
     Error details: Failed to serialize the message part "ProcessPOAck1" into the type "ProcessPOAckType" using namespace "xxx". Please ensure that the message part stream is created properly. "
    I made sure there are no data type errors... I have copied the message to SoapUI and tested successfully. The message (output from BizTalk map) does not have soap envelop though. I had to copy
    the message in
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" <<some name spaces>>
       <soapenv:Header/>
       <soapenv:Body>
       </soapenv:Body>
    </soapenv:Envelope>
    tags to submit a request successfully.
    Any help in this regard is greatly appreciated.
    Thanks,
    Venkat.

    Why are you using the SOAP adapter instead of the WCF Adapter?  I think the only way to do that would be with some fairly heavy custom pipeline components. 
    Using the WCF Adapter, this is very easy - you just need to subscribe to the result message from the web service call - not a big deal, just play with the promoted properties and see what you have; normally SPName.  This can be sent to a file location
    with Overwrite set so that you never run out of disk space (if you don't care about the content response). 
    -Dan
    If this answers your question, please Mark as Answer

Maybe you are looking for

  • Accepting Invitations in iCal

    I am using iCal and that seems to be my default calendar program. I have an old version of entourage still on my computer, but I haven't used it in over a year. My problem is that when I click on a link sent to me in iMail for an iCal invitation, my

  • When moving a folder between drives in the same catalog I get an error message

    Hi everyone, Lightroom Version: 5.0 Operating System: Mac OS 10.8.4 File Type: Canon RAW CR2 I recently upgraded from LR4 to LR5 and I've found that when I try to move a folder within my catalog but between different drives I get an error message say

  • Issue with XML display.

    Hi, We have generated IDocs for Invoices and also dispatched it using RSEOUT00 program via an XML port. IDoc is getting generated and is being placed in the application server successfully. But, when we download XML to the local drive and open, it do

  • Solaris 10 x86 - Xorg freezes

    Hi I installed Solaris 10 in a Toshiba A10. I'm using it with no problems, but if I left the computer idle (without keyboard/mouse input) for about 20 minutes, Xorg freezes (at window manager, dtlogin greeting, xlock, ... any place) Accesing the mach

  • Unable to add java files with package statement

    Hi all, I have the following problem. I add to my project(JBuilder8) a set of java files that they have in their headers the statement... package jp.gr.java_conf.tame.swing.table;except one with statement... package jp.gr.java_conf.tame.swing.colorch