Publish Abap Web Service in ICF virtual host

Hello
We have configured our abap aplication server with two virtual host in SICF
one the default_host that listen in http 8080 port and other virtual host that
listen in http 8090 port.
We need define some ABAP web services that listen in default_host:8080  and other virtual host in virtualhost2:8090.
We define de web service with SE80 wizard and then create the configuration end point
with SOAMANAGER.
Our problem is that soamanager ever create the entrie of endpoint in sicf transaction, under default_host:8080 service tree not under virtualhost2 service tree. and so we can not call
the web service like http://virtualhost2:8090/sap/bc.... because don't exist, only exist
http://defaul_host:8080/sap/bc....
we try to copy the entry of the tree under virtualhost2 in the proper place of the tree,
but when call the webservice with soaui the system report the error:
     No Web service configuration for this access path: ""
i can see that there are entries in the table SRT_CFG_SRV_ASGN that are related with this
problem, because assign the url of the endpoint of the ws to virtual host, but i don't
know how the system generate this entries.
someone know how call ABAP web service with icf virtual host?
thanks
regards
diego

Hi Trevor
For test purpose i can do it works.
The key point is create the proper entry in the table SRT_CFG_SRV_ASGN that refer to the correct VIRTUAL_HOST.
When you genreate the endpoint of the service with soamanager, the system generate an entrty in this table with the fiel VIRTUAL_HOST = 0, you can copy this entry and change only two fields.
VIRTUAL_HOST = <the number of your virtual host>
HASH --> you can calculate this field with the FM CALCULATE_HASH_FOR_CHAR, in the parameter DATA contatenate the content of the fiels VIRTUAL_HOST and URL (be careful with the upercase), this function module return you the hash.
(First you have to replicate the icf tree that soamanager create under your virtual host tree)
With this configuration i can call to my WS over the virtaual host, using soaui.
I hope this can be useful for you.
Regards
diego

