Wsdl to be generated by PI

Hi Experts,
I have to worl on the scenario :Non-SAP  --> PI --> SAP R/3
Receiver is RFC. Webservice has to be generated by PI. What are the requisites for the same and how can this be achieved?
Please suggest!!
Thanks & Regards,
Sushama Pandey

Hi Sushma,
I have same requirement. I am using a web service (created from a EJB client) to test the web service (for the Service Interface)
I get following exception upon running the web service:
javax.ejb.EJBException: (Failed in component: sap.com/HeaderProxyEAR) Exception raised from invocation of public java.lang.String com...doe.salesheader.DoeToSapBean.doeHeader(java.lang.String) method on bean instance com...doe.salesheader.DoeToSapBean4b588a1d for bean sap.com/HeaderProxyEARannotation|HeaderProxyEJB.jarannotation|DoeToSapBean in application sap.com/HeaderProxyEAR.; nested exception is: javax.xml.ws.WebServiceException: java.lang.ClassCastException: class com.sap.engine.services.jndi.persistent.UnsatisfiedReferenceImpl:service:namingcom.sap.engine.boot.loader.ResourceMultiParentClassLoader456d3d51alive incompatible with interface com.sap.engine.services.webservices.espbase.xi.ESPXIMessageProcessor:library:webservices_libcom.sap.engine.boot.loader.ResourceMultiParentClassLoader1e6ee98alive
Here is the code in my EJB session bean:
public class DoeToSapBean implements DoeToSapRemote, DoeToSapLocal {
     @WebServiceRef (name = "SalesOrderCreate_Out_Service", wsdlLocation = "META-INF/wsdl/com/./doe/salesheader/SalesOrderCreate_Out/SalesOrderCreate_Out.wsdl")
     SalesOrderCreateOutService service;
     public String doeHeader(String headerXml){
          SalesOrderCreateOut servicePort = service.getSalesOrderCreate_Out_Port();
          SalesOrderResponse response = null;
          Project salesOrderCreateRequest = new Project();
          Header header = new Header();
          header.setTitle("EAST COAST SHEET METAL MOTOR WARRANTY");
          header.setBillToName("GLOBAL MECHANICAL SYSTEMS LTD");
          salesOrderCreateRequest.setHeader(header);
          try {
               response = servicePort.salesOrderCreateOut(salesOrderCreateRequest);
          } catch (SalesOrderError_Exception e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
          TRETURN treturn = response.getTRETURN();
          Iterator ls = treturn.getItem().iterator();
          while(ls.hasNext()){
               TRETURN.Item tempItem = (TRETURN.Item)ls.next();
               headerXml = tempItem.getMESSAGE();
               break;
          return headerXml;
Can you please post your solution...

Similar Messages

  • Workshop 10.1 WSDL - cannot publish generated Web service

    I'm trying to create a Web service starting from a WSDL using the doc Web Service Development Starting Points ([url http://edocs.bea.com/wlw/docs101/guide/webservices/conWebServiceDevelopmentCycle.html]http://edocs.bea.com/wlw/docs101/guide/webservices/conWebServiceDevelopmentCycle.html) .
    I create a Web service project, import my WSDL into my src directory, click on the WSDL and select Web Services > Generate Web Service.
    Workshop generates the implementation class and the JAR file, just like the doc describes.
    When I try to publish it to my server in the IDE< however, I get an error :
    Error with publish task 'WebServicesProjectBuildTask'.
    Web services in WLW101Example_WebServiceFromWSDL_JAXRPC have errors.
    java.lang.UnsupportedMethodException: Method not implemented.
    Error(s) occurred during publish assembly. No modules will be published.
    The operation in the WSDL has been implemented, and the class is pretty simple :
    package com.kohls.services;
    import javax.jws.WebService;
    import weblogic.jws.*;
    import com.kohls.is.soa.x09.meta.*;
    * KohlsDynamicWsPortTypeImpl class implements web service endpoint interface KohlsDynamicWsPortType */
    @WebService(serviceName = "KohlsDynamicWS",
                targetNamespace = "http://www.kohls.com/is/soa/0.9/meta",
                endpointInterface = "com.kohls.services.KohlsDynamicWsPortType")
    @WLHttpTransport(contextPath = "is/soa/0.9", serviceUri = "meta", portName = "KohlsDynamicWsBinding")
    public class KohlsDynamicWsPortTypeImpl implements KohlsDynamicWsPortType
      public KohlsDynamicWsPortTypeImpl()
      public com.kohls.is.soa.x09.meta.KohlsMessageDocumentType process(com.kohls.is.soa.x09.meta.KohlsMessageDocumentType Message)
        KohlsMessageDocumentType message = null;
        message = new KohlsMessageDocumentType();
        MessageHeaderType        header  = new MessageHeaderType();
        MessagePayloadType       payload = new MessagePayloadType();
        message.setHeader(header);
        message.setPayload(payload);
        return message;
    }The only thing unusual here is that the @WLHttpTransport annotation overrides the context, but I don't see that as a problem.
    Is there something simple I am missing here ? I guess I'm always surprised when Workshop cannot publish something it generates, but there is usually a reason - library setting or something.
    I'd appreciate any advice !
    Edited by ethan_kohls at 01/10/2008 11:59 AM

    Hi Ethan
    I tested it using Workshop10.0Mp1 and didn't see any issue with publish.
    Here are the steps I followed:
    1) Create a default webservice project with default facets.(no ear)
    2) Drop the business and meta folder and under project/src folder
    3) Create a test package under src
    4) Right click on the wsdl and choose generate webservice and create it under the test folder
    5) Replace the process method implementation with the one you have here
    6) Create a 10.0mp1 Workshop server (please make sure you create a workshop server and not wls server) and deploy the app to the server
    I was able to run the webservice successfully.
    Let me know if I am doing anything different from you.
    Vimala-

  • WSDL file not generated from wscompile using jwsdp-1.2.

    Hi,
    I used following config.xml file to generate the WSDL file.......but it didn't got genereted. Other artifacts got generated. I'm using jwsdp-1.2.
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration
    xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
    <service name="PersonWebService"
    typeNamespace="http://rahuls_person_service.org/type"
    targetNamespace="http://rahuls_person_service.org/wsdl"
    packageName="rahul.ws.test">
    <interface name="rahul.ws.test.PersonWS"
    servantName="rahul.ws.test.PersonWSImpl"/>
    </service>
    </configuration>
    And I have following entry in the build.xml file.........
    <target name="generate-server_wsdl" depends="prepare">
    <antcall target="edit-config">
    <param name="config.rpcenc.file" value="${config.rpcenc.file}"/>
    </antcall>
    <wscompile
    keep="true"
    base="${samplesbuild}/${appname}/classes/server"
    xPrintStackTrace="true"
    gen="true"
    verbose="false"
    model="${samplesbuild}/${appname}/${model.rpcenc.file}"
    classpath="${compile.classpath}"
    config="${config.rpcenc.file}">
    <classpath>
    <path refid="compile.classpath"/>
    </classpath>
    </wscompile>
    <antcall target="unedit-config">
    <param name="config.rpcenc.file" value="${config.rpcenc.file}"/>
    </antcall>
    </target>
    Can any body point me what may be the problem.
    thanks in advance.
    Rahul

    The following is from the jwsdp-1.1 tutorial at http://java.sun.com/webservices/docs/1.1/tutorial/doc/
    The tutorial for 1.2 is not available yet.
    Seems you need to modify your config.xml to have a <service> element.
    The wscompile tool reads the configuration file (config.xml), which contains information that describes the web service. The basic structure of config.xml follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration
    xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
    <service> or <wsdl> or <modelfile>
    </configuration>
    The <configuration> element may contain exactly one <service>, <wsdl>, or <modelfile> element.
    The <service> Element
    If you specify this element, wscompile reads the RMI interface that describes the service and generates a WSDL file. In the <interface> subelement, the name attribute specifies the service's RMI interface, and the servantName attribute specifies the class that implements the interface. For example:
    <service name="CollectionIF_Service"
    targetNamespace="http://echoservice.org/wsdl"
    typeNamespace="http://echoservice.org/types"
    packageName="stub_tie_generator_test">
    <interface name="stub_tie_generator_test.CollectionIF"
    servantName="stub_tie_generator_test.CollectionImpl"/>
    </service>
    The <wsdl> Element
    If you specify this element, wscompile reads the service's WSDL file and generates the service's RMI interface. The location attribute specifies the URL of the WSDL file, and the packageName attribute specifies the package of the classes generated by wscompile. For example:
    <wsdl
    location="http://tempuri.org/sample.wsdl"
    packageName="org.tempuri.sample" />

  • WSDL type names generated by JDev 10.1.2 are prefixed by package name

    Is there a way to prevent JDeveloper to prefix type names with package name? Example:
    package a.test;
    public interface TestWS {
    public PublishType getType( String a) throws Exception;
    When Web Service is generates using this interface, WSDL will have something like:
    <complexType name="a_test_PublishType" jdev:packageName="a.test" xmlns:jdev="http://xmlns.oracle.com/jdeveloper/webservices">
    Is there a setting to prevent this from happening?
    Thanks,
    Dejan

    By default <c:out/> tag "escapes" the output, option escapeXml is implicitly true
    To change this behaviour add the option: escapeXml="false"
    In your case:
    <c:out value="${bindings.InstituteDescription}" escapeXml="false"/>
    Hope it helped.
    Regards
    Fred

  • Given WSDL, need to generate example request / response XML to give testers

    Without actually making the service calls I need to generate example XML request and response messages for each service in a given a WSDL.
    So far the only other tool that can do this is the Oxygen xml editor wsdl inspector. Not even XMLspy does this.
    Just wondering if my experimenting with Jdev 11.(latest) has missed a way to get this accomplished?
    tnx curt

    how about SoaPUI tool?

  • Unable to generate WebService Client with Exported (BAPI) WSDL file from XI

    Hi there,
    I, trying to setup a simple Web Service environment where I'll be exposing a BAPI as Web Service via XI.
    So these are the steps I followed:
    <b>1)</b> first I imported the BAPI meta data into my SWC in the repository. <b>2)</b> Second I defined my interrface etc.. <b>3)</b> Third I exported the generated BAPI WSDL file. <b>4)</b> Fourth, I tried to generate a Java proxy/client for my Web Service using a Java IDE (IBM WebSphere Application Developer and XML Spy).
    Now the problem is that Im not able to generate the Web Service client using the exported WSDL file, the WSDL seems not to be valid...From the generated errors in the IDE, I can see that the problem has to do somewhere/somehow with the WSDL Binding element, which input parameters do not match the input parameters of the port type.
    This is a small part of the WSDL file as generated by XI:
         <wsdl:message name="BAPI_AR_ACC_GETOPENITEMS.Input">
              <wsdl:part name="parameters" element="s0:BAPI_AR_ACC_GETOPENITEMS" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
         </wsdl:message>
         <wsdl:message name="BAPI_AR_ACC_GETOPENITEMS.Output">
              <wsdl:part name="parameters" element="s0:BAPI_AR_ACC_GETOPENITEMS.Response" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
         </wsdl:message>
         <wsdl:portType name="BAPI_AR_ACC_GETOPENITEMS.PortType">
              <wsdl:operation name="BAPI_AR_ACC_GETOPENITEMS">
                   <wsdl:input message="s0:BAPI_AR_ACC_GETOPENITEMS.Input"/>
                   <wsdl:output message="s0:BAPI_AR_ACC_GETOPENITEMS.Output"/>
              </wsdl:operation>
         </wsdl:portType>
         <wsdl:binding name="BAPI_AR_ACC_GETOPENITEMS.SAPBinding" type="s0:BAPI_AR_ACC_GETOPENITEMS.PortType" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
              <s0:binding style="rfc"/>
    Has anyone faced a situation like this before? Any clues where to look? I appreciate any feedback, thanks!
    Rob.
    Message was edited by: rob viana

    Hi Rob!
    I'm facing the same problem - how did you solve your issue then? I'm getting following error during generation on .NET side:
    ============================================================================================
    Error: There was an error processing 'http://server/wsdl/MIAMI_ACCDOCPost.wsdl'.
      - The document at the url http://server/wsdl/MIAMI_ACCDOCPost.wsdl
    was not recognized as a known document type.
    The error message from each known type may help you fix the problem:
    - Report from 'DISCO Document' is 'Discovery document at the URL http://server/wsdl/MIAMI_ACCDOCPost.wsdl could not be found.'.
      - The document format is not recognized (the content type is 'content/unknown').
    - Report from 'WSDL Document' is 'There is an error in XML document (2, 70138).'.
      - Value cannot be null.
    Parameter name: name
    - Report from 'XML Schema' is 'The root element of a W3C XML Schema should be <schema> and its namespace should be 'http://www.w3.org/2001/XMLSchema'.'.
    ============================================================================================
    kr Martin

  • Problem to generate classes from a gsoap server's wsdl with wsimport

    Hello,
    I trie for a long time to generate my client classes from a wsdl file with wsimport. The wsdl file was generated by gsoap.
    Here, the wsdl file :
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="form"
    targetNamespace="https://enterprise-name-masked.com/form.wsdl"
    xmlns:tns="https://enterprise-name-masked.com/form.wsdl"
    xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
    xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:generic="generic"
    xmlns:xop="http://www.w3.org/2004/08/xop/include"
    xmlns:xmime4="http://www.w3.org/2004/11/xmlmime"
    xmlns:form="form"
    xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"
    xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
    <schema targetNamespace="generic"
      xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
      xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:generic="generic"
      xmlns:xop="http://www.w3.org/2004/08/xop/include"
      xmlns:xmime4="http://www.w3.org/2004/11/xmlmime"
      xmlns:form="form"
      xmlns="http://www.w3.org/2001/XMLSchema"
      elementFormDefault="unqualified"
      attributeFormDefault="unqualified">
      <import namespace="http://www.w3.org/2004/08/xop/include"/>
      <import namespace="http://www.w3.org/2004/11/xmlmime"/>
      <import namespace="http://www.w3.org/2003/05/soap-encoding"/>
      <simpleType name="service">
       <restriction base="xsd:string">
        <enumeration value="service-none"/><!-- enum const = 0 -->
        <enumeration value="service-ident"/><!-- enum const = 1 -->
        <enumeration value="service-pool"/><!-- enum const = 2 -->
        <enumeration value="service-hwr"/><!-- enum const = 3 -->
        <enumeration value="service-form"/><!-- enum const = 4 -->
        <enumeration value="service-document"/><!-- enum const = 5 -->
       </restriction>
      </simpleType>
      <simpleType name="result-code">
       <restriction base="xsd:string">
        <enumeration value="ok"/><!-- enum const = 0 -->
        <enumeration value="already-exists"/><!-- enum const = 1 -->
        <enumeration value="not-found"/><!-- enum const = 2 -->
        <enumeration value="cant-connect"/><!-- enum const = 3 -->
        <enumeration value="exception"/><!-- enum const = 4 -->
        <enumeration value="bad-conversion"/><!-- enum const = 5 -->
        <enumeration value="bad-values"/><!-- enum const = 6 -->
        <enumeration value="session-not-found"/><!-- enum const = 7 -->
        <enumeration value="initialization-failed"/><!-- enum const = 8 -->
       </restriction>
      </simpleType>
      <complexType name="result">
       <sequence>
         <element name="code" type="generic:result-code" minOccurs="1" maxOccurs="1"/>
         <element name="details" type="xsd:string" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
    </schema>
    <schema targetNamespace="form"
      xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
      xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:generic="generic"
      xmlns:xop="http://www.w3.org/2004/08/xop/include"
      xmlns:xmime4="http://www.w3.org/2004/11/xmlmime"
      xmlns:form="form"
      xmlns="http://www.w3.org/2001/XMLSchema"
      elementFormDefault="unqualified"
      attributeFormDefault="unqualified">
      <import namespace="http://www.w3.org/2004/08/xop/include"/>
      <import namespace="http://www.w3.org/2004/11/xmlmime"/>
      <import namespace="http://www.w3.org/2003/05/soap-encoding"/>
      <simpleType name="area-type">
       <restriction base="xsd:string">
        <enumeration value="area-type-text"/><!-- enum const = 0 -->
        <enumeration value="area-type-numeric"/><!-- enum const = 1 -->
        <enumeration value="area-type-date"/><!-- enum const = 2 -->
        <enumeration value="area-type-checkbox"/><!-- enum const = 3 -->
        <enumeration value="area-type-slider"/><!-- enum const = 4 -->
        <enumeration value="area-type-draw"/><!-- enum const = 5 -->
        <enumeration value="area-type-identifier"/><!-- enum const = 6 -->
       </restriction>
      </simpleType>
      <simpleType name="format">
       <restriction base="xsd:string">
        <enumeration value="A5"/><!-- enum const = 0 -->
        <enumeration value="A4"/><!-- enum const = 1 -->
        <enumeration value="A3"/><!-- enum const = 2 -->
        <enumeration value="A2"/><!-- enum const = 3 -->
        <enumeration value="A1"/><!-- enum const = 4 -->
        <enumeration value="A0"/><!-- enum const = 5 -->
       </restriction>
      </simpleType>
      <complexType name="area">
       <sequence>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="x" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="y" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="width" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="height" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="comments" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="area-type" type="form:area-type" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="area-with-string">
       <sequence>
         <element name="area" type="form:area" minOccurs="1" maxOccurs="1"/>
         <element name="string" type="xsd:string" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="area-with-integer">
       <sequence>
         <element name="area" type="form:area" minOccurs="1" maxOccurs="1"/>
         <element name="integer" type="xsd:int" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="area-with-range">
       <sequence>
         <element name="area" type="form:area" minOccurs="1" maxOccurs="1"/>
         <element name="lower" type="xsd:double" minOccurs="1" maxOccurs="1"/>
         <element name="upper" type="xsd:double" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="areas">
       <sequence>
         <element name="areas" type="form:area" minOccurs="0" maxOccurs="unbounded"/>
         <element name="string-areas" type="form:area-with-string" minOccurs="0" maxOccurs="unbounded"/>
         <element name="integer-areas" type="form:area-with-integer" minOccurs="0" maxOccurs="unbounded"/>
         <element name="range-areas" type="form:area-with-range" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="group">
       <sequence>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="areas" type="form:areas" minOccurs="1" maxOccurs="1"/>
         <element name="groups" type="form:group" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="background">
       <sequence>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="md5" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="mime" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="num-page" type="xsd:int" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="pattern-type">
       <sequence>
         <element name="print-once" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
         <element name="has-identifier" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="page">
       <sequence>
         <element name="num-page" type="xsd:int" minOccurs="1" maxOccurs="1"/>
         <element name="format" type="form:format" minOccurs="1" maxOccurs="1"/>
         <element name="is-portrait" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
         <element name="background" type="form:background" minOccurs="1" maxOccurs="1"/>
         <element name="areas" type="form:areas" minOccurs="1" maxOccurs="1"/>
         <element name="groups" type="form:group" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="document-new">
       <sequence>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="pattern-type" type="form:pattern-type" minOccurs="1" maxOccurs="1"/>
         <element name="form-pages" type="form:page" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="document">
       <sequence>
         <element name="uuid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="pattern-type" type="form:pattern-type" minOccurs="1" maxOccurs="1"/>
         <element name="form-pages" type="form:page" minOccurs="0" maxOccurs="unbounded"/>
       </sequence>
      </complexType>
      <complexType name="document-info">
       <sequence>
         <element name="uuid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
         <element name="page-count" type="xsd:int" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <complexType name="Data">
       <sequence>
         <element ref="xop:Include" minOccurs="1" maxOccurs="1"/>
       </sequence>
         <attribute ref="xmime4:contentType" use="optional"/>
      </complexType>
      <complexType name="login-response">
       <sequence>
         <element name="result" type="generic:result" minOccurs="1" maxOccurs="1"/>
         <element name="session" type="xsd:string" minOccurs="1" maxOccurs="1"/>
       </sequence>
      </complexType>
      <!-- operation request element -->
      <element name="login" type="xsd:string"/>
      <!-- operation request element -->
      <element name="password" type="xsd:string"/>
      <!-- operation response element -->
      <element name="result" type="generic:result"/>
      <!-- operation response element -->
      <element name="uuid" type="xsd:string"/>
      <!-- operation request element -->
      <element name="session" type="xsd:string"/>
      <!-- operation request element -->
      <element name="aform" type="form:document-new"/>
      <!-- operation response element -->
      <element name="form" type="form:document"/>
      <!-- operation request element -->
      <element name="md5" type="xsd:string"/>
      <!-- operation response element -->
      <element name="data" type="form:Data"/>
      <!-- operation response element -->
      <element name="exists" type="xsd:boolean"/>
      <!-- operation response element -->
      <element name="backgrounds" type="form:background"/>
      <!-- operation response element -->
      <element name="forms" type="form:document"/>
      <!-- operation response element -->
      <element name="forms-info" type="form:document-info"/>
    </schema>
    </types>
    <message name="login">
    <part name="login" element="form:login"/>
    <part name="password" element="form:password"/>
    </message>
    <message name="uuid-response">
    <part name="result" element="form:result"/>
    <part name="uuid" element="form:uuid"/>
    </message>
    <message name="quit">
    <part name="session" element="form:session"/>
    </message>
    <message name="response">
    <part name="result" element="form:result"/>
    </message>
    <message name="new-form">
    <part name="session" element="form:session"/>
    <part name="aform" element="form:aform"/>
    </message>
    <message name="free-form">
    <part name="session" element="form:session"/>
    <part name="uuid" element="form:uuid"/>
    </message>
    <message name="get-form">
    <part name="session" element="form:session"/>
    <part name="uuid" element="form:uuid"/>
    </message>
    <message name="document-response">
    <part name="result" element="form:result"/>
    <part name="form" element="form:form"/>
    </message>
    <message name="get-file">
    <part name="session" element="form:session"/>
    <part name="md5" element="form:md5"/>
    </message>
    <message name="data-response">
    <part name="result" element="form:result"/>
    <part name="data" element="form:data"/>
    </message>
    <message name="set-file">
    <part name="session" element="form:session"/>
    <part name="md5" element="form:md5"/>
    <part name="data" element="form:data"/>
    </message>
    <message name="file-exists">
    <part name="session" element="form:session"/>
    <part name="md5" element="form:md5"/>
    </message>
    <message name="exists-response">
    <part name="result" element="form:result"/>
    <part name="exists" element="form:exists"/>
    </message>
    <message name="list-form-backgrounds">
    <part name="session" element="form:session"/>
    <part name="uuid" element="form:uuid"/>
    </message>
    <message name="list-backgrounds-response">
    <part name="result" element="form:result"/>
    <part name="backgrounds" element="form:backgrounds"/>
    </message>
    <message name="list-forms">
    <part name="session" element="form:session"/>
    </message>
    <message name="list-forms-response">
    <part name="result" element="form:result"/>
    <part name="forms" element="form:forms"/>
    </message>
    <message name="list-forms-info">
    <part name="session" element="form:session"/>
    </message>
    <message name="list-forms-info-response">
    <part name="result" element="form:result"/>
    <part name="forms-info" element="form:forms-info"/>
    </message>
    <portType name="formPortType">
    <operation name="login">
      <documentation>Service definition of function form__login</documentation>
      <input message="tns:login"/>
      <output message="tns:uuid-response"/>
    </operation>
    <operation name="quit">
      <documentation>Service definition of function form__quit</documentation>
      <input message="tns:quit"/>
      <output message="tns:response"/>
    </operation>
    <operation name="new-form">
      <documentation>Service definition of function form__new_form</documentation>
      <input message="tns:new-form"/>
      <output message="tns:uuid-response"/>
    </operation>
    <operation name="free-form">
      <documentation>Service definition of function form__free_form</documentation>
      <input message="tns:free-form"/>
      <output message="tns:response"/>
    </operation>
    <operation name="get-form">
      <documentation>Service definition of function form__get_form</documentation>
      <input message="tns:get-form"/>
      <output message="tns:document-response"/>
    </operation>
    <operation name="get-file">
      <documentation>Service definition of function form__get_file</documentation>
      <input message="tns:get-file"/>
      <output message="tns:data-response"/>
    </operation>
    <operation name="set-file">
      <documentation>Service definition of function form__set_file</documentation>
      <input message="tns:set-file"/>
      <output message="tns:response"/>
    </operation>
    <operation name="file-exists">
      <documentation>Service definition of function form__file_exists</documentation>
      <input message="tns:file-exists"/>
      <output message="tns:exists-response"/>
    </operation>
    <operation name="list-form-backgrounds">
      <documentation>Service definition of function form__list_form_backgrounds</documentation>
      <input message="tns:list-form-backgrounds"/>
      <output message="tns:list-backgrounds-response"/>
    </operation>
    <operation name="list-forms">
      <documentation>Service definition of function form__list_forms</documentation>
      <input message="tns:list-forms"/>
      <output message="tns:list-forms-response"/>
    </operation>
    <operation name="list-forms-info">
      <documentation>Service definition of function form__list_forms_info</documentation>
      <input message="tns:list-forms-info"/>
      <output message="tns:list-forms-info-response"/>
    </operation>
    </portType>
    <binding name="form" type="tns:formPortType">
    <SOAP:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="login">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="quit">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="new-form">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="free-form">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="get-form">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="get-file">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="set-file">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="file-exists">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="list-form-backgrounds">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="list-forms">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    <operation name="list-forms-info">
      <SOAP:operation style="rpc"/>
      <input>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </input>
      <output>
         <SOAP:body parts="parameters" use="literal" namespace="form"/>
      </output>
    </operation>
    </binding>
    <service name="form">
    <documentation>gSOAP 2.7.10 generated service definition</documentation>
    <port name="form" binding="tns:form">
      <SOAP:address location="https://enterprise-name-masked.com/cgi-bin/form.fcgi"/>
    </port>
    </service>
    </definitions>And here, you can find the generated errors :
    wsimport -s Sources -b http://www.w3.org/2004/08/xop/includ
    e -b http://www.w3.org/2004/11/xmlmime form.wsdl
    parsing WSDL...
    [WARNING] src-resolve: Cannot resolve the name 'xmime4:contentType' to a(n) 'attribute declaration' component.
      line 215 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
    [WARNING] s4s-elt-invalid-content.1: The content of 'Data' is invalid.  Element 'attribute' is invalid, misplaced, or occurs too often.
      line 215 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
    [WARNING] src-resolve.4.2: Error resolving component 'generic:result'. It was detected that 'generic:result' is in namespace 'generic', but components
    from this namespace are not referenceable from schema document 'file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP
    /WSImport/Test/Form/form.wsdl#types?schema2'. If this is the incorrect namespace, perhaps the prefix of 'generic:result' needs to be changed. If this
    is the correct namespace, then an appropriate 'import' tag should be added to 'file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Re
    cherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2'.
      line 230 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
    [WARNING] src-resolve: Cannot resolve the name 'xop:Include' to a(n) 'element declaration' component.
      line 213 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
    [WARNING] Ignoring SOAP port "form": it uses non-standard SOAP 1.2 binding.
    You must specify the "-extension" option to use this binding.
      line 533 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl
    [WARNING] Service "form" does not contain any usable ports. try running wsimport with -extension switch.
      line 531 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl
    generating code...
    compiling code...Could you tell me how to correctly generate my classes in this case ?
    Thank you.
    Edited by: morphet on May 30, 2008 6:12 AM

    Alchemista,
    Not sure if you were able to solve your problem..but I was trying to do exactly what you were trying to do.. access a datasource from a simple Java client. However, you cannot do so by simply writing the Java class and running it. The simple Java client has to be deployed as a J2EE Application Client. The following tutorial shows how to create a J2EE Application Client using the non-J2EE Java class you have written.
    http://developer.java.sun.com/developer/technicalArticles/J2EE/appclient
    The article talks about accessing EJBs from a J2EE App. Client.. but since you only want to access the DataSource, just skip all the screens until it asks you to register the JNDI DataSource resources...
    Let me know if you have any questions. You can email me at [email protected]
    I hope this helps.

  • WEB SERVICE PROXY GENERATED USING 11.1.1.5.0 WSDL FAILS WITH 11.1.1.6.0

    I have created a Web Service Proxy project in Jdev using BI Publisher 11.1.1.5.0 WSDL (ReportService). Generated ReportService_Service method uses following QName to get the port:
    namespaceURI = "http://xmlns.oracle.com/oxp/service/v2"
    localPart = "*v2/ReportService*"
    Reports are generated successfully via Web Services when using BI Publisher 11.1.1.5.0 but when I use BI Publisher 11.1.1.6.x, it fails with this exception:
    +'javax.el.ELException: javax.xml.ws.WebServiceException: {http://xmlns.oracle.com/oxp/service/v2}v2/ReportService is not a valid port. Valid ports are: {http://xmlns.oracle.com/oxp/service/v2}ReportService'+
    I noticed that if the Web Service Proxy project is created using BI Publisher 1.1.1.1.6.0 WSDL (ReportService), the generated ReportService_Service method uses following QName to get the port:
    namespaceURI = "http://xmlns.oracle.com/oxp/service/v2"
    localPart = "*ReportService*"
    We are supporting both 11.1.1.5.0 and 11.1.1.6.x, so is there a way to make it work with both.
    FYI, I have tried removing v2 but then it only works with 11.1.1.6.0 and fails with 11.1.1.5.0.
    +Caused By: javax.xml.ws.WebServiceException: {http://xmlns.oracle.com/oxp/service/v2}ReportService is not a valid port. Valid ports are: {http://xmlns.oracle.com/oxp/service/*v2}v2/*ReportService+

    Dear,
    found the solution (after trying last 1-2 days ...).
    I was already using java 1.7 update 7.
    I had to start java settings and to deselect Java 1.7.0_07.
    Instead I selected latest Java version from Apple: 1.6.0_35-b10-428.
    With these settings the installer finishes without crash.
    Kind regards
    Lorenz
    Edited by: Lorenz on Oct 4, 2012 1:47 PM

  • Invoking C# WS from java axis proxy generated from the same WSDL

    I am trying to transparently use the same java interface for invoking a java axis WS and a C# WS generated from the same WSDL interface.
    I believe the problem may be that the .NET web service which is generated from the WSDL file, is dynamically exposing a WSDL file which is not exactly the same as the original WSDL used to generate the abstract C# class with "wsdl.exe"
    When I try to invoke the C# web service with the java axis client I get the error message:
    "Server did not recognize the value of HTTP Header SOAPAction: ."
    Any suggestions about how to be able to use the same client interface from java, to invoke a C# web service and a java axis web service supporting (i.e. generated from) the same WSDL ?

    The JNI method name in the .h file is different to that in the .c file.

  • Full qualified host name not appearing in url within WSDL generated from PI

    Hi
       We are on PI711  ( AIX OS ) and are stuck with an issue of the fully qualifed hostname not appearing within WSDL file  generated in PI71 for a webservice it exposes using the Integration builder
    We changed the host name in exchange profile ( all locations ) from hostname to hostname.companyname.intra and also in the ABAP stack as recommended in all OSS notes.
    We use the Integration Directory --> Sender Agreement --> Display WSDL option to generate the WSDL.
    Its to be noted that all locations ( including url for WSDL ) have the fully qualified hostname except the url within the WSDL.
    Dioes anyone come across this issue/ know which parameters to be updated on the PI server to make the url within the WSDL for the PI webservice to have the fully qualified host name ?

    HI Karthik,
    As Mentioned by Baskar donu2019t use proposed URL .. while creating WSDL in Id.. but instead provide URL in following format and use it in that place and create WSDL.. details about URL format..
    the URL format is fix. and it is simple.
    http://host:HTTPPort/XISOAPAdapter/MessagingServlet?channel=party:sendersystem:CC_sender
    in above URL provide your sender service component name instead of sender system.
    and provide SOAP sender communication channel name in place of CC_sender
    provide your PI system host and http name in place of host and https and use this..
    for more details about URL..
    Propose URL when Configuring Sender SOAP Adpater
    soap url
    Thanks,
    Bhupesh

  • Best Practice for WSDL Generate Proxy Class for Web Service with Two Versions

    Dear All
    Thank you in advance for you help.
    I would like to generate proxy classes for same function but with two versions.
    Old version web service (v23.2) is used for stable modules in a project which is not going to modify.
    However, enhancement is added in new version web service (v24) and is going to use in any future modules.
    For example,
    wsdl.exe -o="TestProxy.cs" -l:CS -n:Test -sharetypes https://community.workday.com/custom/developer/API/Notification/v23.2/Notification.wsdl https://community.workday.com/custom/developer/API/Notification/v24.0/Notification.wsdl
    It generates similar classes with an '1' added at the end of the class name.
    ublic partial class Event_TargetObjectType {
    private Event_TargetObjectIDType[] idField;
    public partial class Event_TargetObjectType1 {
    private Event_TargetObjectIDType1[] idField; ...}
    Since the function inside some class is the same, is it possible for WSDL.exe to generate proxy classes automatically that if the class is the same, then generate one class only (sameFunction())  but if it detects the class is different, then add '1'
    to the end of class name (differentFunction() and differentFunction1())
    i.e.
    public class sameFunction()
    public class differentFunction()
    private int a;}
    public class differentFunction1()
    { private int b;
    Best Regards
    mintssoul

    Hi  mintssoul,
      As per this case, I have shared corresponding details below :
    1.As far as I know, WCF doesn’t support method overloading directly
    2.Because WSDL doesn’t support method overloading (not OOPs).
    3.WCF generates WSDL which specifies the location of the service and the operation or methods the service exposes.
    4.WCF use Document/Literal WSDL Style : Microsoft proposed this standard where the soap body element will contain the web method name.
    5.By default all the WCF services conform to the document literal standard where the soap body should include the method name.
    6.but you can differ the method in the same manually by using Name attribute like below 
    For example:
        [OperationContract(Name="Integers")]
        int Display(int a,int b)
        [OperationContract(Name="Doubles")]
    double Display(double a,double b)
    7. Or I suggest you that can use svcutil to map multiple namespaces for generating wcf service proxies .
        for more information about this, refer here :
    http://stackoverflow.com/questions/1103686/use-svcutil-to-map-multiple-namespaces-for-generating-wcf-service-proxies

  • How to generate doc/lit/wrapped services from existing wsdl?

    Hello,
    I am using workshop 10.1 to generate webservices from existing wsdl files from workshop 8.1. The existings webservices are based on an xmlbean utility project.
    When I generate the webservice from the existing wsdl file it generates automatically services with doc/lit/bare operations. I found in the known issues that this combination is not supported in combination with xmlbeans.
    See: CR283457
    XBeans are not supported as parameters or return type for doc/lit/bare operations.
    Use of Xbeans as a parameter or return type with doc/lit/bare bindings is not supported in operations or callbacks and will result in a failure during deployment.
    Platform: All
    Workaround: Use doc/lit/wrapped for services that use XBeans as parameters or return types.
    The workaround state to use doc/lit/wrapped for services. My questions is how to do that since workshop has all control over the generation of the webservices? ?:|
    Thanks in advance,
    Martijn Baels
    Software Architect
    www.leanapps.com

    Hi Martijn
    If you do generate web service from the wsdl on a 9.2 project, it always uses jax-rpc types and there's no xmlbeans involved.
    If the wsdl is in the schemas folder and the xmlbeans builder is on, then you also have xmlbeans types created by the builder they aren't being used by the web service. You will still have problems, because some of the xmlbeans types may conflict with the jax-rpc types.
    so when we generate webservice from a wsdl it will never use xmlbeans type, even if the xml builder is on, because WLS doesn't support start from wsdl with xmlbeans types.
    Can you please attach the wsdl and the steps so I can replicate and see the issue?
    Thanks
    Vimala

  • How do I Add Authentication to the WSDL generated?

    Hi Experts,
    I am creating web service in CAF to get All task assigned to a user using BPM API.
    The WSDL generated while testing from wsnavigator is picking up as a guest user even if I am entering the user details in invocation parameters.
    Can some one tell me how do I add authentication to the WSDL I have generated in CAF?
    Thanks in Advance
    Kumar.

    Hi Kumar,
    You Can find the above Section in : Go to http://hostname:port/nwa and open Configuration--->Connectivity --> Single Service Administration and open Service Definitions tab and select the application service for which you want to create the Authentication.
    Cheers
    Piyas

  • Generating Ruby Web Service Access Classes from a WSDL

    If you have tried to consume a web service from Ruby you surely have noticed how annoying is to write manually all the Ruby code just to invoke a service with complext input parameters' structure:
    - You have to know what do the input parameters, their structure and type look like;
    - You have to write Ruby classes for them to encapsulate the structures;
    - You have to instantiate these classes and pass the objects to the web service proxy class;
    - You have to interprete the output parameters.
    All this is not impossible of course, but if you are just consumer of the web service and not the developer, if you don't have the exact documentation, you have to read the WSDL description of the service and create the Ruby classes (structures) for the parameters.
    Fortunately there is a small, though handy tool, called <b>wsdl2ruby.rb</b>. It accomplishes all these boring tasks for you.
    In the following example I will try to show you how <b>wsdl2ruby</b> can be used to generate Ruby classes for accessing a SAP NetWeaver web service, called <b>CreditChecker1</b> (a web service for checking if a person is reliable credit consumer).
    To generate the necessary classes we will create a ruby script. Let us name it <b>ws2rgen.rb</b>. Here is what this file looks like:
    # Import the wsdl2ruby library.
    require 'wsdl/soap/wsdl2ruby'
    require 'logger'
    # Callback function for the WSDL 2 Ruby generation options.
    def getWsdlOpt(s)
         optcmd= {}
         s << "Service"
         optcmd['classdef'] = s
         #should work but doesn't, driver name is derived from classname
         #if you specify both it breaks, same thing for client_skelton
         #optcmd['driver'] = s
         optcmd['driver'] = nil
         #optcmd['client_skelton'] = nil
         optcmd['force'] = true
         return optcmd
    end
    # Create logger.
    logger = Logger.new(STDERR)
    # Create WSDL2Ruby object and generate.
    worker = WSDL::SOAP::WSDL2Ruby.new
    worker.logger = logger
    # WSDL file location.
    worker.location = "http://mysapserver:53000/CreditChecker1/Config1?wsdl"
    # Where to generate.
    worker.basedir = "temp"
    # Set options.
    worker.opt.update(getWsdlOpt("Service"))
    # Heat.
    worker.run
    The procedure is straightforward. First we create the WSDL2Ruby object, set its properties <b>location</b> and <b>basedir</b> and then set all other options via the callback function <b>getWsdlOpt()</b>. For further information about these parameters one could consult the source code of wsdl2ruby or contact the developers. Nevertheless the default options are pretty satisfactory. With the last line we start the generation. Two Ruby files will be generated in the <b>temp</b> folder, which is a subfolder of the script's current folder. <b>Please, create the folder "temp" before executing the script.</b>
    This generates two files. The first one is <b>CreditChecker1Wsd.rb</b>, containing the necessary data structures:
    require 'xsd/qname'
    # {urn:CreditChecker1Vi}areReliable
    class AreReliable
      @@schema_type = "areReliable"
      @@schema_ns = "urn:CreditChecker1Vi"
      @@schema_qualified = "true"
      @@schema_element = [["persons", "ArrayOfPerson"]]
      attr_accessor :persons
      def initialize(persons = nil)
        @persons = persons
      end
    end
    # {urn:CreditChecker1Vi}areReliableResponse
    class AreReliableResponse
      @@schema_type = "areReliableResponse"
      @@schema_ns = "urn:CreditChecker1Vi"
      @@schema_qualified = "true"
      @@schema_element = [["response", ["ArrayOfboolean", XSD::QName.new("urn:CreditChecker1Vi", "Response")]]]
      def Response
        @response
      end
      def Response=(value)
        @response = value
      end
      def initialize(response = nil)
        @response = response
      end
    end
    # {urn:CreditChecker1Vi}isReliable
    class IsReliable
      @@schema_type = "isReliable"
      @@schema_ns = "urn:CreditChecker1Vi"
      @@schema_qualified = "true"
      @@schema_element = [["person", "Person"]]
      attr_accessor :person
      def initialize(person = nil)
        @person = person
      end
    end
    # {urn:CreditChecker1Vi}isReliableResponse
    class IsReliableResponse
      @@schema_type = "isReliableResponse"
      @@schema_ns = "urn:CreditChecker1Vi"
      @@schema_qualified = "true"
      @@schema_element = [["response", ["SOAP::SOAPBoolean", XSD::QName.new("urn:CreditChecker1Vi", "Response")]]]
      def Response
        @response
      end
      def Response=(value)
        @response = value
      end
      def initialize(response = nil)
        @response = response
      end
    end
    # {urn:java/lang}ArrayOfboolean
    class ArrayOfboolean < ::Array
      @@schema_type = "boolean"
      @@schema_ns = "http://www.w3.org/2001/XMLSchema"
      @@schema_element = [["boolean", ["SOAP::SOAPBoolean[]", XSD::QName.new("urn:java/lang", "boolean")]]]
    end
    # {urn:com.sap.scripting.test.services.creditchecker.classes}Person
    class Person
      @@schema_type = "Person"
      @@schema_ns = "urn:com.sap.scripting.test.services.creditchecker.classes"
      @@schema_element = [["age", "SOAP::SOAPInt"], ["name", "SOAP::SOAPString"], ["purse", "Purse"]]
      attr_accessor :age
      attr_accessor :name
      attr_accessor :purse
      def initialize(age = nil, name = nil, purse = nil)
        @age = age
        @name = name
        @purse = purse
      end
    end
    # {urn:com.sap.scripting.test.services.creditchecker.classes}Purse
    class Purse
      @@schema_type = "Purse"
      @@schema_ns = "urn:com.sap.scripting.test.services.creditchecker.classes"
      @@schema_element = [["color", "SOAP::SOAPString"], ["money", "Money"]]
      attr_accessor :color
      attr_accessor :money
      def initialize(color = nil, money = nil)
        @color = color
        @money = money
      end
    end
    # {urn:com.sap.scripting.test.services.creditchecker.classes}Money
    class Money
      @@schema_type = "Money"
      @@schema_ns = "urn:com.sap.scripting.test.services.creditchecker.classes"
      @@schema_element = [["amount", "SOAP::SOAPDouble"], ["currency", "SOAP::SOAPString"]]
      attr_accessor :amount
      attr_accessor :currency
      def initialize(amount = nil, currency = nil)
        @amount = amount
        @currency = currency
      end
    end
    # {urn:com.sap.scripting.test.services.creditchecker.classes}ArrayOfPerson
    class ArrayOfPerson < ::Array
      @@schema_type = "Person"
      @@schema_ns = "urn:com.sap.scripting.test.services.creditchecker.classes"
      @@schema_element = [["Person", ["Person[]", XSD::QName.new("urn:com.sap.scripting.test.services.creditchecker.classes", "Person")]]]
    end
    The second file is <b>CreditChecker1WsdDriver.rb</b>. In it you can find a generated child class of SOAP::RPC::Driver, containing all methods of this web service, so you don't need to add every method and its parameters to call the web service.
    require 'CreditChecker1Wsd.rb'
    require 'soap/rpc/driver'
    class CreditChecker1Vi_Document < ::SOAP::RPC::Driver
      DefaultEndpointUrl = "http://mysapserver:53000/CreditChecker1/Config1?style=document"
      MappingRegistry = ::SOAP::Mapping::Registry.new
      Methods = [
      def initialize(endpoint_url = nil)
        endpoint_url ||= DefaultEndpointUrl
        super(endpoint_url, nil)
        self.mapping_registry = MappingRegistry
        init_methods
      end
    private
      def init_methods
        Methods.each do |definitions|
          opt = definitions.last
          if opt[:request_style] == :document
            add_document_operation(*definitions)
          else
            add_rpc_operation(*definitions)
            qname = definitions[0]
            name = definitions[2]
            if qname.name != name and qname.name.capitalize == name.capitalize
              ::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg|
                __send__(name, *arg)
              end
            end
          end
        end
      end
    end
    There is a problem with this script, since the <b>Methods</b> array is empty. I suppose it is due to the imports in the SAP NetWeaver WSDL, maybe wsdl2ruby is not mighty enough to handle these WSDL imports. When I succeed in overcoming this, I will post again in this thread to let everybody know.
    Message was edited by: Vasil Bachvarov

    Hi,
    I find Ruby to be really tough to consume SAP WebServices. For simple scenarios like currency conversion may it is good. But for complex scenarios such as Purchase Order entry etc..I found it very annoying to use wsdl2ruby and see that it didnt generate correct proxies.
    Until wsdl2ruby is stable enough to support complex datatypes, authentication etc. my recommendation is to use JRuby and use Java Proxies generated by NW Developer studio until pure Ruby's web service support improves.
    Following link might be of interest w.r.t wsdl2ruby
    http://derklammeraffe.blogspot.com/2006/08/working-with-wsdl2r-soap4r-and-complex.html
    Regards
    Kiran

  • Error when importing WSDL generated in XI

    Hi,
    i want to import a wsdl, that i have generated in xi, into the developer studio.
    The ds says all the time: "Problems while generating the Proxy definiton".
    When i am testing the wsdl with xmlspy, everthing is ok.
    Do i have to change something in the wsdl when i generate it in xi?
    My scenario is SOAP->XI->IDOC. Communication with soap will be over an external webservice.
    thanks,
    Carsten

    Hi,
    >>>>Do i have to change something in the wsdl when i generate it in xi?
    yes page 12:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79
    >>>>My scenario is SOAP->XI->IDOC. Communication with soap will be over an external webservice.
    in this case it's not an external WS but internal (on XI)
    the call is only made from external client
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

Maybe you are looking for

  • 0000 on the end of a subTexture name in the sprite sheet generator

    How can I get rid of the 0000 on the end of a subTexture name in the .xml atlas file created sprite sheet generator? (I'm using the Sparrow v2 option) is there anyway to stop that form being tacked on? Thanks for any help.

  • Value in new depreciation area is Zero

    Hello All, I have created a new depreciation area 11. In OABC it is set as 01 (values from book depreciation). In OAYZ, I have assigned the new depreciation area to new asset classes. Then I transferred to value from old assets to new assets by ABUMN

  • How to define a report manager ?

    Hello Friends, I'm a newbie to Oracle Apps R12. I have created a user TEST and have assigned responsibilities : General Ledger User, General Ledger Super User, Financial Management, Report Manager, Report Manager Public Reports. But when i try to run

  • IPhoto.db and others VERY DIFFICULT QUESTION!

    I have an "iPhoto library" folder which contains an iPhoto.db file. What is this file? Then within this folder there are some other folders: let say one is called "Laura" which contains: .ipspot / iPhotoLock.data / Library.data / Library.iPhoto / Lib

  • I cannot Get Media after seeing thumbnails when trying to import from iPhone. Why?

    I connect my iPhone to my PC and open Photoshop Elements 11 Organizer. I click Import and select my iPhone (using current iOS version). It searches and finds all photos. I click get media and I get the following error: "Elements cannot obtain files f