SAP XI/PI RESTFUL Webservice REST file creation

Hi ,
I am trying to implement REST to RFC scenario. Third party needs RESTful file (like wsdl file) to send request.
Third party will send REST request to XI and XI fetches data from R/3 using RFC and send it back to third party as REST response.
Experts ! can you explain this scenario in detail with example?
I have gone through following links -
1.http://wiki.sdn.sap.com/wiki/display/XI/REST%20Web%20Services%20in%20XI%20%28Proof%20of%20Concept%29
2./people/amol.joshi2/blog/2006/06/28/must-fire-a-http-get-from-xi---try-this
And I have few questions.
1. firts links talk about HTTP. so is it required to customize http adapter in this case or we can use it as it is?
2. how are we going to create REST file (like WSDL file) which we will be giving to other party for calling? can we create it from XI integration directory ? OR from XI R/3?
Sujit S K.

REST service is very primitive and simplified form of web service.
Yes we can use HTTP adapter at the target side for sending the request  to third party and HTTP adapter at the sender side for accepting the request from the third party system.
To post (HTTP Request) you just need to use the target URL in the receiver adapter.  Similarly, you can give the sender URL to the third party system to post in our PI middleware. Follow the instructions given in the below link...
http://help.sap.com/saphelp_nwpi71/helpdata/de/45/b4d3d7943c0039e10000000a11466f/content.htm