Similar Messages

  • ABAP Web service - Virtual Interface Not Found

    Hi,
    I have created a ABAP web service based on RFC. I changed the authentication to "Basic username/password" from SOAMANAGER. Also tested the web service from WSNAVIGATOR (of different portal) using WSDL url. Web service successfully returned response.
    Now, I have a AJAX client where I have hardcoded the request (from wsnavigator) and trying to call this web service in SAP BW web template (from HTML/JavaScript). But its not giving error as "Virtual Interface Not Found". Also, i get 500 error. But the end point of the web service if looked up from browser gives response. The SICF service is active and upon tests gives valid response.
    Found couple of discussions regarding this:
    http://wiki.sdn.sap.com/wiki/display/VC/VirtualInterfacenotfounderror
    But i'm not finding the setting to activate virtual interface in SE80. ALso, we have created many such web services and they used to work fine prior to upgrade to Ehp1 SP05 (BI) but the newly created web service is not working.
    Any inputs?
    Abhijeet

    Hi can you please let me know how you resolved this issue?

  • Calling abap web service from webdynpro

    hi,
    i have a problem in that i am trying to call an ABAP web service published from r/3 in webdynpro. when i browse to the url generated by the r/3 application server it asks for my r/3 user name and password (not to be confused with http proxy user name and password). now when i enter it, i can see the generated wsdl without a problem. pressing escape gives me the standard 401 error.
    please note this is the r/3 username and password which i am required to enter. when i try to get to the webservice in webdynpro. here is my code:
      public void wdDoInit()
        //@@begin wdDoInit()
        try
              Request_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1 reekvesta = new Request_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1();
              reekvesta._setPassword("userid");
              reekvesta._setUser("password");
              wdContext.nodeRequest_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1().bind(reekvesta);
              wdContext.currentRequest_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1Element().setWfKunnr("0000000011");
              wdContext.currentRequest_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1Element().modelObject().execute();
              wdContext.nodeResponse().invalidate();
        catch(Exception e)
              IWDMessageManager msgMrg = wdThis.wdGetAPI().getComponent().getMessageManager();
              String msg = e.getLocalizedMessage();
              if ((msg==null) || (msg.length()==0))
                   msg = e.getMessage();
              msgMrg.reportException(msg,true);         
        //@@end
    i have also tried it this way:
      public void wdDoInit()
        //@@begin wdDoInit()
        try
              Request_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1 reekvesta = new Request_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1();
    wdContext.nodeRequest_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1().bind(reekvesta);     wdContext.currentRequest_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1Element().modelObject()._setUser("userid");     wdContext.currentRequest_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1Element().modelObject()._setPassword("password");
    wdContext.currentRequest_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1Element().setWfKunnr("0000000011");
    wdContext.currentRequest_YYMJ_WS_TEST1_DEF1_yymjServiceWebTest1Element().modelObject().execute();
              wdContext.nodeResponse().invalidate();
        catch(Exception e)
              IWDMessageManager msgMrg = wdThis.wdGetAPI().getComponent().getMessageManager();
              String msg = e.getLocalizedMessage();
              if ((msg==null) || (msg.length()==0))
                   msg = e.getMessage();
              msgMrg.reportException(msg,true);         
        //@@end
    in both instances i get the error:
    Service call exception; nested exception is: com.sap.engine.services.webservices.jaxrpc.exceptions.InvalidResponseCodeException: Invalid Response Code: (407) Proxy authorization required
    please note
    1. i am trying to test this on my local sap j2ee server, on my workstation. i am not deploying this as of yet to the portal.
    2. i do have access to r/3.
    3. the r/3 application server is in our corporate intranet, and therefore excluded from being looked up by our proxy.
    4. our proxy DOES require a username and password. i added my user name and password to the webservice container section of the visual administrator, and excluded the r/3 server from the proxy list.
    what am i missing?

    Zafar,
    Check the endpoint in generated WSDL. Probably there is a host name that is not in "exclude list" for proxy settings (like IP vs host name, or FQDN vs short host name).
    Valery Silaev
    SaM Solutions
    http://www.sam-solutions.net

  • ABAP Web Services problem

    Hello everybody. I'm trying to publish a Web Service created in ABAP (R/3 6.0 release) in my JAVA WAS trial version 2004s. I'm following the ABAP Web Services tutorials (6.40) but when I try to create the Virtual Interface, in the SE80 from the context menu of Enterprise Services, there's no Virtual Interface option. Can anyone tell me how do I set up a Virtual Interface in 6.0 release of R/3 or how can I make it available in the context menu of SE80? Thanks in advance.

    Better try the methods get_asList... for tables.

  • Debugging ABAP web services

    Hello,
      I have an ABAP web service created from a remote enabled function module. The web service is called from a BSP application. How can I debug the code within the function module?
    I activated debugging for the web service in ICF. I set external breakpoint in the function module. However, the execution does not stop in the function module.
    Any ideas?
    thank you
    Benolin

    Hello,
    I found a way to debug my ABAP code called from the web service.
    I have an http connection configured in sm59 of type H. My proxy class uses this http destination to connect to the web service. Target host of this http destination is an application server of the R/3 system where my web service is available.
    If I logon to the ABAP system to this particular  application server and set breakpoints in my code, the execution stops at the breakpoints.
    Regards
    Benolin

  • Web Service Model for ABAP Web Service

    Hi,
    I have developed ABAP web service and called it using web service model in WD. The WS is working from WSNavigator. While calling it from WD, im getting the following exception:
    Service call exception; nested exception is:
    com.sap.engine.services.webservices.jaxrpc.exceptions.InvalidResponseCodeException: Invalid Response Code: (502) Proxy Error ( No data record is available ).
    Is some setting required in R/3 where WS is created or on WAS where the WDAppl is deployed?
    Regards,
    Smruti

    Hi Smruti,
    Please try the following:
    Go to Web Service model
    Logical Port
    Uncheck "Use HTTP Proxy" settings..
    Also make sure the WAS has entry of R/3 in hosts files..
    Regards,
    Abhijeet

  • ABAP Web Service with tables

    Hello,
    <br>
    <br>
    We need to build a web service with a predefined message in our ERP (ABAP), without PI or WebAS JAVA.
    <br>
    <br>
    We thought it should be a simple task, because we had no problem with many other applications and systems when building the same service, but were not able to build it with SAP ABAP, probably as a consequence of our lack of knowledge on ABAP SOAP runtime.
    <br>
    <br>
    We have an external asynchronous process that delivers information to many other systems using web services (information diffusion). Concecuently, the web service call's structure is determined by the caller, so we have to fulfill this structure if we want to receive the info.
    <br>
    <br>
    The owner of the process defined a very simple service call, in which one kind of  "record" can be repeated 1 to n times:
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    &lt;reglasSuscripcion&gt;
    <br>
                &lt;!Zero or more repetitions:&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
    &lt;/reglasSuscripcion&gt;
    <br>
    <br>
    <br>
    In order to receive this info, we have to implement an abap web service handler to accept this kind of call, the same way other applications/systems have already done.
    <br>
    <br>
    We tried to build a RFC function call and create a web service with the wizard and it resulted in a web service with the following WSDL:
    <br>
    <br>
    &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style"&gt;
    <br>
    <br>
    <br>
    <br>
             &lt;reglasSuscripcion&gt;
    <br>
                &lt;!Zero or more repetitions:&gt;
    <br>
                &lt;item&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
                &lt;/item&gt;
    <br>
    <br>
    <br>
    <br>
    &lt;item&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
                &lt;/item&gt;
    <br>
             &lt;/reglasSuscripcion&gt;
    <br>
    <br>
    <br>
    <br>
    We found two main problems:
    <br>
    <br>
    1.- When "wrapping" the RFC as a WS with the wizard, for a table datatype it automatically includes the <item></item> tag, so we break the predefined calling rules.
    <br>
    <br>
    2.- The namespace is fixed by the wizard, and we would like to use a common namespace for all the "susbscribers", logically, the namespace fixed by the information diffusion service.
    <br>
    <br>
    We also tried to find info on the outside-in approach for building a web service from the WSDL, but all the info we found required the ESR and we have no PI, just the ERP.
    <br>
    <br>
    Any ideas on how to proceed?
    <br>
    <br>
    Thanks in advance,
    <br>
    <br>
    Joseba M. Iturbe
    <br>
    <br>
    Edited by: Soporte Desarrollo on Mar 5, 2010 10:56 AM

    #2.  I've recently had to "zap" some namespaces in an ECC5 system because the calling (TIBCO) system didn't appreciate the default SAP "urn" default - something to do with multiple colons in the address.  There were, I think, just three table this affected, all VEP* ones.  I think I should have been able to change these via the virtual interface in SE80 except that the ECC5 code was a bit "light" in this respect, so you may be able to do this now in SOAMANAGER in ECC6 (btw,  I also had to re-save the WS definition within WSCONFIG and re-activate the virtual interfaces after this "zap" to generated the associated handler class again).
    #1. Given your "name / value" pairs represent a complex type, then it might be better practice to have them as "item" which is probably why SAP proposes it this way... what does your custom function module parameter list look like?
    Jonathan

  • Requirements for the development of ABAP web services...

    Recently at TechEd in Vienna I saw a demo of the development of an ABAP service. It all looked fairly easy, so when I came back I decided to try it out for myself. However, this mission seems to be compromised by the development environment not playing along. I've tried to encapsulate a small RFC function module inside af service on an IDES ECC 6.0 system and that went fairly well until I wanted to test the service.
    At some point it is understood that one should setup a reference to a J2EE system in the WSADMIN transaction and that caused me some troubles as it looks like the IDES system that I tried it on doesn't have a java stack. How could I check whether that is true? I then tried to test the service directly under maintain service within WSADMIN and it sends me a popup screen and asks me to logon. After logging on the browser claims an internal error has happened.
    What do I do now? Where do I start to check if everything is setup the way it should be? Is there a note or a how to guide somewhere?
    Best regards,
    Anders

    Hello,
    For creating and hosting ABAP web Services, you do not need JAVA stack. However, for testing Web Services using Web Service Navigator (from SOAMANAGER), you need J2EE stack. 
    If you are invoking Web Service from SOAPUI, .NET or some other third party tool, you need to create End Point for the service using SOAMANAGER and provide the Porttype WSDL to the third party system.
    Thanks,
    Venu

  • Proxying ABAP Web Service on NW CE

    Hi,
    Assume that we have a Web Service created in ABAP System and can be accessed anywhere.
    We want to publish this web service to external 3rd party companies but don't want them to access directly SAP R/3 System.
    One way is to create another Webservice on CE and call ABAP Web Service from there and also publish this CE Web Service.
    But I remember that it is possible to create a Web Service Proxy on CE for anther Web Service.
    Could you help me to choose the best option and also if there are sample solutions
    regards

    Hello,
    I think you must create a Web Service proxy client and expose this client as a Web Service.
    For creating your Web Service you must follow the outside-in approach:
    1.Import the WSDL document from your ABAP system.
    2.Generate the Java bean skeleton based on the imported WSDL.
    This is the link to the help documentation:  http://help.sap.com/saphelp_nwce10/helpdata/en/46/935a636110581de10000000a1553f7/frameset.htm

  • ABAP web services

    HIII..
    I want  to know about  a ABAP web service . How this can be created????
    Thanks in advance.
    Regards
    Mayank Saxena

    Hi,
    Web Services
    Business processes consist of individual process steps that can vary in how extensive they are. One or more functions are then assigned to these steps; an executing software component is then assigned to each function. Clearly, the heterogeneous nature of system landscapes in enterprises makes it impossible to implement all the necessary functions associated with a complete process using the same technology on the same component. A modern software infrastructure must be in the position to integrate functions, implemented on widely differing software components, in one effective complete process. Until now, the combination of different applications has largely been based on manually declared interfaces, message formats, and agreements between business partners.
    Web services simplify this process. They are based on open, generally accepted standards. They enable you to combine functions in a single process, even if they are implemented in widely differing software components. Web services are standalone, executable entities that can be published, searched for, and called, across a network.
    Introduction
    The SAP Web Application Server implements the following basic Web services standards: eXtensible Markup Language (XML); Simple Object Access Protocol (SOAP); Web Service Definition Language (WSDL); and Universal Description, Discovery, and Integration (UDDI). 
    In the documentation that follows, we assume that the reader is familiar with Web service standards and techniques. You will find a general introduction to the Web Services topic under Sun Microsystems, in the pages of W3C, and in the general explanations for standardization organization OASIS under the topic UDDI.
    Integration
    ABAP and Java Web Services
    Enterprises can extend their solutions by using Java or ABAP Web services, or both. If your priority in programming an application is the selection of data, the integration of an ABAP Web Service could be appropriate. Conversely, if you are implementing processes that involve different business partners and systems, it may be beneficial to program in Java and integrate Java Web Services.
    The Web Service Framework consists of:
    ·        The development environment for the ABAP Engine
    ·        The development environment for the J2EE Engine
    ·        Tools that support UDDI registration
    ·        A distributed, interoperable SOAP runtime (ABAP and J2EE Engine)
    Processing of SOAP requests using the Internet Communication Framework
    Web Services and the SAP Exchange Infrastructure
    The SAP Exchange Infrastructure is a key area in SAP NetWeaver. The Exchange Infrastructure provides an open, process-oriented integration infrastructure for the unhindered flow of information and for XML-based message exchanges. Systems integrated using SAP XI exchange messages over the Integration Server.
    The programming model for XI ABAP proxies and Web services has been unified. The advantage of this is that both technologies can be implemented so that they complement one another. Messages can be sent and received either using the XI runtime or the Web service runtime.
    Additional proxy runtime services can be controlled using protocols that you request using a proxy method. The features you have available depend on whether you are using the Web Service Framework or the Exchange Infrastructure for communication.
    Features
    The ABAP Workbench offers an environment where you can publish, search for, and call Web services. It enables the SAP Web Application Server to act both as a server and client for Web services.
    The Web service infrastructure enables developers to:
    ·    Publish independent function that were implemented as RFC-enabled function modules, function groups, BAPIs, or XI message interfaces. This includes functions available as part of mySAP.com solutions, or functions developed by customers or partners. The Web service can be used across the entire Internet using standard protocols and can easily be added to any development environment. (See also Creating a Web Service).
    ·    Consume Web services, regardless of where they are stored or how they are implemented. Business processes can be implemented across several systems, either within an enterprise or across several enterprises. (See also Consuming Web Services.)
    The following triangle shows the basic architecture of the Web Service Framework:
    Service Provider
    After the functions have been implemented, a Web service interface must be created that provides a representation of the Web service for the user. This interface offers an abstraction layer and thus independence from the specific implementation used. Based on this interface, the Web service is configured and can be called at runtime. Publishing Web services in a UDDI Registry is supported by the UDDI client functions in the SAP Web AS.
    Service Directory
    You can store Web service definitions and released Web Services in a UDDI Registry. WSDL documents provide the basis of the Web service client, which can then be searched for in the UDDI using either a browser or the standard UDDI APIs. Web services can be published and searched for in all registries that conform to the standard. SAP also offers a public UDDI Business Registry under uddi.sap.com.
    Service Requestor
    The SAP Web AS allows you to integrate Web services. It can generate Web service clients from WSDL files.
    Standardization and Extensibility
    Web services and Web service standards develop quickly; new standards are being presented continually at standardization committees. However, these extended standards – such as security standards or additional protocols – can easily be integrated in the Web Service Framework using SAP.
    See also:
    Web Services Toolset
    For more information see the following link.
    http://help.sap.com/saphelp_nw04/helpdata/en/9b/dad1ae3908ee44a5caf57e10918be9/frameset.htm
    Please Reward If Helpful
    Jagadish

  • ABAP web service security

    hi guys,
    we have a couple of abap web services here that are called by an external .NET application. Currently, the .NET application can call  the web service without passing on any username and password. Hence, there is no security. I wanted to change it and make it secure, so in SICF, i selected my WS, logon data tab and changed the procedure to standard and left the u/p blank. Also, made sure that the WS definition in se80 is set to basic authentication and SOA Manager is also set to HTTP authentication - username and password. But the .NET application can still call the web service without passing on any username and password. I cleared out all the caches etc.
    Any idea as to why .Net app is not getting prompted for u/p ??
    thanks

    Anuja S. wrote:
    I want to know how did you create an ABAP WebService without authentication as a result of which the external .NET application is able to call it without asking for the login credentials.I have a similar requirment,tired with many variations but not possible. Can u help with the same.
    >
    > Regards,
    > Anuja S.
    Hi Anuja, to publish a web service without authentication you only have to configure the endpoint/service from transaction "SOAMANAGER" without marking any "Authentication Method" in the "Provider Security" tab.
    Regards.

  • Ws-basic username inside pl/sql procedure published as web service

    I'm new to jdeveloper, but been working with Oracle for 13 years...
    We have used Jdevelper to expose a pl/sql procedure as a web service using the "Publish as web service..." wizard. We then used Web Services Manager in server agent mode to protect that web service using ws-basic header auth. OWSM does a lookup on the user supplied credentials against our active directory ldap server to determine if the user should be able to call the service. That all works, EXCEPT...
    The problem is that the stored procedure runs a query against data protected by virtual private database and extensive audit logs. We need access to the ws-basic credential from within oracle so that we can set the session context and pull the end-user's id for auditing purposes.
    Right now, all we know inside the stored procedure is the oracle username used to connect to the database. This is of course different from the one used to authenticate our user in the OWSM layer.
    The pl/sql procedure does not have a parameter to specify the user name, and even if it did, there is no way for us to verify that any user supplied parameter matches the credentials used in OWSM.
    So, I assume, I need to modify the code generated by the "Publish as web service" wizard and somehow pull the ws-basic credentials (just username) and push them into the Oracle session_context.
    Anyone have any sample code or advice on how to get access to ws-basic credentials or even any of the metadata on a certificate supplied to OWSM for authentication/authorization?

    I change p_action value ( before p_action => 'alta' ) now ( p_action => '"alta"' )
    res := Xxm_Web_Service_Client_Pkg.invoke(p_init_msg_list => FND_API.G_TRUE,
    p_url => 'http://198.137.253.178:7777/event/DefaultSystem/clienteService_RS',
    p_action => '"alta"',
    x_return_status => l_return_Status,
    x_msg_count => l_msg_count,
    x_msg_data => l_msg_data,
    x_req => req)
    And the invokation an ESB service from a PLSQL procedure began to work fine !!!
    Thanks for all answers
    Thans Peter !!!
    Claudio

  • How to consume the Abap web service in Java web-dynpro

    Hi Everyone,
    I want to consume ABAP web service in java web dynpro.
    so when i tried to create model in java web-dynpro, it gave me an error message saying "Invalid WSDL or WSDL not found".
    i think this error message is because, to access the WSDL of abap web-service, we need username and password, but the dialog box in java web-dynpro is not programmed to take username and password from us and send it to the server to get the WSDL.
    i came to this conclusion because i was able to successfully test my abap web-service in java portal. the java portal asked me the username and password to open the WSDL.
    So, please help me to consume the abap web service in java web-dynpro.
    Thanks in advance
    Regards
    Vikas

    Hi Vikas ,
       while creating a model in web-dynpro try to use the "import web service model" option and if you are using local server choose the local server option so that you can get the available web services which are in server, select one among them and continue you process.I think this is the some what easy way .
    If you want use the URL for wsdl better to once test the available service in server and copy that WSDL URL and paste over  WSDL textbox.
    I think this is pretty help ful to you
    Best Regards
    Srikatnh

  • SSO and ABAP Web Services

    I am opening this thread on behalf of my colleague Bala regarding SSO and ABAP Web Services.
    We have gone through single sign on options and found several options are available within 5.0.
    We would like to know the options available for SAP ABAP web services access from a Non-SAP system with user authorization but without Portal/ITS installation.
    Also I would like to avoid any hard coding of user id in Non-SAP system .
    Could you provide any information.
    Thanks,
    Bala

    We have gone through single sign on options and found several options are available within 5.0.
    Tell me what are the several options and what is your Non-SAP system?
    without Portal/ITS installation.
    ITS is now an integral part of ECC 5.0 system. So would not need a seperate installation, unlike earlier versions.
    AB

  • Error while running ABAP web service

    Hi,
    I have WAS 6.4 with ABAP STACK and NetWeaver '04. I created an ABAP web service, it was deployed successfully, but while running it I am getting an error that "Settings for J2EE do not exist".
    Do I need to configure anything to rectify this error....?
    Plz suggest me.
    Thanks,
    Ravindra.

    hello, please i attend too developpe a web service client in java to access to a webservice server PHP, I use axis api, but when i launch my web service client, I receive, all content of the wsdl file from server. please somebody can I help me

Maybe you are looking for