How to save web service request key and response value in cache to reduce calling the service for same type of requests

Hi
I have a web service which return the response based on the request key.
I need to save the key and the response value in cache for around 30mins
 to reduce the web service calls for better performance.
Appreciate if any once can share a sample code

using System.Runtime.Caching;
public List<string> cachingwebserviceresponse()
{//Create a cache key
string strParameters = "1234";//Create a cache value holding object
List<string> results = new List<string>();//Create a cache
ObjectCache cache = MemoryCache.Default;//Assign key for the cache
string cacheKey = strParameters;//Check whether the key exists in the cache//If exists assign the values from the cache instead of calling the webservice//else call the web service and add the response to the cache
if (cache.Contains(cacheKey))
results = cache.Get(cacheKey);
else
{ //calling the web service client
using (service.webservice fd = new service.webserviceContractClient())
{ //Call the web service function to get the results
results = fd.DataSearch(strParameters);
} //Create the cache expiration policy. I have created for 30 minutes.
CacheItemPolicy cacheItemPolicy = new CacheItemPolicy();
cacheItemPolicy.AbsoluteExpiration = DateTime.Now.AddMinutes(30); //Add the response to the cache based on the key
cache.Add(cacheKey, results, cacheItemPolicy);
return results;

Similar Messages

  • How to create web service for database application

    Hi everyone
    Is it possible to create a web service for an apex database application page which has reports and radio fields and dialog boxes and validations in it. IF it is possible to create, pls help me with example or step by step procedure. I have seen all oracle docs of implementation of Web services in apex but unable to figure out how to get that link of wsdl for an application.
    Thanks in advance.
    Regards
    Sandeep Artham

    Hi,
    I guess there are other ways. But this is an easy way, if you find the right wizards.
    Besides this it is good practise to define interface methods so that session bean implement these interface methods, and thus seperate the interface from the implementation.
    In this approach you will need 3 projects:
    An enterprise application project (will contain EJB Module)
    An EJB Module project (will contain session bean)
    A Java project (contains code that implements the session bean methods)
    In my previous post I suggested to use a J2EE web mudule project. This was a mistake, it should be EJB module.
    But it should be possible to do it in another way. It is up to you.
    Good luck, Roelof

  • How to generate web services for OAS with wsdl extension

    Hi,
    I wanted to know how to generate web services from Oracle Application Server especially with .wsdl extension and with document/literal style.
    I know that earlier there was a tool called SmartConnect from BEA WebLogic.
    But that will work only with ALSB (Aqua logic Service Bus). I guess that ALSB has been renamed as Oracle Service Bus by Oracle after the acquisition of WebLogic. My question is what is the new name for the SmartConnect Tool from WebLogic, which generates wsdl very easily from Oracle database.
    I am unable to know the new name for SmartConnect and how to download that tool from Oracle web site.
    Also, I want to know, whether there is any other way to generate the wsdl from Oracle, if so, please let me know.
    Regards
    Raman

    Hi Jeethandra,
    Please refere to the below link might be some help.
    [http://help.sap.com/saphelp_mdmgds55/helpdata/en/45/069152856241e1e10000000a1553f6/frameset.htm]
    regards
    shankar

  • How to create web service for a Java class in SAP NetWeaver Studio

    hi all,
    i am using SAP Netweaver Developer Studio.have created a normal java project and i want to create web service for one of the classes in this project. i used the  Web Service Creation Wizard to create a web service for this class. but it says there's no methods available for VI. all my methods in this class are public, what should i do?

    Hi,
    I guess there are other ways. But this is an easy way, if you find the right wizards.
    Besides this it is good practise to define interface methods so that session bean implement these interface methods, and thus seperate the interface from the implementation.
    In this approach you will need 3 projects:
    An enterprise application project (will contain EJB Module)
    An EJB Module project (will contain session bean)
    A Java project (contains code that implements the session bean methods)
    In my previous post I suggested to use a J2EE web mudule project. This was a mistake, it should be EJB module.
    But it should be possible to do it in another way. It is up to you.
    Good luck, Roelof

  • How to enable Web services for CP 1525nw

    Hi,
    I am unable to use ePrint for LaserJet CP 1525nw. Printer connected over WiFi. Tried to Enable Web services and saw the message "Connection error Check connection". Firmware is up-to-date. Use the printer in different applications on PC, iPad and iPhone. Everything is working well not ePrint. HP diagnostics did not describe any problems.

    Hello Prophet097,
    Setting manual network information may help the enabling of Web Services for ePrint on your printer.
    To do so:
    On the printer's control panel, press "OK" two times to access the reports menu.
    Press the right arrow to select "Network Summary" and press "OK" to print the report.
    Open an internet browser on a computer within the same network as the printer.
    In the address bar, type the printer's "IPv4 Address" and press "Enter", this should take you to a page about your printer.
    Click on the "Network" tab at the top of the page.
    Click on "IPv4 Configuration" on the left-hand side.
    Click the bubble to the left of "Manual" to allow you to input manual settings.
    Input the same information from the "Network Summary" into the fields for "IP Address", "Subnet Mask", and "Default Gateway".
    Note- None of those fields should be "0.0.0.0"0 or "169.254.xx.xx". If they are, there maybe network issues with the printer.
    In the "Preferred DNS Server" and "Alternate DNS Server", this could vary by the size of your network.
    -Preferred DNS Server- If you are on a small network, input the same value as the "Default Gateway".
    -Alternate DNS Server- If you are on a small network, input either "0.0.0.0" or "8.8.8.8."
    Note- If you are on a domain, you may have specific DNS Server information that needs to be in the fields. 
    Click "Apply" on the page.
    Power the printer off and then on.
    Try to enable Web Services again.
    If I have solved your issue, please feel free to provide kudos and make sure you mark this thread as solution provided!
    Although I work for HP, my posts and replies are my own opinion and not those of HP.

  • How to generate web services for MDM Taxanomy Tables?

    Hi Experts,
    I have a Taxonomy table called eClass in material repository which contains the Hierarchical data. The data[Attributes of this table ] can be seen only in Taxonomy Mode, I want to generate the web service using MDM Web Service Generator. The service should perform the CRUD operation over this table and retrieve the attributes. I generated the service for this table but I am not able to retrieve the attributes. Please help me out for this situations. Any pointers regarding this will be appreciated.
    Thanks & Regards
    Jeetendra

    Hi Jeethandra,
    Please refere to the below link might be some help.
    [http://help.sap.com/saphelp_mdmgds55/helpdata/en/45/069152856241e1e10000000a1553f6/frameset.htm]
    regards
    shankar

  • How to enable web services for the HP envy 4500

    I am settin up my new HP ENVY 4500, have the printer working to my wireless rounter but am unable to connect to web services so I can update the printer. How do I do this?

    Hi,
    Have you activated it yet ? Looks like the setup is not right or missing, it's not connected to the internet.  Please use the following tool to run the setup:
        http://ftp.hp.com/pub/softlib/software12/COL50403/​mp-122330-1/hppiw.exe
    Regards.
    BH
    **Click the KUDOS thumb up on the left to say 'Thanks'**
    Make it easier for other people to find solutions by marking a Reply 'Accept as Solution' if it solves your problem.

  • How to creat web service for a function module?

    who can provide me some resource on the topic.
    thanks
    Johnney.

    Hi John,
    http://help.sap.com/saphelp_nw04/helpdata/en/e9/ae1b9a5d2cef4ea4b579f19d902871/content.htm
    Reward Points if Useful
    All the Best
    Gokul

  • Issue in creating web service for a ABAP Function Module

    Hi,
    now i'm learning how to create web service for a ABAP Function Module. I used the following steps.
    1. select the Function Module, named "zws_test".
    2. in the context menu, select "create->proxy object". so we enter into wizard.
    3. in the wizard, press the radio button "Service Provider".
    4. in the next page, press the radio button "Existing ABAP Objects(Inside Out)".
    5. In the next page, Enter the "zws_test_prvider" as Service Definition and select "Function Module" as Endpoint Type.
    6. in the next page, enter "zws_test" as Function Module and mark the "Mapping der Namen" button
    7. in the next page,select "PRF_DT_IF_SEC_LOW" as Profile and mark "Deploy Service".
    8. Save in the local package.
    9. then it will pop up a window with title "WSDL Source". i selected "URL/HTTP Destination" and press "OK".
    10.in the next page, i enter the URL as "http://hostname:portnumber/", and press "OK".
    11. then it will pop up a window with title "Display logs". A record with error message "HTTP error(return code 404, message "Not found")" appears.
    12. i press "ok" and a service provider with name "zws_test_prvider" appears in my local package.
    13. i use "zws_test_prvider"'s URL to create a service consumer "ZCO_WS_TEST_CONSUMER" and logic portal "LP1".
    14. But when i test my service consumer "ZCO_WS_TEST_CONSUMER", it will throw an exception "cx_ai_system_fault" with errortext "SOAP:14 Unexpected element -el=definitions ns=http://schemas.xmlsoap.org/wsdl/".
    15. I use t-code SM59 to test connection  and get the following info.
          Status HTTP Response     200
          Status Text                      OK
          Duration Test Call             328 ms.
    who can give me the reasons about item 11 and 14, and explain me how to create service provider and service consumer for a Function Module.
    Thanks in advance
    Johnney

    have you seen this weblog
    /people/thomas.jung3/blog/2004/11/15/bsp-150-a-developer146s-journal-part-xiii-developing-abap-webservices

  • (261680070) Q SYNCH-11 How do my web service methods accees EJBs and java classes?

    A<SYNCH-11> How do my web service methods accees EJBs and java classes?
    A<SYNCH-11> It is simple to use java classes, just do it as you would ordinarily.
    The .jws file really contains a simple class so you can program with it in the same
    way that you would use a regular Java class.
    To use an EJB you can go and access it directly as you would with any EJB remote
    client (lookup home stub, create, etc) or if the EJB is deployed to WLS you can use
    a control to provide a very simple wrapper to the EJB. We will see this in detail
    on Thursday in the ADVC module.

    Futher information about the possibility of callback:
    It may be possible for a synchronous only web service (i.e. MS .net) to even paticipant
    in the callback functionality of asynchronous web services. If the client implements
    the appropriate methods for the callback but listens for them on a different port
    or binding than the SOAP request, then web service may be able to build a response
    if the client's "callback URL" is submitted as the beginning part of a conversation.
    Watch the BEA developer forum (http://dev2dev.bea.com) for more information about
    this approach and other tips and techniques for building web services.
    "Adam FitzGerald" <[email protected]> wrote:
    >
    Q<SYNCH-03> I heard that MS .net only implements synchrnonus method? If
    this is true.
    Does it means my async methods will only work with J2EE clients?
    A<SYNCH-03> I do not know the limitations of .net but let me point out that
    is very
    difficult to provide asynchronous web service method invocation (this is
    different
    from an asynchronous web service). HTTP as a general communication protocol
    is based
    on a request and response paradigm so your client libraries will mostly
    likely be
    expecting a response even if it is empty (check the asynchronous example
    from today
    to see that the start method still returns an empty response). You must
    distinguish
    this from the notion of an asynchronous web service which is a business
    operation
    that occurs on the server whose return value/result is not directly associated
    with
    building response to the client. An asynchronous web service can (and generally
    will)
    be started and stopped with web service operations that are invoked synchronously.
    Thus MS .net clients can still be client to WLS hosted web services.

  • How to create Web Service as a source system in BI and configure a DS

    Hello,
    I was wondering if you can give me the links to information where it is explained how to create Web Service as a source system in BI 7 NW 2004s and also how to create a data source that would read data from that Web Service?
    Thanks,
    AG

    Hi AG.
    Please check the following documentation which talk about this questions.
    [Creating Web Service Source System|http://help.sap.com/saphelp_nw70/helpdata/EN/80/1a618ae07211d2acb80000e829fbfe/frameset.htm]
    [Creating DataSources for WebServices|http://help.sap.com/saphelp_nw70/helpdata/EN/43/ec90a315434c5de10000000a155369/frameset.htm]
    [Transfering Data Using WebServices|http://help.sap.com/saphelp_nw70/helpdata/EN/80/1a618ae07211d2acb80000e829fbfe/frameset.htm]
    I hope that I can be helpful.
    Thanks,
    Walter Oliveira.

  • How to retrieve web service results that are stored in an array?

    Hi, everyone,
    I am using a manually created web service reference in APEX3.0.1 to call an external web service for a simple company search. Here is the WSDL:
    http://ws.strikeiron.com/DnBBusinessProspectLinkage2?WSDL
    The web referene is tested fine. And here is a sample test result:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Header xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <SubscriptionInfo xmlns="http://ws.strikeiron.com">
    <LicenseStatusCode>0</LicenseStatusCode>
    <LicenseStatus>Valid license key</LicenseStatus>
    <LicenseActionCode>7</LicenseActionCode>
    <LicenseAction>No hit deduction for invocation</LicenseAction>
    <RemainingHits>4921</RemainingHits>
    <Amount>0</Amount>
    </SubscriptionInfo>
    </Header>
    <soap:Body>
    <CompanySearchResponse xmlns="http://www.strikeiron.com">
    <CompanySearchResult>
    <ServiceStatus>
    <StatusNbr>213</StatusNbr>
    <StatusDescription>Successful search</StatusDescription>
    </ServiceStatus>
    <ServiceResult>
    <Count>2</Count>
    <CandidateCompanies>
    <CandidateCompany>
    <CompanyName>MSC SOFTWARE CORPORATION</CompanyName>
    <StreetAddress>2 MACARTHUR PL</StreetAddress>
    <City>SANTA ANA</City>
    <State>CA</State>
    <PostalCode>927075924</PostalCode>
    <Phone>7145408900</Phone>
    <CountryCode>US</CountryCode>
    <BranchIndicator>Headquarters</BranchIndicator>
    <TradingName />
    <ConfidenceCode>8</ConfidenceCode>
    <MatchGrade>BAAAAZZ</MatchGrade>
    <MatchNameGrade>Similar</MatchNameGrade>
    <MatchNamePercent>62</MatchNamePercent>
    <MatchStreetNumberGrade>Same</MatchStreetNumberGrade>
    <MatchStreetNumberPercent>100</MatchStreetNumberPercent>
    <MatchStreetNameGrade>Same</MatchStreetNameGrade>
    <MatchStreetNamePercent>100</MatchStreetNamePercent>
    <MatchCityGrade>Same</MatchCityGrade>
    <MatchCityPercent>100</MatchCityPercent>
    <MatchCountryStateGrade>Same</MatchCountryStateGrade>
    <MatchCountryStatePercent>100</MatchCountryStatePercent>
    <MatchPOBoxGrade>Not provided</MatchPOBoxGrade>
    <MatchPOBoxPercent>-1</MatchPOBoxPercent>
    <MatchPhoneGrade>Not provided</MatchPhoneGrade>
    <MatchPhonePercent>-1</MatchPhonePercent>
    </CandidateCompany>
    <CandidateCompany>
    <CompanyName>TYRA TECHNOLOGIES, INC</CompanyName>
    <StreetAddress>2 MACARTHUR PL</StreetAddress>
    <City>SANTA ANA</City>
    <State>CA</State>
    <PostalCode>927075924</PostalCode>
    <Phone>7145408900</Phone>
    <CountryCode>US</CountryCode>
    <BranchIndicator>Headquarters</BranchIndicator>
    <TradingName />
    <ConfidenceCode>8</ConfidenceCode>
    <MatchGrade>BAAAAZZ</MatchGrade>
    <MatchNameGrade>Similar</MatchNameGrade>
    <MatchNamePercent>62</MatchNamePercent>
    <MatchStreetNumberGrade>Same</MatchStreetNumberGrade>
    <MatchStreetNumberPercent>100</MatchStreetNumberPercent>
    <MatchStreetNameGrade>Same</MatchStreetNameGrade>
    <MatchStreetNamePercent>100</MatchStreetNamePercent>
    <MatchCityGrade>Same</MatchCityGrade>
    <MatchCityPercent>100</MatchCityPercent>
    <MatchCountryStateGrade>Same</MatchCountryStateGrade>
    <MatchCountryStatePercent>100</MatchCountryStatePercent>
    <MatchPOBoxGrade>Not provided</MatchPOBoxGrade>
    <MatchPOBoxPercent>-1</MatchPOBoxPercent>
    <MatchPhoneGrade>Not provided</MatchPhoneGrade>
    <MatchPhonePercent>-1</MatchPhonePercent>
    </CandidateCompany>
    </CandidateCompanies>
    </ServiceResult>
    </CompanySearchResult>
    </CompanySearchResponse>
    </soap:Body>
    </soap:Envelope>
    Here is my xpath defined in the report:
    /CompanySearchResponse/CompanySearchResult/ServiceResult/CandidateCompanies
    According to the WSDL file, the candidate companies are stored in an array. I am having problem to retrieve this values from the array. The web service ref is called but it returns nothing.
    Anyone in the forum can tell me what I did wrong?
    Thanks in advance!
    Jeff

    Hi, did you manage to figure this out? I'm having a similar problem with arrays.
    Also, i'm looking at how I can pass an array of values as input to the webservice call.. eg if I were calling a stock ticker service that allows you to supply a list of tickers as input so that you can get all your responses in one call. Anyone any thoughts on that?
    Cheers,
    Paul.

  • How to consume WEB SERVICES from ABAP ??

    Q: How to consume WEB SERVICES from ABAP program??
         the point here is i am using SAP release 620 and the creation of proxy is out of scenario
         and also no XI.    Its only through ABAP program i need to consume one web service (its a HTTPS one ),
        Using cl_http_client... i tried it but i am totally confused of whats happening ???
    Req some senior ppl advice on the same/approach.
    any hints will suffice my way of approach...!!!
    Please do put in your valuable advices..!!
    Thanks in advance..!!!!

    Hello Srinivas,
    Following is the code for calling web service:
    data: client type ref to if_http_client,
          host   type string value 'server url',
          service type string value '8080',
          path type string value '/sap/public/ping',
          errortext type string,
          proxy_service type string,
          scheme type i value 1.
    call method cl_http_client=>create
    exporting host  = host
            service  = service
         proxy_host  = host
       proxy_service = service
       scheme        = scheme
    importing client  = client
    exceptions
        argument_not_found = 1
        internal_error     = 2
        plugin_not_active  = 3
        others             = 4.
    case sy-subrc.
      when 0.
         write 'Server reached successfully'.
      when others.
         write: 'sy-subrc =', sy-subrc.
    endcase.
    Once you got the client object you can call following methods:
    "Set the requrie URL for the web service you want to call. This is not WSDL anyway!!
    cl_http_utility=>set_request_uri( request = client->request
    uri =' url 2 be called ').
    *Then you can call send method with proper inputs for sending request to WS
    CALL METHOD client->send
    Then you can use receive method for getting the response
    CALL METHOD client->receive
    *You can get last error in case of exceptions
    CALL METHOD cl_http_client=>get_last_error
    *Close the client object
    CALL METHOD client->close
    For more information on full code refer my link in previous replay.
    Thanks,
    Augustin.
    Edited by: Augustarian on Aug 18, 2009 1:49 PM

  • How to consume web service in Agentry in SMP 3.0

    Dear All , I am using web service in Agentry to retrive data but could not able to fetch it . I have made connection with HTTP-XML for consuming webservices. and also give proper information in Agentry.ini files Ex : [HTTPXML-2] name=HTTP-XML Back End authenticationCertificateStore=MY authenticationCertificateStorePassword= authenticationCertificateStorePasswordEncoded=false autoDequote=true ;baseURL=http://localhost:81 baseURL=http://sapes1.sapdevcenter.com:8080/sap/opu/odata/iwbep/gwdemo/ basicAuthenticationPassword=123456 basicAuthenticationPasswordEncoded=false basicAuthenticationUserID=P1466405733 constantsFile=httpxml_sd.ini enableAuthentication=false enablePreviousUserAuthentication=false httpConnectTimeout=300 httpReceiveTimeout=300 httpResolveTimeout=300 httpSendTimeout=300 listenOn= timeout=300 timeZoneName= useSSL=false xmlAllowXSLTScript=true xmlNamespaces= xmlResolveExternals=true xmlValidateOnParse=true for more information i have attached agentry XML screen shot as well . Can you please guide me how to consume web services in Agentry correct way ? Note : Currently i am using standard netweaver demo web services . Thanks & Regards ,   Kunal Varaiya
    Tags edited by: Michael Appleby

    The XML Steps URL will be added to the Agentry.ini BaseURL.  So you dont' need the full URL on the step.
    So when Agentry Runs the step to call the backend it will go:
    <BaseURL>/<Step's URL>
    This way if you need to change the base URL, IE, going from Dev to QA to Production Server you only need to change the Base, and not go into every step and update it.
    URL: This attribute contains the URL to which the Agentry Server will make a request. This value will be appended to the value configured as the base URL for the HTTP-XML system connection. This base URL is configured within the HTTP-XML system connection configuration options for the Agentry Server. Proper use of both this base URL option and the URL entered in the requests of the step definitions can support portability for the application, with the base URL being the implementation-specific portion and the step’s URL being the portion not likely to change for the same back end system from one implementation to the next.
    http://help.sap.com/saphelp_smp303sdk/helpdata/en/7c/143d5d70061014b323be16eb0b0a77/frameset.htm 
    Stephen

  • 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.

Maybe you are looking for

  • New Build odd bios issue

    Intel i5-2500k Z68A-GD80 (G3) Corsair Vengeance 2x4GB CMZ8GX3M2A1600C9B Corsair TX750 V2 +12V~62A, +5V~25A, +3.3V~25A XFX Double D HD 7950 Black Edition 3GB DDR5 PCIe Corsair Force GT Series SDD 120GB Sata 3 Lite On DVD/CW Writer, iHAS424, Light scri

  • Flash Builder Link Problem

    Whenever I try to access links in Flash Builder such as those on the Start Page, Device Connection Help in Run Configurations or even Find and Download other versions of Flex SDK in the Flex Configuration window it opens up a blank Notepad window wit

  • Recording external synth/drum machine - What should the highest peak be?

    Hi, When recording the audio from an external synth/drum machine what should the highest peak be? At the moment I have been recording as loud as possible without clipping but is it better to leave a few DB of headroom if using compressors etc afterwa

  • What is the restriction

    hi when i go to setting<general<restriction what is it? what is the restriction??

  • Dreamweaver CS4 Flash Problem

    I added a video that i created with Adobe premiere. the problem that i'm having is thats i can't play this video in live view or when i view it in foxfire. I can see the movie anywhere else but flash. Dreamweaver gives me this message. Unable to find