Similar Messages

  • How to expose a bapi as Rest webservice to consume in web applications

    Hello experts , i now seriously need your suggestion here. Is there a way to expose a BAPI as a rest webservice which can be consumed by a web application in the end.
    What is ICF ( Internet Communication Framework) ? Does this help in generating web service from BAPI ?
    Netweaver Gateway might help to generate services but may not be recommended here in our scenario.

    Please refer Real Web Services with REST and ICF for creation of rest services in sap. The BAPI will have to be called in your handler class.
    I think your best bet would be to transfer the data in the body of the http request and use simple transformation(with multiple roots) to convert the xml data to sap formats. GZIP can also be used to compress the data that is being sent. We have done this successfully in one of our projects.
    However this approach(RESTful Service) would involve more work when compared to the approach suggested by Vikram. If SOAP based services are ok, then you should go ahead with Vikram's approach.

  • Error while bringing up ATG REST Webservice

    Hi,
    I am trying to bring a REST Webservice using ATG 9.3 version.I am getting the below errors in the startup of the instance.I have added "REST" module in the Manifest file and am able to see the entry " C:\ATG\ATG9.3\REST\config\config.jar" in CONFIGPATH(Please let me know if there are other ways to find if the service has come up properly).I am trying to connect to the server using JAVA based REST Client as given below.Also,i have placed the jar files in the CLASSPATH of the module.I am hoping that the webservice have not come up properly because of these startup errors.Please help me out to resolve this issue.
    STARTUP EXCEPTION SEEN IN SERVER
    ========================
    2012-06-25 06:20:36,815 INFO [STDOUT] Unable to create class atg.rest.servlet.HeadRestServlet for configuration /atg/dynamo/servlet/dafpipeline/HeadRestServlet java.lang.ClassNotFoundException: No ClassLoaders found for: atg.rest.servlet.HeadRestServlet
    2012-06-25 06:21:56,325 INFO [nucleusNamespace.atg.userprofiling.sso.PassportAuthorityService] Starting passport authority service
    2012-06-25 06:21:56,460 INFO [STDOUT] **** Error
    2012-06-25 06:21:56,460 INFO [STDOUT]      
    2012-06-25 06:21:56,460 INFO [STDOUT] Mon Jun 25 06:21:56 EDT 2012
    2012-06-25 06:21:56,460 INFO [STDOUT]      
    2012-06-25 06:21:56,460 INFO [STDOUT] 1340619716460
    2012-06-25 06:21:56,460 INFO [STDOUT]      
    2012-06-25 06:21:56,460 INFO [STDOUT] /
    2012-06-25 06:21:56,460 INFO [STDOUT]      
    2012-06-25 06:21:56,460 INFO [STDOUT] Unable to set configured property "/atg/dynamo/servlet/Initial.initialServices" atg.nucleus.ConfigurationException: Unable to resolve component /atg/dynamo/servlet/dafpipeline/HeadRestServlet
    2012-06-25 06:22:06,528 INFO [STDOUT] Unable to create class atg.rest.RestConfiguration for configuration /atg/rest/Configuration java.lang.ClassNotFoundException: No ClassLoaders found for: atg.rest.RestConfiguration
    2012-06-25 06:22:06,528 INFO [STDOUT] **** Error
    2012-06-25 06:22:06,528 INFO [STDOUT]      
    2012-06-25 06:22:06,528 INFO [STDOUT] Mon Jun 25 06:22:06 EDT 2012
    2012-06-25 06:22:06,528 INFO [STDOUT]      
    2012-06-25 06:22:06,528 INFO [STDOUT] 1340619726528
    2012-06-25 06:22:06,528 INFO [STDOUT]      
    2012-06-25 06:22:06,528 INFO [STDOUT] /
    2012-06-25 06:22:06,528 INFO [STDOUT]      
    2012-06-25 06:22:06,528 INFO [STDOUT] Unable to set configured property "/atg/rest/Initial.initialServices" atg.nucleus.ConfigurationException: Unable to resolve component /atg/rest/Configuration
    CLASSPATH ENTRY
    ============
    <classpathentry exported="true" kind="var" path="C:/ATG/ATG9.3/REST/lib/atg-rest-1.0.jar"/>
         <classpathentry exported="true" kind="var" path="C:/ATG/ATG9.3/REST/lib/commons-fileupload-1.2.1.jar"/>
         <classpathentry exported="true" kind="var" path="C:/ATG/ATG9.3/REST/lib/commons-io-1.4.jar"/>
         <classpathentry exported="true" kind="var" path="C:/ATG/ATG9.3/REST/lib/dom4j-1.6.1.jar"/>
         <classpathentry exported="true" kind="var" path="C:/ATG/ATG9.3/REST/lib/log4j-1.2.15.jar"/>
         <classpathentry exported="true" kind="var" path="C:/ATG/ATG9.3/REST/client-lib/java/atg-rest-client-1.0.jar"/>
    REST CLIENT:
    ========
    import java.util.HashMap;
    import java.util.Map;
    import atg.rest.client.RestClientException;
    import atg.rest.client.RestComponentHelper;
    import atg.rest.client.RestResult;
    import atg.rest.client.RestSession;
    public class RestClient {
    RestSession mSession;
    protected void execute() throws RestClientException {
         System.out.println("inside execute");
         mSession = RestSession.createSession("localhost", 8080, "<USERNAME>", "<PASSWORD>");
         mSession.setUseHttpsForLogin(false);
         try {
         mSession.login();
         System.out.println("Login Successful");
         catch (Throwable t) {
         System.out.println(t);
         finally {
         try {
         mSession.logout();
         System.out.println("Logout Successful");
         catch (RestClientException e) {
         System.out.println(e);
    * @param args
    public static void main(String[] args) {
         System.out.println("inside main");
         // TODO Auto-generated method stub
         RestClient testATGRest = new RestClient();
         try {
         testATGRest.execute();
         catch (Throwable t) {
         System.out.println(t);
    REST CLIENT ERROR SEEN:
    =================
    atg.rest.client.RestClientException: java.io.IOException: Not Found http://localhost:8080/rest/bean/atg/userprofiling/ProfileServices/loginUser
    atg.rest.client.RestClientException: This session is not logged in and cannot be logged out

    I am trying to expose a method using REST Webservice and access the method using the browser.I have followed the steps specified in the thread:
    http://ecomwriter.com/2012/03/19/building-restful-web-services-using-atg/ .Have added a component called ProfileRESTWebservice and have defined a method “getLoginInfo” in the class file. The following entry is placed in the restSecurityConfiguration.xml
    <resource component="/atg/userprofiling/ProfileRESTWebservice" secure="true">
    <method name="getLoginInfo" secure="false"></method>
    </resource>
    But, I am receiving the following exception when trying to access the method using http://localhost:8080/rest/bean/atg/userprofiling/ProfileRESTWebservice/getLoginInfo
    10:07:33,147 ERROR [BeanServlet] Error code: 400
    atg.beans.PropertyNotFoundException: Can't find property named: getLoginInfo in class: com.vs.commerce.profile.ProfileRESTWebservice
    Can't find property named: getLoginInfo in class: com.vs.commerce.profile.ProfileRESTWebservice
    atg.rest.RestException: atg.beans.PropertyNotFoundException: Can't find property named: getLoginInfo in class: com.vs.commerce.profile.ProfileRESTWebservice
    at atg.rest.output.RestOutputCustomizerImpl.outputBeanProperty(RestOutputCustomizerImpl.java:616)
    at atg.rest.processor.BeanProcessor.doRESTGet(BeanProcessor.java:157)
    at atg.rest.servlet.RestPipelineServlet.serviceRESTRequest(RestPipelineServlet.java:394)
    at atg.rest.servlet.RestPipelineServlet.service(RestPipelineServlet.java:237)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:135)
    at atg.servlet.pipeline.PipelineableServletImpl.service(PipelineableServletImpl.java:298)
    at atg.rest.servlet.RestPipelineServlet.service(RestPipelineServlet.java:241)
    Can you pl help me out on this?

  • BO 4.1 WEBI Metadata extraction using Java Restful Webservice

    Hi
    We are building an application using the Restful webservice and are trying to extract the metadata from the webi report.
    Whether there is any URL to retrieve Query filter in web Intelligence Report.
    Please help.
    Regards,
    Kavitha S

    Assuming this is a BEX query, you may want to check p. 296 in the following; SAP Web Intelligence RESTful web service SDK User Guide, SAP BusinessObjects Business Intelligence platform 4.1
    - Ludek
    Senior Support Engineer AGS Product Support, Global Support Center Canada
    Follow us on Twitter

  • Invalid request when calling REST-webservice with UTL_HTTP.

    Hello,
    When i try to send some data to a REST-webservice i get as response "INVALID REQUEST"
    I Think it is about the request-body that seems to be no UTF-8.
    I tried to set the characterset with utl_http.set_body_charset(t_http_req, 'UTF-8').
    But when i read the characterset with utl_http.get_body_charset(t_charset);, is still get "ISO-8859-1"
    I am using: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    Some help would realy be appreciated because i am out of options trying to get the code working..
    ======MY CODE==========
    create or replace procedure ipm40_send_bekendmaking(p_bdmg_id in number)
    as
    r_bekendmaking ipm40_bekendmakingen%rowtype;
    r_gemeente ipm40_gemeenten%rowtype;
    l_url httpuritype;
    t_http_req utl_http.req;
    t_http_resp utl_http.resp;
    t_request_body varchar2(32767);
    t_respond varchar2(32767);
    -- t_teller integer := 1;
    -- t_output varchar2(2000);
    t_start number := 1;
    t_body_lengte number;
    t_chunkdata varchar2(4000);
    t_tijd_1 varchar2(256);
    t_tijd_2 varchar2(256);
    t_timeout integer;
    t_length number;
    t_charset varchar2(256);
    begin
    select *
    into r_bekendmaking
    from ipm40_bekendmakingen
    where id = p_bdmg_id;
    select *
    into r_gemeente
    from ipm40_gemeenten
    where gmte_code = r_bekendmaking.gmte_code;
    l_url := httpuritype.createuri('http://zwolle.stadsbeheer.com:82/apex/ipm40bekendmaking?p_bdmg_id='||r_bekendmaking.id);
    t_request_body := l_url.getClob();
    /* request that exceptions are raised for error Status Codes */
    --Utl_Http.Set_Response_Error_Check ( enable => true );
    /* allow testing for exceptions like Utl_Http.Http_Server_Error */
    --Utl_Http.Set_Detailed_Excp_Support ( enable => true );
    utl_http.set_transfer_timeout(300);
    t_http_req:= utl_http.begin_request( r_gemeente.url_webservice_bekendmakingen
    , 'POST'
    , 'HTTP/1.1');
    utl_http.set_body_charset(t_http_req, 'UTF-8');
    utl_http.get_body_charset(t_charset);
    utl_http.set_authentication(t_http_req,r_gemeente.user_webservice_bekendmakingen,r_gemeente.pw_webservice_bekendmakingen);
    t_length := length(t_request_body);
    utl_http.set_header(t_http_req, 'Content-Type', 'application/xml charset=UTF-8');
    utl_http.set_header(t_http_req, 'Content-Length', t_length);
    utl_http.set_header(t_http_req, 'Transfer-Encoding', 'chunked' ); --
    t_body_lengte := dbms_lob.getlength(t_request_body);
    loop
    t_chunkdata := dbms_lob.substr(t_request_body, 2000, t_start);
    utl_http.write_text ( t_http_req, t_chunkdata );
    t_start := t_start + 2000;
    if t_start > t_body_lengte
    then
    exit;
    end if;
    end loop;
    t_http_resp:= utl_http.get_response(t_http_req);
    utl_http.read_text(t_http_resp, t_respond);
    utl_http.end_response(t_http_resp);
    if instr(t_respond,'Successfully document processed') != 0
    then
    update ipm40_bekendmakingen
    set ind_status = 'S'
    , datum_verzonden = sysdate
    , response = t_respond
    where id = r_bekendmaking.id;
    else
    update ipm40_bekendmakingen
    set ind_status = 'F'
    , datum_verzonden = null
    , response = t_respond
    where id = r_bekendmaking.id ;
    end if;
    commit;
    exception
    when others
    then
    t_tijd_2 := to_char(sysdate,'HH24:MI:SS');
    t_respond := substr(sqlerrm,1,2000);
    update ipm40_bekendmakingen
    set ind_status = 'F'
    , datum_verzonden = null
    , response = t_respond
    where id = r_bekendmaking.id ;
    commit;
    end;
    ===THE RESPOND=============
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    <TITLE>ERROR: The requested URL could not be retrieved</TITLE>
    <STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
    </HEAD><BODY>
    <H1>ERROR</H1>
    <H2>The requested URL could not be retrieved</H2>
    <HR noshade size="1px">
    <P>
    While trying to process the request:
    <PRE>
    POST /pushxml/pushxml-bm HTTP/1.0
    Authorization: Basic Ymtfc21hcnRob2xkaW5nOllyZXMzdlFR
    Content-Type: application/xml charset=UTF-8
    Content-Length: 2096
    Transfer-Encoding: chunked
    Connection: close
    </PRE>
    <P>
    The following error was encountered:
    <UL>
    <LI>
    <STRONG>
    Invalid Request
    </STRONG>
    </UL>
    <P>
    Some aspect of the HTTP Request is invalid. Possible problems:
    <UL>
    <LI>Missing or unknown request method
    <LI>Missing URL
    <LI>Missing HTTP Identifier (HTTP/1.0)
    <LI>Request is too large
    <LI>Content-Length missing for POST or PUT requests
    <LI>Illegal character in hostname; underscores are not allowed
    </UL>
    <P>Your cache administrator is [email protected].
    <BR clear="all">
    <HR noshade size="1px">
    <ADDRESS>
    Generated Fri, 12 Aug 2011 17:33:24 GMT by asd2cc001.asp4all.nl (squid)
    </ADDRESS>
    </BODY></HTML>

    Always check the access_log and error_log files of the Apache web server in such a case. This will identify whether the error comes from Apache itself, mod_plsql, the Apex run-time engine, or the Oracle database.
    I see that you're creating a HTTP/1.1 in PL/SQL - however, the web server response indicates a HTTP/1.0 call was received. Unusual. And could be part of the problem.

  • Restful webservice Internal Server Error PUT POST DELETE

    Hi ,
    When I make a RESTful webservice on the Oracle Cloud with a PUT,POST or DELETE method, the test results is always the same error: "500 - Internal Server Error".
    The GET method causes no problems and gives me the value in JSON format.
    Can anyone help me because I can't find an Oracle example with one of these methods?

    Java Cloud Service does support RESTful WebServices based on JAX-RS 1.1 specification & Jersey 1.9 implementation.
    Please follow the documentation for http://docs.oracle.com/cd/E23943_01/web.1111/e13734/rest.htm#CHDCGFCH (Section Using the Jersey JAX-RS Reference Implementation)
    The required Jersey 1.9 shared library is pre-deployed in all the Java Cloud Service instances , you only need to add the reference of this shared lib in your weblogic.xml.
    The following example shows how to update the weblogic.xml file to use the Jersey JAX-RS RI Version 1.9.
    <library-ref>
    <library-name>jax-rs</library-name>
    <specification-version>1.1</specification-version>
    <implementation-version>1.9</implementation-version>
    <exact-match>false</exact-match>
    </library-ref>

  • RESTful webservice in BPEL

    Guys,
    Is it possible to connect to AWS server through RESTful webservice in BPEL 11g.
    Please share your thoughts. Thanks

    On each published web service you have the different operations that can be performed on this service.
    If you have a look et the wsdl-file of your web service the endpoint location, you can test if everything has been deployed correctly by accessing this webservice via Enterprise Manager in your Oracle Soa Suite installation.
    Can you try to test the webservice via the testing console provided in EM?
    Kind regards,
    Nathalie

  • Create Document in RESTful webservice

    Hi,
    Anyone help me in java code
    how to create a webi document using restful webservice?
    My Code:
    HttpPost httpRequest_create_doc = new HttpPost( "http://localhost:6405/biprws/raylight/v1/documents");
      httpRequest_create_doc.setHeader("Accept","application/xml");
      httpRequest_create_doc.setHeader("Content-Type","application/xml");
      httpRequest_create_doc.setHeader("X-SAP-LogonToken", sLogonToken);
    I am getting this response
    HTTP/1.1 400 Bad Request [Server: Apache-Coyote/1.1, Date: Thu, 25 Sep 2014 12:12:19 GMT, Content-Type: application/xml, Content-Length: 135, Connection: close]
    Regards,
    kavitha S

    Hi Bhushan,
    Thanks for your information.I have added body.i am getting same response as
    HTTP/1.1 400 Bad Request .
    Help me if i done any wrong in my coding.
    String docname="Sampledocument.xml";
    String folder_id="1001";
    String create_doc = "<documents><name>"+docname+"</name><folderId>"+folder_id+"</folderId></documents>";
    HttpPost httpRequest_create_doc = new HttpPost( "http://localhost:6405/biprws/raylight/v1/documents");
      httpRequest_create_doc.setHeader("Accept","application/xml");
      httpRequest_create_doc.setHeader("Content-Type","application/xml");
      httpRequest_create_doc.setHeader("X-SAP-LogonToken", sLogonToken);
      httpRequest_create_doc.setEntity(new StringEntity(create_doc));
    HttpClient httpclient = new DefaultHttpClient();
    HttpResponse httpResponse= httpclient.execute(httpRequest_create_doc);
    Regards,
    kavitha S

  • Report data ( value ... tag) missing in the Webi report retrieved through RestFul Webservice

    I am trying the below URL to get the WEBi report from SAP BO using the Rest Webservice support that is now available.
    http://{serverIP:serverPort}/biprws/raylight/v1/documents/{documentId}
    I am able to get the report but as I compare the same report response when using SAOP Webservice, there seems to be a mismatch in the response. Here is what I see in the SOAP response:
    </td><td c="1" ><cell  ref="1.E.4t" bid="14" h="26" w="231" pad="6,7" sid="-10"><ct >Some arbitrary value</ct><value type="xs:string">Some arbitrary value</value></cell>
    But when I run it through REST, I am missing the <value ..> tag:
    </td><td c="1" ><cell  ref="1.E.4t" bid="14" h="26" w="231" pad="6,7" bt="1" sid="-10"><ct >Some arbitrary value</ct></cell>
    Apart from this right at the start of the xml response, I see some property mismatch as well.
    SOAP has this property extra:
    <property name="output.format.xml.valuemode">yes</property>
    While REST has these property extra:
    <property name="output.format.xml.option.style">1</property>
    <property name="output.format.xml.styledict.fontplatform">html</property>
    <property name="output.format.xml.td.bandinfo">yes</property>
    <property name="source.selected">data</property>
    <property name="xelement.xml.object">yes</property>
    <property name="xelement.xml.object.usemap">yes</property>
    <property name="xelement.xml.object.usersupportedformat">image/png</property>
    I am not sure if:
    the <value ...> tag miss is because of these missing/extra properties or
    current REST support has some issues
    For my application the value tag is a must and I can't do without this, but with REST it seems no way to obtain that.
    Any help or pointer(s) in this regard is appreciated!

    Hello Milind,
    According to our Product Owner Sam Polichouk, the solution should be available for you in 4.1 SP3, which is currently scheduled for release by the end of March 2014 (subject to change).  The product team recommends that you get the raw, unformatted data values from within the Dataset specific call.  This data contains a type to tell the end user what kind of data it is, so you can format it or use it properly.
    The updated documentation for the SDK will be available at SAP BusinessObjects Business Intelligence platform 4.1 – SAP Help Portal Page once the Support Pack is publicly released.

  • Android odata restful webservice exception

    HTTP 401 - Unauthorized SAP Internet Communication Framework Team. i'm pass user and password but when call this service i'm getting 401 error. if u know correct me
    public class ClientIDTask extends AsyncTask<String, Void, String> {
            String user = "mobtest";
            String pass = "welcome1";
            @Override
            protected void onPreExecute()
            @Override
            protected String doInBackground(String... arg0)
                String URL="";
                try {
                    Log.d("URL", "URL");
                URL = "http://server8000/sap/opu/odata/sap/ZCUST_TESTING... eq '800COL101'";
                    URL=URL.replaceAll(" ", "%20");
                } catch (UnsupportedEncodingException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                String result = "";          
                 HttpClient client = new DefaultHttpClient();
                 HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
                 HttpResponse response;          
                try
                    Log.d("start","start");
                    HttpGet get=new HttpGet(URL);            
                    Log.d("get",get+"");
                   String tok = "mobtest:welcome1";
                    byte bytehash[]= Base64.encode(tok.getBytes(),0);
                    String auth=new String(bytehash);
                    Log.d("auth",auth.trim()+"|"+auth);
                    get.addHeader("Authorization", "Basic" +auth.trim());
                    response = client.execute(get);
                    Log.d("response",response+"r");
                    if(response!=null)
                        InputStream in = response.getEntity().getContent();
                        BufferedReader br= new BufferedReader(new InputStreamReader(in));
                        StringBuilder sb = new StringBuilder();
                        String line;
                        while ((line = br.readLine()) != null) {
                            sb.append(line);
                        br.close();
                        in.close();
                        String _Output=sb.toString();
                        Log.d("_Output", _Output+"");
                       /* JSONObject oJSONOutPut = new JSONObject(OutPut);
                        boolean Result=oJSONOutPut.getBoolean("Result");
                        String Status=oJSONOutPut.get("Status").toString();                
                        if(Result)
                            result=Status;
                        else
                            result="Failed";
                catch (Exception e) {
                    result="NetWorkError"+"catch";
                    String strError=e.getMessage().toString();
                    Log.d("strError", strError+"");
                    e.printStackTrace();
                return result;
            @Override
            protected void onPostExecute(String ClientIDJSON)
                Log.d("ClientIDJSON", ClientIDJSON+"");
    //            _bar.setVisibility(View.GONE);
                 if("Failed".equals(ClientIDJSON))
                     Toast.makeText(getApplicationContext(), "Failed!!!", Toast.LENGTH_LONG).show();
                 else if("NetWorkError".equals(ClientIDJSON))
                    Toast.makeText(getApplicationContext(), "Network Error!!!", Toast.LENGTH_LONG).show();
    Message was edited by: Michael Appleby

    Hi Vijay,
    I'm in the impression, that you are started learning Restful Webservices.
    If yes here is the best solution, hope this helps you.
    I too tried that link given by you, but I didn't find jar for "com.sun.jersey.api.client" package, any how here you can find very clear and simple example.
    Jersey hello world example

  • REST Webservices security

    I am trying to set up the REST Webservices module, but I seem to be running into issues with security and authentication. I can get sessions from the client side properly, but I cannot call any methods on components.
    */atg/rest/security/restSecurityConfiguration.xml*
    <programlisting>
      <rest-security>
        <default-acl value="EVERYONE:read,write,execute"/>
          <resource component="/path/to/component/TestComponent" secure="false" requiresSessionConfirmation="false">
            <method name="getTestComponentName" secure="false">
              <acl value="EVERYONE:read,write,execute" />
            </method>
          </resource>
      </rest-security>
    </programlisting>
    TestComponent.java
    public class TestComponent {
      public String getTestComponentName() {
        return this.getClass().getCanonicalName();
    }I have turned on the DEBUG level logging in ACC for the RestSecurityProcessor and this is what I see in my logs when I try to access my TestComponent (which is just testing to see if I have access to methods):
    INFO  [RestSecurityProcessor] DEBUG Received POST request for
    INFO  [RestSecurityProcessor] DEBUG Resource container is valid component. Returning true.
    INFO  [RestSecurityProcessor] DEBUG handlePostRequest: Handling component /path/to/component/TestComponent
    INFO  [RestSecurityProcessor] DEBUG getParentSecurityConfiguration: Looking for wild card ComponentSecurityConfiguration for component /path/to/component/TestComponent
    INFO  [RestSecurityProcessor] DEBUG getParentSecurityConfiguration: Looking for default ComponentSecurityConfiguration
    INFO  [RestSecurityProcessor] DEBUG handlePostRequest: Can't find ComponentSecurityConfiguration for component /path/to/component/TestComponent
    ERROR [RestSecurityServlet] Error code: 401
    Access to the requested resource is not allowed: /path/to/component/TestComponent
    atg.rest.RestException: Access to the requested resource is not allowed: /path/to/component/TestComponent
         at atg.rest.processor.RestSecurityProcessor.handlePostRequest(RestSecurityProcessor.java:315)
         at atg.rest.processor.RestSecurityProcessor.doRESTPost(RestSecurityProcessor.java:208)
         at atg.rest.servlet.RestPipelineServlet.serviceRESTRequest(RestPipelineServlet.java:406)
    *snip*Edited by: Gommy on Apr 8, 2013 6:19 AM - Fix typo in package path

    After finding a default restSecurityConfiguration.xml inside of REST/config.jar:/atg/rest/security/, I located a .dtd ( http://www.atg.com/dtds/rest/restSecurity_1.0.dtd ) to figure out what exactly ATG was expecting for a configuration.
    1. Turns out the <programlisting> tag isn't expected (error in the documentation for our version of ATG, apparently), <rest-security> is the top-level element for this configuration file. This was causing the file to not be parsed at all.
    2. requiresSessionConfirmation does not exist on the resource element.
    The TestComponent and its properties were correct. Just the restSecurityConfiguration.xml was incorrect due to very poor documentation, no full example to see what a correct file should look like, and lack of obvious schemas (i.e., no schemas or links to schemas are provided in any documentation) to validate against.

  • What are the ways to create RESTful webservices to expose backend data?

    Hi All,
    As far as i know, we can create RESTful webservices using,
    1. SAP Netweaver gateway.
    2. SAP PI using third party adapter.
    Please tell me if there is any other ways to create RESTful webservices in SAP.
    Thanks & Regards,
    Naseem

    Hi Haritha,
    Go to Tcode SE16, give your ODS active Table name and give width of output list as 1023.
    Now run transaction to see your data and then click Settings --> User parameters and Select ALV Grid Display.
    Now you should see and Excel Icon on top, click on it then select Table , then
    Microsoft Excel and it will open your data with all columns you want.
    I just tried for 213 columns
    Hope this helps.
    Thanks
    CK

  • Problem faced deploying apache cxf restful webservice in weblogic 12c(12.1.3)

    Hi All,
    I am trying deploying my apache restful webservice in Weblogic12c application server and I am facing below issue:
    <Sep 9, 2014 2:56:52 PM IST> <Error> <HTTP> <BEA-101216> <Servlet: "Jersey" failed to preload on startup in Web application: "app.war". 
    com.sun.jersey.spi.inject.Errors$ErrorMessagesException
            at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
            at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
            at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
            at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
            at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)
            Truncated. see log file for complete stacktrace
    In my initial research I have found that with servlet version 3.0 in web.xml JAX-RS scanning is a key feature of Javaee 6. And weblogic uses jersey for it.
    Is there any way to tell weblogic to not look for Jersey jars that are already in its modules folder.
    Note: I have following weblogic.xml present in war file:
    <weblogic-web-app>
      <container-descriptor>
      <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
      <prefer-web-inf-classes>true</prefer-web-inf-classes>
      </container-descriptor>
    </weblogic-web-app>
    Please suggest!!
    Thanks, Puneet.

    Hi All,
    I am trying deploying my apache restful webservice in Weblogic12c application server and I am facing below issue:
    <Sep 9, 2014 2:56:52 PM IST> <Error> <HTTP> <BEA-101216> <Servlet: "Jersey" failed to preload on startup in Web application: "app.war". 
    com.sun.jersey.spi.inject.Errors$ErrorMessagesException
            at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
            at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
            at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
            at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
            at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790)
            Truncated. see log file for complete stacktrace
    In my initial research I have found that with servlet version 3.0 in web.xml JAX-RS scanning is a key feature of Javaee 6. And weblogic uses jersey for it.
    Is there any way to tell weblogic to not look for Jersey jars that are already in its modules folder.
    Note: I have following weblogic.xml present in war file:
    <weblogic-web-app>
      <container-descriptor>
      <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
      <prefer-web-inf-classes>true</prefer-web-inf-classes>
      </container-descriptor>
    </weblogic-web-app>
    Please suggest!!
    Thanks, Puneet.

  • Url service data control - problem while  POSTing to a restful webservice

    Hi,
    I am trying to call a restful webservice to add a new employee .I have created the url service data control. The service method consumes XML.
    When i am creating the url service datacontrol I selected the http method as POST and giving the servicepath and servicename as the source. After providing the xsd's path and all , when I test the url connection, I am getting the following error message:
    URL Test: Received Error: Method Not Allowed
    This might be because the clicking of the test url button is sending the get request, but the actual method is POST.
    Now under the data controls navigator, If i view the newly created data control, i could see the loadData(Object) method which i assume is for retrieving the data from the service. But since i have mentioned the method as POST, why such a method is created? Also if its there, can I use the same for insert and update? I have used this loadData (Object) method to create a button which calls the webservice upon click. Under the data control property inspector, i changed the supportsupdate attribute's value to true. But when i am trying to save the employee from the jspx page, I am getting the following message in the integrated weblogic's log
    Couldn't get access to the data source. Cause Unsupported Media Type exception in rest service
    And on the server side I am getting the following error message:
    No message body reader has been found for request class Employee, ContentType application/octet-stream.
    I think the request is not going as XML. But while creating the datacontrol i have specified the xsd document for the iput xml request. Does ADF automatically creates the XML from the input parametres? If it does not, then what could be done to achieve that? The default actionListener of the submit button is #{bindings.loadData.execute}. Do i have to override it to send the XML request? Or have I missed anything in trying to achieve what i intend?
    I had refered this link for reference :
    http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_53/jdtut_11r2_53.html
    Rampal
    Edited by: user12011868 on Jan 22, 2012 10:03 PM

    Hi Frank,
    I had specified the HTTP method as POST as well as PUT. But the same error is appearing in the both the cases.
    URL Test: Received Error: Method Not Allowed
    And when I am clicking on the 'Test URL Connection' , I can't see any option of selecting the HTTP method. This option only appears in the step 2 of creating the URL service data control where we mention the URL endpoint and the source.
    What could be the reason for the error.
    Rampal

  • XML payload in RESTful webservice

    Hi all,
    Can anyone please suggest on how to call the RESTful webservice (which is used by our client) by passing an XML payload from a PL SQL stored procedure? It is for the authentication purpose. And the username and password has to be passed as the XML payload to the RESTful webservice . Please help, it's a bit urgent.
    Thanks in advance
    Geethu
    Edited by: 982489 on Mar 22, 2013 3:02 AM

    Hi all,
    Can anyone please suggest on how to call the RESTful webservice (which is used by our client) by passing an XML payload from a PL SQL stored procedure? It is for the authentication purpose. And the username and password has to be passed as the XML payload to the RESTful webservice . Please help, it's a bit urgent.
    Thanks in advance
    Geethu
    Edited by: 982489 on Mar 22, 2013 3:02 AM

Maybe you are looking for

  • Mails trun automatically to read status

    Dear All ,    We are facing one problem in our mail sender adapter. sometimes the mails in inbox  turn as read from unread status automatically.   We don't know what is the exact resaon. We are using IMAP protocol. Please Help us Regards Xi User

  • Mail not allowing aol connection?

    I suddenly am unable to connect to aol, but can get to my exchange and mobile me accounts. Any thoughts on what would have caused this over the last three days? I did install Mackeeper around this same time. Is there a possible conflict? Thanks.

  • Difference in timestamp values

    Hi, We have a project for like to like migration for R12 to R16, but ther are differences in the timestamp values calulated between the two enviornments The R12 Production server is 5 hrs head of R16 production server. i have applied the following fo

  • Mac Mini using RAID won't sleep

    I have an Intel Mac Mini with a 100GB internal drive and a 250GB external Firewire drive (miniStack v2). I have configured it so that the internal drive (sans a small Boot Camp partition) is in a RAID1 mirror with the first partition of the external

  • IOS devices not detected in iTunes

    Hi everyone, I am hoping against hope that someone can actually assist me. I have an iPhone 5c, an iPod Touch 5th Gen and an iPad 3rd Gen. I am running windows 7 with SP 1 installed. All software is up to date, all Windows updates etc. iTunes is the