HTTP PUT in PI 7.3
Hi All,
Can we support HTTP PUT out of the box in SAP PI 7.3 ?
I had earlier written JAVA Proxy to support HTTP REST methods as GET, PUT, DELETE etc. So in PI 7.3 I see HTTP GET and POST in advance adapter engine, can we support HTTP Put also or we need to write some adapter module to support that.
Thx in advance
Ravijeet
PI 7.3 doesn't support PUT in my opinion as well. Why don't you use the same java proxy solution?
Regards,
Prateek Raj Srivastava
Similar Messages
-
HTTP PUT method not working?
hi,
i want to use the HTTP PUT request-method to enable data-upload. i have a
servlet that implements the doPut method, gets the content from the request,
and processes this further. this works perfectly fine on my local machine
using tomcat.
the next step is to deploy the servlets to an iPlanet 6.0 app-server. and
there i run into problems. it looks like the HTTP PUT requests to
/nasapp/<myservletpath> are never passed on the the application server, but
are caught by the webserver, and denied access. see the server-log and
telnet output:
------ server log --------
xxx.xxx.xxx.xxx - - [26/Jun/2001:16:20:57 +0200] "PUT
/nasapp/channelsupply/management/ContentManagementServlet HTTP/1.0" 401 223
------ /server log --------
------ telnet port 80 --------
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
PUT /nasapp/channelsupply/management/ContentManagementServlet HTTP/1.0
HTTP/1.1 401 Unauthorized
Server: Netscape-Enterprise/4.1
Date: Tue, 26 Jun 2001 15:05:29 GMT
WWW-authenticate: Basic realm="WebServer Server"
Content-length: 223
Content-type: text/html
Connection: close
<HTML><HEAD><TITLE>Unauthorized</TITLE></HEAD>
<BODY><H1>Unauthorized</H1>
Proper authorization is required for this area. Either your browser does not
perform authorization, or your authorization has failed.
</BODY></HTML>Connection closed by foreign host.
------ /telnet port 80 --------
i was under the impression that the webserver would not 'touch' all requests
to /nasapp/<etc> and simply forward these directly to the app-server. it
looks like this is not the case for PUT (and also DELETE) requests.
does anyone have a clue on how to solve this?
i tried enabling the 'content management' services of the web-server, but
with no luck.
besides, you want to restrict access if you enable file-upload. but
restriction works on absolute file-paths, and /nasapp/<etc> does not map to
a 'real' filepath...
our environment:
Sun Solaris 2.8
iPlanet 4.1 webserver; using the web-connector
iPlanet 6.0 sp2 application server
many thanks, marius hettemaHi,
According to your post, my understanding is that you wanted to use the workflow action “Call HTTP Web Service” to call the SOAP web service in SharePoint Designer.
This is not a soap based web service call. This is a HTTP RESTFul call.
The SOAP web service uses the PUT HTTP method
The Call HTTP Web Service action lets you specify any of several request methods, including
GET, PUT, POST, and DELETE. This lets you tell the web services, specifically
RESTful services, what to do on the service that you’ve specified with the URI property on the activity. For more information, you can refer to the article
Working with Web Services in SharePoint 2013 Workflows using SharePoint Designer 2013.
There are some articles about How to work with web service using “Call HTTP Web Service” action in SharePoint Designer 2013,
you can have a look at them.
http://sergeluca.wordpress.com/2013/04/09/calling-the-sharepoint-2013-rest-api-from-a-sharepoint-designer-workflow/
http://rogereriksen.wordpress.com/2013/05/24/create-a-sharepoint-site-using-rest-in-workflow-with-sharepoint-designer/
http://blogs.msdn.com/b/sharepointdesigner/archive/2012/09/05/how-to-work-with-web-service-using-call-http-web-service-action.aspx
Thanks & Regards,
Jason
Jason Guo
TechNet Community Support -
HTTP PUT Request for File Uploads is returning a response header with content-length = 0
After upgrading from CF9 to Coldfusion 10, I'm running into an odd issue, with `cURL` calls to a webservice that used to work.
We are using an HTTP PUT Request with multipart="no" so that the request header content is the file itself, now the data is being sent properly in the content but it has a ~8k limit. This is fine for smaller files but some files are 60kb etc.
Errors are odd too, near the 8KB limit we get a bad gateway error 502, and above that the webpage errors with a connection reset.
It works fine with multipart="yes", but in a PUT request the file's data isn't even sent since it's looking for `httpparam formField` , the content-length from the target page's Headers show a content-length of 0 which causes `cURL` to fail with an error (56): http://curl.haxx.se/docs/manpage.html
Here's example code to reproduce:
<cfset sFilename = "C:\999\test4.txt">
<cffile action="readBinary" file="#sFilename#" variable="fileRead">
<cfset oFileInfo = GetFileInfo("#sFilename#")>
<cfhttp url="localhost/Clarence/diff_elt_test_output.cfm"
method="PUT"
username="******"
password="******"
multipart="yes"
result="oHttp">
<cfhttpparam type="header" name="Content-Type" value="text/plain" />
<cfhttpparam type="header" name="Content-Length" value="#oFileInfo.Size#" />
<cfhttpparam type="body" value="#fileRead#"/>
</cfhttp>
<cfdump var="#oHttp#">
Dumping the response via GetHttpRequestData() shows that the header's content-length = 0 and content is blank.
Whereas POST requests work fine, cURL has a -F form option which is our fallback but a solution to this would be great.
Here's what I've tried:
1. Changing CF post request limit sizes (64MB+)
2. Changing IIS config web/webserver http runtime and security.request filtering request limits to much higher values
3. AJP Connector between IIS and Tomcat has a default 8KB header limit, I changed that to 64k on both sides, still nothing
Also am I missing something fundamental here? I thought at the network layer a packet is split up and rejoined, so large content in a http request body should work, what's wrong with Coldfusion 10?I am familiar with java.net package and know how to
Read and Write Streams.
However, what I do not know is what string
represntation of PUT or POST resquests is?It's HttpURLConnection.setRequestMethod("PUT") or ("POST").
Also you have to setDoOutput(true).
Then you set the content type, possibly encode the input, set the content length, and write the file data to the stream.
Using a Jakarta package may be easier, however. -
Disable to access http PUT method in sun application server
how to disable to access http PUT method in sun application server. please help me.......
You're probably better off asking this in a forum specifically about that server.
Though as I recall, PUT is disabled by default in SunOne. But that was a while ago so maybe I've forgotten or things have changed.
Have you actually tried doing a PUT to the server to see what happens? -
[svn:bz-trunk] 7494: Add testcaseses for http put and delete methods.
Revision: 7494
Author: [email protected]
Date: 2009-06-02 13:13:33 -0700 (Tue, 02 Jun 2009)
Log Message:
Add testcaseses for http put and delete methods. Proxy should return endpoint's content instead of empty body
Added Paths:
blazeds/trunk/qa/apps/qa-regress/remote/testMethods.jsp
blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/proxyService/httpservice/bugs/Pu tAndDeleteMethodTests.mxmlfound it - here: http://discussions.apple.com/thread.jspa?threadID=2323131&tstart=30
I set the Realm to Location instead of Folder. Now I'm prompted for my credentials at the /svn/ URL. -
JAX-RS and Weblogic 10.3 - How to enable HTTP PUT?
I'm playing around with JAX-RS and Weblogic 10.3.
I just sent a HTTP PUT request, and got back
HTTP/1.1 405 Method Not Allowed
Is this because HTTP PUT is disabled?
If so, how do I enable it? I can't find the answer on Google or the forums here, so maybe I'm on the wrong track...In my case, WebLogic 10.3.1 returns this messege every time a Send a HTTP PUT request:
Error 400--Bad Request
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.4.1 400 Bad Request
The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.
Is there any way to enable HTTP PUT and HTTP DELETE in WebLogic?
I can´t believe it's not possible to deploy RESTful Web Applications in WebLogic. That's terrible... -
Support for HTTP PUT and HTTP DELETE
Is there a plan for proper HTTP PUT and HTTP DELETE in Flash
Player and/or Flex? There's not much information on the subject at
this point. Is this going to be included in Flex 3? Is there an
issue I can track? etc.This is due to a limitation in the Flash Player so it will
not be available
in Flex 3.
Please continue to log enhancement requests against the Flash
Player here:
http://www.adobe.com/cfusion/mmform/index.cfm?name=wishform -
HTTPS PUT (please help!)
Can someone please tell me if it's possible to perform a "https put" and if so, please include detailed instructions on how to perform this task. I am needing to "upload" a file, but it must occur over a secure connection (HTTPS). I attempted to use FTP until I realized that everything is sent unencrypted. If HTTPS PUT in not possible, then any other suggestions for a resolution to my dilemma would be greatly appreciated!
Please contact me with your suggestions at [email protected]
Thanks in advance!
Bobby Johns WileyYou need to install Java Secure Socket Extentions (JSSE) into the extensions directory for Java 1.2 - 1.3.1, it is included in Java 1.4. Look at the JSSE docs for more detail.
Chuck -
Limits & Specifications for the NRM HTTP Stack in NetWare
I need some docs that are more complete than what appears to be currently
available regarding the specifications & limitations of the NRM HTTP Stack
API functions in NetWare. Referring to the existing documentation "sparse"
is a gross understatement, and there's some very specific information I need
to know regarding a few scenarios in which the HTTP stack may be expected to
fail, and how the failures are handled.
Very specifically, I need to know what the HTTP stack does in terms of
receiving very large data streams from a client that has done an HTTP "PUT"
with a large file attached. When my registered callback function is called
by the NRM HTTP Stack, I call HttpReturnPostDataBuffer() to get a pointer
pointer to a data buffer and the length of that buffer. Once I parse out
the data at the start of the buffer that identifies the information about
the file upload, the remainder of the buffer should contain the contents of
the file that was attached.
What I'm concerned about is that this is all happening in Ring 0, there's no
virtual memory involved, and there's the possibility of a file being
uploaded that's larger than the available physical memory. There's also
nothing in the docs to indicate if HttpReturnPostDataBuffer() is to be
called multiple times in a loop until it returns an error to retrieve the
data in manageable portions, or if all of the posted data is supposed to be
contained within a single buffer. If I want to receive an upload of a 2 GB
DVD ISO image from a client and write it to a file on my NetWare server, I
can't reasonably expect that 2 GB of posted data to fit within a single
buffer when my server only has 512 MB of memory.
How exactly is this situation to be handled?
There's nothing in the NDK docs about maximum limits on received data, nor
about scenarios where certain functions need to be called iteratively to
continue the receipt of large amounts of data [e.g. like the iterative
methods used when reading from eDir using the NWDS*() functions].
TIA,
Chuck
Chuck Chopp
ChuckChopp (at) rtfmcsi (dot) com http://www.rtfmcsi.com
RTFM Consulting Services Inc. 864 801 2795 voice & voicemail
103 Autumn Hill Road 864 801 2774 fax
Greer, SC 29651
Do not send me unsolicited commercial email.Welcome back to NetWare - we have not heard from you for a year or two! Its
pretty quiet here on the developer front, most of the newsgroups are no
longer functional, but a few of us are still lurking around. Answers are
hard to come by from Novell, [email protected] just returns an automated
response.
John
"Chuck Chopp" <[email protected]> wrote in message
news:[email protected]...
> I need some docs that are more complete than what appears to be currently
> available regarding the specifications & limitations of the NRM HTTP Stack
> API functions in NetWare. Referring to the existing documentation
"sparse"
> is a gross understatement, and there's some very specific information I
need
> to know regarding a few scenarios in which the HTTP stack may be expected
to
> fail, and how the failures are handled.
>
> Very specifically, I need to know what the HTTP stack does in terms of
> receiving very large data streams from a client that has done an HTTP
"PUT"
> with a large file attached. When my registered callback function is
called
> by the NRM HTTP Stack, I call HttpReturnPostDataBuffer() to get a pointer
> pointer to a data buffer and the length of that buffer. Once I parse out
> the data at the start of the buffer that identifies the information about
> the file upload, the remainder of the buffer should contain the contents
of
> the file that was attached.
>
> What I'm concerned about is that this is all happening in Ring 0, there's
no
> virtual memory involved, and there's the possibility of a file being
> uploaded that's larger than the available physical memory. There's also
> nothing in the docs to indicate if HttpReturnPostDataBuffer() is to be
> called multiple times in a loop until it returns an error to retrieve the
> data in manageable portions, or if all of the posted data is supposed to
be
> contained within a single buffer. If I want to receive an upload of a 2
GB
> DVD ISO image from a client and write it to a file on my NetWare server, I
> can't reasonably expect that 2 GB of posted data to fit within a single
> buffer when my server only has 512 MB of memory.
>
> How exactly is this situation to be handled?
>
> There's nothing in the NDK docs about maximum limits on received data, nor
> about scenarios where certain functions need to be called iteratively to
> continue the receipt of large amounts of data [e.g. like the iterative
> methods used when reading from eDir using the NWDS*() functions].
>
>
> TIA,
>
> Chuck
> --
> Chuck Chopp
>
> ChuckChopp (at) rtfmcsi (dot) com http://www.rtfmcsi.com
>
> RTFM Consulting Services Inc. 864 801 2795 voice & voicemail
> 103 Autumn Hill Road 864 801 2774 fax
> Greer, SC 29651
>
> Do not send me unsolicited commercial email.
>
> -
Hi,
I have a scenario where I want to configure a HTTP sender adapter.
I have a HTTP PUT url of a 3rd party application from where the HTTP adapter should poll and pull the files into PI.
Is this possible? If yes, where and how do I mentioon the URL?
Please help!
Thanks,
Pratibha.Hi,
That means, the sender aplication has to write a http://<hostname:port>/<path>?<query-string> type query?
Is there no other option?
Is it not possible with the SOAP sender adapter also?
Thanks,
Pratibha. -
Http header expect:100-continue
I am trying to make a HTTP PUT request to a webservice, which I can't get to work because it keeps returning the following error in its header: HTTP/1.1 417 Expectation Failed
In the body it explains that I have a header "expect:100-continue" in my PUT request header (see image).
I have tried everything to remove that particular header from my request (using LabviewHTTPclient.lvlib:removeheader.vi), but Labview still sends it.
2 questions:
- Is there a tool that lets me see what header/request labview actually sends to the webservice?
- how come I can't remove that header?
Thanks for your input!
BTW. I got it working in Curl, which I believe is used by Labview itself as well
Attachments:
Error 417 Expectation Failed.png 8 KBHello Aartjan,
About the tool:
You could use wireshark (just an example).
About the header part:
Can you share your code or a simplification of it (Project and files [vi's..]) that allows me to test/reproduce/see what's going on?
To know what causes the issue we need to see your code.
Kind Regards,
Thierry C - Applications Engineering Specialist Northern European Region - National Instruments
CLD, CTA
If someone helped you, let them know. Mark as solved and/or give a kudo. -
How to disable PUT/DELETE method in SMC tomcat
Hi,
SMC provides tomcat as the web server to allow logon the SMC console through IE.
For security consideration, we have to disable the http "PUT" and "DELETE" method of tomcat. Its config file seems to be /opt/SUNWsymon/web/conf/catalina.policy, but I have no knowledge of this file.
Do anyone know how to disable PUT/DELETE method in tomcat? Or provide me a reference book for this issue?
Thanks a lot.For security consideration, we have to disable the
http "PUT" and "DELETE" method of tomcat. Its config
file seems to be
/opt/SUNWsymon/web/conf/catalina.policy, but I have
no knowledge of this file.I'm not sure how to disable that feature, but be aware if you disable the ability for Agents to send files to the SunMC web server you may break all Configuration Tasks. Agent config files are sent to the Server by HTTP to allow them to be stored as templates/snapshots.
I don't remember seeing instructions on how to make the changes you want: the quickest way to find out is probably to call SunMC support.
Regards,
[email protected] -
Http 302 found response while consuming rest service
Hi,
When Sap Pi consumed rest service in receiver rest adpater, the response is as following:
HTTP PUT call to http://host:port/backend/v2/test/test1 not successful. HTTP/1.1 302 Found
when i tried with rest client tool:
firstly it said :
Redirect To: http://host:port/login.jsp with status: 302 HTTP/1.1 302 Found
Redirection information has not been cached.
the second is:
Status
200 OK Loading time: 22
How can i redirect in sap PI?
Thanks,
NurhanCan you please post some of the values you are using to connect to your Schema Service? (please redact the hostname URL for security purposes)
You can also follow this tutorial:
Data Loading and the Oracle Database Cloud Service
Format is usually:
username used to sign up
password giving at sign up
Service Instance URL -
How to parse a XML stream sent to servlet with PUT method
Hi,
I have to interface my servlet app with other apps communicating with XML.
This way, My servlet will receive a XML stream in the http request, parse it and send back a XML message.
What I've done is :
An html page to send a XML File with a put method :
<form enctype="multipart/form-data" method="PUT" action="http://localhost:8080/MyApp/servlet/TestUploadServlet">
<input type="file" size="20" name="FileToUpload" value="Select File">
<input type="submit" name="UploadFile" value="Upload">
<input type="reset" value="Reset">
</form>
A servlet TestUploadServlet with :
SAXParser parser = new SAXParser( );
Trace.traceLine( "SAXParser" );
parser.setContentHandler (this);
try {
parser.parse( new InputSource( requete.getInputStream() ) );
catch (SAXException e) {
Trace.traceLine( e.getMessage() );
catch (IOException e) {
Trace.traceLine( e.getMessage() );
and the methods startElement, stopElement and other to work with the elements detected by the parser (already used by other programs parsing local xml files).
And it doesn't work.
is the html code is a good way to send a file in the http Put method ?
is the parser.parse( new InputSource( requete.getInputStream() ) ); a good method to read the stream ?
please help.I think the problemn comes from the method used to send the <XML> stream.
Using an html form doesn't seem to be a good method.
I tried several methods or examples found and none of them seems to work.
here is another example in the servlet side :
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
ServletOutputStream output = res.getOutputStream();
output.println("ContentType: " + req.getContentType() + "<BR>");
int content_length = req.getContentLength();
output.println("ContentLength: " + content_length + "<BR>");
if(content_length > 0) {
output.println("Content: ");
ServletInputStream input = req.getInputStream();
byte [] buffer = new byte[1024];
int nb;
while((nb=input.read(buffer))!= -1) {
output.write(buffer,0,nb);
Can somebody tell me how to write a java code sending a http request with the content of a file in the content of the request ? -
Hello
I am setting up a new PKI (in a LAB initially) an reading up on the subject.
I see the default location for the CDP is in the Configuration partition in AD and therefore accessed via LDAP://......
I also see other recommending using IIS/HTTP to publish the CRL, CPS
I can see the advantage of publishing the CPS via HTTP (not sure how you would import a file e.g. text file containing the CPS into AD in any event)
Question 1:
But what are the main advantages/disadvantages of placing the CRL in an IIS site and therefore HTTP?
Question 2:
I can see how the AD integrated CA would publish updated CRL to AD as the CA is integrated (e.g. Sub issuing CA)
If the CRL is published via IIS/HTTP will the CA be able to automatically update the CRL via HTTP PUT or something like that (and if so I assume the CA Server needs rights to the Site and underlying NTFS folder containing the sites files),
or will I have to manually download the CRL from the CA and publish to the HTTP site manually (or via script)?
Question 3:
Can I have the CRL published to LDAP and HTTP at the same time, and therefore I assume I will have to update the CA in come where so when it issues certificates is states both location in the CDP information within the certificate?
Any help most appreciated
AAnotherUser__
AAnotherUser__1) HTTP versus LDAP
The advantages of HTTP over LDAP/AD:
Easy anonymous access - you don't need an AD account or tweak your AD permissions, so you can serve validating apps on non-domain machines or on machines in other forests.
No replication delays (if you can use a web server in the domain, see 2) and 3)).
Can be used as 'external' and 'internal' URL, using split DNS or by publishing using a reverse proxy.
If you use the same CA for 'external' and 'internal' certificates: You do not disclose information about the structure of your AD forest to external parties.
One advantage of LDAP / AD might be the distributed structure that provides 'fail-over' - but you can use load-balanced web services with HTTP.
2) Automation of publication to an HTTP URL
You cannot use HTTP PUT unless you would write your own application for that - but you can simply share the directory the web server uses, give the CA machine account Write permissions, and add a UNC path to the list of CRL publication URLs (file:///\\webserver\share\%3%8%9.crl)
Pre-requisite: The web server needs to be member of the same or a trusted Windows domain. Otherwise you would need a script that copies or FTPs the CRL.
3) Point of time of CRL publication - LDAP vs. HTTP
If you can use the UNC path as explained before both this path and the LDAP object would be populated with the new CRL at the same time. Otherwise (web server not in a trusted domain) you would need to run the publication script more often than the CRL is
published so that there is not too much lag.
Elke
Maybe you are looking for
-
How to share youtube bookmark with another iPod Touch
Can this be done? Email won't work, because it uses safari to access youtube. thanks
-
Repeated dyld errors reported in sh.crash.log -- how fix?
On trying to locate where my spare disk space on my boot drive had gone , I found ~user/Library/Logs/CrashReporter had a 274Mb sh.crash.log file...! This seems to entirely consist of repeated dyld error messages (see below). Can anyone suggest a culp
-
Multiple entries for one album and tracks are diveded between entries
After adding all my music into iTunes I have some albums listed multiple times with one or two tracks listed in each one. How can I get all the tracks for that album listed all together? Also is there any way to import album art from another program.
-
I have to make a projet for distributed systems. what are the advatages of using java over other technologies.
-
Passing WebService URL Dynamically in BPEL
Hi, We have requirement to Call the WebService URL dynamically to BPEL Process. Currently Websevice URL is hardcoded in WSDL file and our Client has changed their URL recently. We need to Change the URL in all the BPEL Process (Totally 10 BPEL Proces