Plain HTTP post connections
HI,
Is there any way to limit HTTP posting connections? I know I can limit SAP max conn. in transaction SMQS, but is there any way limiting plain HTTP post?
Now XI is posting XML messages with speed that receiver cannot handle...
Hi,
If you do not send any payload in the http request you are going to get a http error.
For your second requirement, There is no any problem, You can use any existent tool, or maybe develop you own program.
Http client.
http://www.sdn.sap.com/irj/scn/weblogs;jsessionid=(J2EE3417600)ID1536482550DB10501227175138097442End?blog=/pub/wlg/15296
Regards
Ivan
Similar Messages
-
How to send plain text body in HTTP Post method ?
Hi Exeperts,
I have a scenario http post - ptoxy. Sender sending the data in http post in plain text body (only field values will be in the body).
how should i capture this plain text for receiver to map..
is any udf or xsl code ?
please guide me for achieving this requirement .
find the attachment for http post body value.
Regards
RaviHi Mark,
Thanks for your reply,
Please share you have any udf for this .
can you explain me how should i map to target side.
what are the configuration should i done in communication channel level
Regards
Ravinder.s -
Maximum HTTP posts to "Plain HTTP" adapter
Hello,
I am working on some load testing on a development box that we have for a simple synchronous HTTP<>XI<>RFC interface. I have tested up to around 45 simultaneous users and the XI box starts to reply with 500 Internal Server Errors to the HTTP posts. Up until that point it processes the messages fine and returns the correct response and 200 OK codes.
Could someone direct me to the configuration on the XI box for the maximum number of HTTP requests to process or an explanation of why the server starts to drop POSTs? Thanks for your help!
Regards,
Anthony CesaroHi,
have a look at those two parameters from the XI profile:
icm/HTTP/max_request_size_KB
Maximum size of HTTP request accepted by ICM
and
connection timeout:
icm/server_port_<xx>
http://help.sap.com/saphelp_erp2004/helpdata/en/25/7e153a1a5b4c2de10000000a114084/content.htm
maybe these will help
Regards,
michal -
Hi,
am i correct if i think that it is not possible to connect to rwservlet via http-post, only http-get.
And that is the reason i get REP-56048 when i try it?
Thanks.
Regards
ChrisHi,
thanks for this suggestion. It put my on the right way, because i examined the http-request, sended by the form with paramform=yes.
In my case a report is called with paramters which executes a sql-query on a database.
For this a key is configured in cgicmd, that holds the DB-connection data and takes the other parameters from the url-parameters.
Calling a report per HTTP-Post that doesnt need a database connection was easy, since it didnt need to use the cgicmd-key.
But calling the cgicmd-key didnt work.
The report enginge crashed:
[2012/6/12 11:1:58:807] Exception 50125 (org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
at com.sun.corba.se.internal.iiop.IIOPConnection.purge_calls(IIOPConnection.java:438)
at com.sun.corba.se.internal.iiop.ReaderThread.run(ReaderThread.java:70)
): Interner Fehler org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
[2012/6/12 11:1:58:807] Info 56029 (EngineManager:shutdownEngine): Shutting down engine rwEng-0
It turns out that for HTTP-Post not the same URL as for HTTP-GET can be used.
In contrary to GET in case of POST the cgi-cmdkey must be passed in the additional paramter "hidden_run_parameters" to make the HTTP-POST to the cgicmd-key work:
hidden_run_parameters=your_cgicmdkey
It is not needed as the "first paramter" in the URL anymore. Perhaps that is due the fact, that there is no specific order on post parameters (is this true?, sounds correct ;-)
However, i still have the feeling that this is a kind of undocumented hack, as since now, i didnt find any documentation on this.
Has anyone had any expirences with this?
Regards
chris -
Hi mates,
I've a scenario that complains a RFC call to XI and then, XI makes a HTTPS Post on a specific server.
I've created a HTTP Destination (type G) on SM59, set it to use SSL at Logon & Security tab, using the DFAULT ssl client(that i've created at STRUST transaction).
The problem is when i try to TEST the connection, an successful textless message appears in the bottom and nothing happens! The server that will receive the request doesn't receive nothing when it occurs.
I've debugged the testbutton of SM59 and i found that the problem occurs in cl_http_client, in the method IF_HTTP_CLIENT~RECEIVE, and the exception is http_communication_failure.
Somebody faced the same problem?
Is the Destinations created on the J2EE Admin Service avaliable to my XI Communication Channel?
Thanks in advance.Hi Bruno,
Try using the SOAP adapater instead of the plain HTTP way.
These links might help:
http://help.sap.com/saphelp_nw04/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79
Coe -
HTTP Post Outbound scenario - Error 110 - Timeouts in SMICM Tracefile
HI There
We have a scenario where we do a HTTP post using the HTTP Plain Adapter to a SMS service provider from a message received from a BW system via RFC, It works perfectly in our development system but we cannot get it working in our production system
In SXI_MONITOR the message fails with the error
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Call Adapter
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIAdapter</SAP:Category>
<SAP:Code area="PLAINHTTP_ADAPTER">ATTRIBUTE_CLIENT</SAP:Code>
<SAP:P1>110</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>HTTP client code 110 reason</SAP:Stack>
<SAP:Retry>A</SAP:Retry>
</SAP:Error>
Running a trace in SMICM shows the following in the tracelog
[Thr 4632] IcmConnRollInWP: no need to roll in WP status: ROLLED IN
[Thr 4632] IcmReadFromConn(id=9/140033): request new MPI (0/0)
[Thr 4632] MPI<3018f>19#4 GetOutbuf -1 cb2250 65536 (0) -> 0DE122B0 0
[Thr 4632] NiIRead: hdl 43 recv would block (errno=EAGAIN)
[Thr 4632] NiIPeek: peek for hdl 43 timed out (r; 500ms)
[Thr 4632] NiIRead: raw read for hdl 43 timed out (500ms)
[Thr 4632] IcmReadFromConn: read failed with timeout: 500 -> roll out
[Thr 4632] MPI<3018f>19#5 WriteOOB 00000000 02000000 09000000 01
[Thr 4632] MPI<30190>15#11 ReadOOB 01000000 01000000 2D000000 00 -> 0
[Thr 4632] IcmHandleOOBData: Received data on 1st MPI (seqno: 1, type=1, reason=1): 45/14512/0
[Thr 4632] MPI<3018f>19#10 ReadOOB 01000000 01000000 2D000000 00 -> 0
[Thr 4632] IcmHandleOOBData: Received data on 2nd MPI (seqno: 1, type=1, reason=1): 45/14512/0
[Thr 4632] IcmHandleOOBData: Received context key (type=1, reason=1): 45/14512/0
[Thr 4632] NiWakeupExec: send wakeup signal to 64997 (sock 16992)
[Thr 4632] IcmConnRollOut: connection (id=9/140033) rolled out:
[Thr 4632] CONNECTION (id=9/140033):
used: 1, type: 1, role: 2, stateful: 0
NI_HDL: 43, protocol: HTTP(1)
local host: 200.1.1.100:3405 ()
remote host: 196.30.220.242:80 ()
status: READ_RESPONSE
connect time: 23.07.2008 07:13:10
WP-status: ROLLED OUT (Context: 9, Role: 2)
tid: 45, mode: 0, uid: 14512, roll-reason: ICM_ROLL_NETTIMEOUT
With the following 2 lines ir differs from our development system - this is the point where it goes wrong
[Thr 4632] NiIRead: raw read for hdl 43 timed out (500ms)
[Thr 4632] IcmReadFromConn: read failed with timeout: 500 -> roll out
We have already checked the following between the 2 systems
1. Configuration in Netweaver Administrator is Consistent
2. Communication channel and Mapping is consistent
3. Profile parameters for ICM are consistent
Any ideas as to what this problem could be
Many ThanksHi
after you download the html client.
go to view -> source
and enter the present xiusername & pwd which you using and save.
Enter the below details in http client.
Servername : XIServername
Port : 80<instancenumber>
Client : XI server client number
Server : Sender service (business service or busienss system or integration process...when it comes to the HTTP adapter you need to create the business service that business service name you need to enter )
Interface name : outbound interface name
namespace : name for interface.
If you doing Party scenario enter the Party, Agency and Schema details also else optional.
Enter the Input xml data while enter the input data remove the first xml version line and paste the other data.
click on send message.
check the exchange profile set the httpport or not
check these links
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/66dadc6e-0a01-0010-9ea9-bb6d8ca48cc8
The specified item was not found.
https://www.sdn.sap.com/irj/sdn/wiki?path=/display/xi/http%2bto%2brfc%2bsynchronous%2bscenario%2b-%2bfaqs
HTTP to RFC - A Starter Kit
/people/r.eijpe/blog/2006/02/19/xml-dom-processing-in-abap-part-iiia150-xml-dom-within-sap-xi-abap-mapping
Regards,
Suryanarayana -
HTTP POST Request with XML file in
Hi @ all,
I would like to send an HTTP Request with an XML File in the body to an SAP System
I have the target URL and the a XML File.
Now the question is. Is it possible to use something like the HTTP_POST FuBa to send an url post request with an xml file?
If yes can anybody give me a hint?
I have a php script which exactly do this coding. But to integrate it all in one system it is necessary to transform it into ABAP and call it there.
// compose url and request and call send function
function test($productID, $categoryID) {
// create url
$PIhost = "XXX.wdf.sap.corp";
$PIport = "50080";
$PIurl = "/sap/xi/adapter_plain";
$PIurl .= "?sap-client=800";
$PIurl .= "&service=XXX";
$PIurl .= "&namespace=XXX";
$PIurl .= "&interface=Frontend_Interface";
$PIurl .= "&qos=EO";
$PIurl .= "&sap-user=XXX";
$PIurl .= "&sap-password=XXX";
// create xml
$request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$request .="<n1:FrontendInbound_MessageType xmlns:n1=\"http://crmpiebay.com\">\n";
$request .= "\t<FrontendInbound>\n";
$request .= "\t\t<ProductName/>\n";
$request .= "\t\t<ProductCategory>".$categoryID."</ProductCategory>\n";
$request .= "\t\t<ProductID>".$productID."</ProductID>\n";
$request .= "\t\t<MessageID/>\n";
$request .= "\t</FrontendInbound>\n";
$request .= "</n1:FrontendInbound_MessageType>";
// send http request
postToHost($PIhost, $PIport, $PIurl, $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"]."/".$_SERVER["PHP_SELF"], $request);
// send post request to PI server
function postToHost($host, $port, $path, $referer, $data_to_send) {
$fp = fsockopen($host, $port);
if($fp) {
$res="";
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: text/plain\r\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data_to_send);
while(!feof($fp)) {
$res .= fgets($fp, 128);
fclose($fp);
return $res;
Would be great if anybody could give me a hint how to solve such a HTTP Post request with XML body data.
Thanks in advance.
Chris
Edited by: Christian Kuehne on Feb 26, 2009 4:32 PMhi friend could you please share your solution regarding this query if u got it already?
-
Applicatio​n using Http Post... getting error response
Im from Ecuador, and me and other 4 people from the same country are getting this error response when a native java application is trying to make a http post to mydomain.com
The requested URL could not be retrieved:
While trying to process the request:
POST /somedir/more?var1=abc&var2=xyz& HTTP/1.1
Expect: 100-continue
Host: mydomain.com
Content-Length: 40
Content-Type: text/plain; charset=utf-8
Accept: */*
Connection: close
Invalid request. Some aspect of the HTTP Request is nivalid. Possible problems:
Missing or unknwon request method
Missing URL
Missing HTTP Identifier (HTTP/1.0)
Request is too large
Content-Length missing for POST or PUT request
Generated by Blackberry.Internet.Browsing.Service (squd/2.7.STABLE6)
This issue is only happening in my country (Ecuador). I have some friends in Argentina and they have no problems at all. What are the posible causes for this problem?
Message Edited by andufo on 07-09-2009 08:43 PMHi again,
im attaching all the info you request:
What does the program actually do?
Social network (because of the TOS of this forum im not allowed to post project names or urls)
What is it trying to send when you submit a request?
What url is it posting the information to?
Im attaching all this at the end of the post.
Is it the 'exact' same application that works in other countries?
Yeap, the exact same one...
Is it supposed to be useing the Internet Browser?
No, it is a native app. The Browser is not used at all.
Are you on a BlackBerry Enterprise Server?
Im on BIS, all the users use BIS.
Technical details:
1) The app makes an Http Connection (POST) to:
http://mydomain.com/api/call?param1=abc¶m2=xyz
2) This is the Http connection configuration:
httpConnection = (HttpConnection) Connector.open(url);
HttpConnection.POST;
("Content-Type", "text/plain; charset=utf-8");
("Host", 'mydomain.com');
("Content-Length", 100); //depends on sent data
("User-Agent", 'BlackBerry8300... etc');
("Expect", "100-continue");
3) On every country it works fine... on my country i get this error:
The requested URL could not be retrieved while trying to process the request:
POST /app/llamada?param1=abc¶m2=xyz& HTTP/1.1
- Expect: 100-continue
- Host: mydomain.com
- Content-Length: 100
- Content-Type: text/plain; charset=utf-8
- Accept: */*
- Connection: close
Invalid request. Some aspect of the HTTP Request is invalid. Possible problems:
- Missing or unknwon request method
- Missing URL
- Missing HTTP Identifier (HTTP/1.0)
- Request is too large
- Content-Length missing for POST or PUT request
Generated by Blackberry.Internet.Browsing.Service (squid/2.7.STABLE6) -
One last try... emulating HTTP POST with applet
I am trying emulate the HTTP POST method for file uploading using an applet. More specifically, I am trying to upload raw data to a PHP script by making the PHP script think it is receiving a file when in reality all it is receiving is a series of headers, some other necessary info, the data, and a closer. The PHP is then supposed to save the data into a file.
I have looked at eight or ten threads, explanations, and sample code in this and other forums that deal with this exact same thing, some even specific to PHP, read various documents on and explanations of HTTP headers and so forth, corrected every code error and possible code error I could find, and tried a gazillion variations, but still can't get the PHP script to think that it is receiving a file.
As far as I can tell, communication with the server is being established, the server is receiving info and sending responses back, the PHP script is defrinitely being activated to do its thing, but the PHP is not recognizing anything that looks like a file or even a file name to it.
The following information may be relevant:
The PHP works perfectly with real files uploaded from real HTML pages.
The server uses Apache.
The server has no Java support (shouldn't matter, but otherwise I would be using servlets at that end instead of PHP).
the applet is in a signed jar, and is trying to store information in the same directory that it came from.
I am using the Firefox browser (shouldn't matter?) .
I am hoping that someone knowegeable about this can look at the code below and point our any errors. I've also included the response I get from the server, and the PHP code. If there are no obvious errors, can you think of anything else tthat might be going wrong besides the code itsef?
Please don't suggest I try alternate means of doing this or grab some working code from somewhere. I may very well wind up doing that, but I'm a stubborn bastard and want to find out what the #^%R$($ is going wrong here!!!
Here is the latest incarnation of the applet code: All it does is immediately try to send some text to the PHP script in such a way that the script thinks it is uploading text within a file. it also displays the responses it gets from the server, including what the PHP script sends back.
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class test1 extends Applet{
DataOutputStream osToServer;
DataInputStream isFromServer;
HttpURLConnection uc;
String content = "This is a test upload";
public void init(){
try
URL url = new URL( "http://www.mywebpage.com/handleapplet.php" );
uc = (HttpURLConnection)url.openConnection();
uc.setRequestMethod("POST");
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setUseCaches(false);
uc.setAllowUserInteraction(false);
uc.setRequestProperty("Connection", "Keep-Alive");
//uc.setRequestProperty("HTTP_REFERER", "http://applet.getcodebase");
uc.setRequestProperty("Content-Type","multipart/form-data; boundary=7d1234cf4353");
uc.setRequestProperty( "Content-length", ( Integer.toString( content.length() ) ) );
osToServer = new DataOutputStream(uc.getOutputStream());
isFromServer = new DataInputStream(uc.getInputStream());
catch(IOException e)
System.out.println ("Error etc. etc.");
return;
try{
osToServer.writeBytes("------------------------7d1234cf4353\r\nContent-Disposition: form-data; name=\"testfile\"; filename=\"C:testfile.txt\"\r\nContent-Type: text/plain\r\n\r\n");
osToServer.writeBytes(content);
osToServer.writeBytes("\r\n------------------------7d1234cf4353--\r\n");
osToServer.flush();
osToServer.close();
catch (Exception e) {
System.out.println(e);
System.out.println("did not sucessfully connect or write to server");
System.exit(0);
}//end catch
try{
String fieldName="",fieldValue="";
for ( int i=0; i<15; i++ )
fieldName = uc.getHeaderFieldKey(i);
System.out.print (" " + fieldName +": ");
fieldValue = uc.getHeaderField(fieldName);
System.out.println (fieldValue);
}catch(Exception e){
System.out.println ("Didn't get any headers");
try{
String sIn = isFromServer.readLine();
for ( int j=0; j<20; j++ )
if(sIn!=null)
System.out.println(sIn);
sIn = isFromServer.readLine();
isFromServer.close();
}catch(Exception e){
e.printStackTrace();
}//end AudioUp.java
Here's the response I get back from the server:
null: HTTP/1.1 200 OK
Date: Sun, 03 Apr 2005 18:40:04 GMT
Server: Apache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
null: HTTP/1.1 200 OK
null: HTTP/1.1 200 OK
null: HTTP/1.1 200 OK
null: HTTP/1.1 200 OK
null: HTTP/1.1 200 OK
null: HTTP/1.1 200 OK
null: HTTP/1.1 200 OK
null: HTTP/1.1 200 OK
null: HTTP/1.1 200 OK
<html>
<head>
<title>Handling uploaded files from an applet, etc.</title>
</head>
<body>
No file was uploaded.
</body>
</html>
The <html> and the "No file uploaded" message is simply what the PHP script sends back when it does not detect any uploaded file.
Here is the PHP code on the server:
<html>
<head>
<title>Handling uploaded files from an applet, etc.</title>
</head>
<body>
<?php
if ($testfile)
print "The temporary name of the test file is: $testfile<br />";
$uplfile=$testfile_name;
$uplfile=trim($uplfile);
print "The filename is: $uplfile<br />";
if ($uplfile)
copy ($testfile, "$testfile_name");
unlink ($testfile);
}else{
print "No file was uploaded.";
?>
</body>
</html>xyz's sample code didn't work - PHP doesn't like the getallheaders line at all. I'm going back to the manual now.
I had another thought. When I first started using PHP, I had problems with ordinary text field uploads from web pages because somewhere in the process, extra blank lines or spurious carriage returns were being inserted into the strings. For example, if I had a place where people could enter their name, password, and brief message, and tried to store the incoming strings in an array, I'd wind up with some thing like:
name
password
brief message
instead of:
name
password
brief message
Which played havoc when trying to read out information by counting lines.
Anyway, the problem was solved by using the trim($string) function on all incoming strings, which I now do as a matter of course. I never could figure out why it was happening though.
Do you think something like that could be happening here?? I mean, if spurious blank lines or carriage returns were being inserted where they shouldn't be, could that be screwing things up in this way? HTTP seems to insist on having new lines and blank lines inserted in just the right places. -
Suppose there is form in a web page and it submits data in HTTP POST method. After submitting the form, if I reload the page [either by the refresh button or back button; whichever applicable], firefox asks permission to resend the form data by saying "To display this page, Firefox must send information that will repeat any action...". Now if the user clicks on the resend, firefox resubmits the form data.
So where does firefox store this from data for such future resending/resubmission?
Is it possible to retrieve/manipulate those stored form data?I thought I'd tried that, as tried lots of other things like encoding URL, but obviously not as this works.
Thanks for the quick reply.
We also have an issue with the people results not being able to be refined by Department or Job Title now we have connected the SP2010 farm to use the service applications from a SP2013 farm.
Any ideas on this? I've started a new thread as its unrelated though:
http://social.technet.microsoft.com/Forums/sharepoint/en-US/c89d5463-4531-4a28-9586-1f690c7b580d/can-you-refine-people-search-results-using-a-sharepoint-2013-search-service-application-connected-in?forum=sharepointsearch -
File upload using http-post in OSB
Hi All,
I am trying to upload a file using http-post method in OSB.
I have created a business service pointing to the service url, with http method post.
and calling this business service from a proxy service.
I am unable to send the form data to the business service.
Please let me know how to send trhe form data and the file information.
The error given by Business Service is-
the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is text/plain
Thanks in advance.
Seemant
Edited by: Seemant Srivastava on Oct 12, 2010 12:28 PMHi Anuj,
A sample HTML form code for. Post HTTP service-
<html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>CSV File</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="http://xyz/UploadFile">
<table>
<tr>
<td> Feed id </td>
<td><input type="text" name="refid" value="" size="20"></td>
</tr>
<tr>
<td> Username (optional)</td>
<td><input type="text" name="username" value="" size="20"></td>
</tr>
<tr>
<td> Password (optional)</td>
<td><input type="password" name="password" value="" size="20"></td>
</tr>
<tr><td> Select CSV File </td>
<td> <input type="file" name="upload" value="" width="30"/></td>
</tr>
<tr>
<td><input type="submit" name="Ok" value="Go"> <input type="reset" name="reset" value="Reset"> </td>
</tr>
</table>
</form>
</body>
</html>
I need to pass all these information to OSB business service. -
Uploading big files via http post to XDB table
Hello,
I ve created a web form for to upload files as blobs to the database using XML DB, DBPS_EPG package and preconfigured DAD.
The issue is that small files (~10kb) are being uploaded ok, but file which is 100K during http post returns connection reset from the server side.
To my opinion there might be some max file size parameter for oracle server to accept during oracle listener tcp connection (as apach has maxrequestlimit).
Is there any workaround for to load large files to the XDB table via webform?
Here is a piece of code:
CREATE USER web IDENTIFIED BY web_upload;
ALTER USER web DEFAULT TABLESPACE XML_DATA;
ALTER USER web QUOTA UNLIMITED ON XML_DATA;
ALTER USER web TEMPORARY TABLESPACE TEMP;
GRANT CONNECT, ALTER SESSION TO web;
GRANT CREATE TABLE, CREATE PROCEDURE TO web;
ALTER SESSION SET CURRENT_SCHEMA = XDB;
BEGIN DBMS_EPG.CREATE_DAD('WEB', '/upload/*'); END;
BEGIN
DBMS_EPG.SET_DAD_ATTRIBUTE('WEB', 'database-username', 'WEB');
DBMS_EPG.SET_DAD_ATTRIBUTE('WEB', 'document-table-name', 'uploads');
DBMS_EPG.SET_DAD_ATTRIBUTE('WEB', 'nls-language', '.al32utf8');
DBMS_EPG.SET_DAD_ATTRIBUTE('WEB', 'default-page', 'upload');
COMMIT;
END;
ALTER SESSION SET CURRENT_SCHEMA = SYS;
CREATE TABLE web.uploads (
name VARCHAR2(256) NOT NULL
CONSTRAINT pk_uploads PRIMARY KEY,
mime_type VARCHAR2(128),
doc_size NUMBER,
dad_charset VARCHAR2(128),
last_updated DATE,
content_type VARCHAR2(128) DEFAULT 'BLOB',
blob_content BLOB
CREATE OR REPLACE PROCEDURE web.upload
AS
url VARCHAR2(256) := 'http://demo.test.com:9090/upload/uploaded';
BEGIN
HTP.P('<html>');
HTP.P('<head>');
HTP.P(' <title>Upload</title>');
HTP.P('</head>');
HTP.P('<body>');
HTP.P(' <h1>Upload</h1>');
HTP.P(' <form method="post"');
HTP.P(' action="' || url || '"');
HTP.P(' enctype="multipart/form-data">');
HTP.P(' <p><input type="file" name="binaryfile" /></p>');
HTP.P(' <p><input type="file" name="binaryfile" /></p>');
HTP.P(' <p><button type="submit">Upload</button></p>');
HTP.P(' </form>');
HTP.P('</body>');
HTP.P('</html>');
END;
CREATE OR REPLACE PROCEDURE web.uploaded (
binaryfile OWA.VC_ARR
AS
BEGIN
HTP.P('<html>');
HTP.P('<head>');
HTP.P(' <title>Uploaded</title>');
HTP.P('</head>');
HTP.P('<body>');
HTP.P(' <h1>Uploaded</h1>');
FOR i IN 1 .. binaryfile.COUNT LOOP
IF binaryfile(i) IS NOT NULL THEN
HTP.P(' <p>File: ' || binaryfile(i) || '</p>');
END IF;
END LOOP;
HTP.P('</body>');
HTP.P('</html>');
END;
/帖子经 anatoly编辑过Welcome to Apple Discussions!
Much of what is available on Bittorrent is not legal, beta, or improperly labelled versions. If you want public domain software, see my FAQ*:
http://www.macmaps.com/macosxnative.html#NATIVE
for search engines of legitimate public domain sites.
http://www.rbrowser.com/ has a light mode that supports binary without SSH security.
http://rsug.itd.umich.edu/software/fugu/ has ssh secure FTP.
Both I find are quick and a lot more reliable than Fetch. I know Fetch used to be the staple FTP program, but it grew too big for my use.
- * Links to my pages may give me compensation. -
Error while XI and xMII integration (Plain HTTP as sender)
Dear Friends,
I am doing the scenario XI and xMII integration. While sending the input file from plain HTTP adapter the result comes as follows in *sxmb_moni* :
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- Call Adapter -->
<SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1/>
<SAP:P2/>
<SAP:P3/>
<SAP:P4/>
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: <xMII server name></SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace=""/>
<SAP:Stack/>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
In HTTP Client Adapter for XI 3.0 it is shown as follows:
<SAP:Error><SAP:Category>XIAdapterFramework</SAP:Category><SAP:Code>MESSAGE.GENERAL
</SAP:Code>
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: <xMII server name> </SAP:AdditionalText></SAP:Error>
Please show the way to rectify this error.
Regards,
Jagan.Dear Sudharshan,
I'm doing the scenario which is in the following blog.
/people/dhanabal.thangavel/blog/2008/02/07/xi-and-xmii-integration--part-1 ==> XI and xMII Integration - Part 1
This is a synchronous one. So I set QOS as BE in Client Http Adapter for XI 3.0.
Scenario is HTTP <--> XI <--> xMII
The following errors are I found:
1) In RWB -> Message Monitoring
Status : Canceled with Errors
Message Details:
SOAP : call failed
SOAP :error occured: java.net.UnknownHostException: <HOST>
Exception caught by adapter framework: <HOST>
Delivery of the message to the application using connection AFW failed, due to: <HOST>. Setting message to status failed
The message status set to FAIL.
Returning synchronous error message to calling application: <HOST>.
2) Error coming in the Client Http Adapter for XI 3.0 as follows:
*URL:*
http://xxxxxx07:xx10/sap/xi/adapter_plain?namespace=http%3A//www.xxxxxxx.com/XIBatch3/10099/xMII_Integration&interface=xMII_Integration_Sync_Outbound&service=BS_BATCH3&party=&agency=&scheme=&QOS=BE&sap-user=xxxxx&sap-password=xxxxx&sap-client=xx1&sap-language=EN
*Result:*
<SAP:Error><SAP:Category>XIAdapterFramework</SAP:Category><SAP:Code>MESSAGE.GENERAL</SAP:Code><SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException:<HOST></SAP:AdditionalText></SAP:Error>
*Input XML file:*
<?xml version="1.0" encoding="UTF-8"?>
<ns1:XacuteRequest xmlns:ns1="http://www.lighthammer.com/Xacute">
<ns1:LoginName/>
<ns1:LoginPassword/>
<ns1:InputParams>
<ns1:ProductName>ProductA1</ns1:ProductName>
</ns1:InputParams>
</ns1:XacuteRequest>
*WSDL file (Which is generated using the xMII transaction):*
<?xml version="1.0" encoding="UTF-8"?><definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.lighthammer.com/Xacute" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://www.lighthammer.com/Xacute">
<!-- Types -->
<types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.lighthammer.com/Xacute">
<s:complexType name="InputParams">
<s:sequence id="InputSequence">
<s:element maxOccurs="1" minOccurs="0" name="ProductName" type="s:string"/></s:sequence>
</s:complexType>
<s:element name="XacuteRequest">
<s:complexType>
<s:sequence>
<s:element maxOccurs="1" minOccurs="0" name="LoginName" type="s:string"/>
<s:element maxOccurs="1" minOccurs="0" name="LoginPassword" type="s:string"/>
<s:element maxOccurs="1" minOccurs="0" name="InputParams" type="s0:InputParams"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="Rowsets">
<s:sequence>
<s:element maxOccurs="1" minOccurs="0" name="FatalError" type="s:string"/>
<s:element maxOccurs="1" minOccurs="0" name="Messages" type="s0:Messages"/>
<s:element maxOccurs="1" minOccurs="0" name="Rowset" type="s0:Rowset"/>
</s:sequence>
<s:attribute name="StartDate" type="s:dateTime" use="required"/>
<s:attribute name="EndDate" type="s:dateTime" use="required"/>
<s:attribute name="DateCreated" type="s:dateTime" use="required"/>
<s:attribute name="Version" type="s:string"/>
</s:complexType>
<s:complexType name="Messages">
<s:sequence>
<s:element maxOccurs="unbounded" minOccurs="0" name="Message" type="s:string"/>
</s:sequence>
</s:complexType>
<s:complexType name="Columns">
<s:sequence>
<s:element maxOccurs="unbounded" minOccurs="0" name="Column" type="s0:Column"/>
</s:sequence>
</s:complexType>
<s:complexType name="Column">
<s:attribute name="Name" type="s:string" use="required"/>
<s:attribute name="Description" type="s:string" use="required"/>
<s:attribute name="SourceColumn" type="s:string" use="required"/>
<s:attribute name="MinRange" type="s:double" use="required"/>
<s:attribute name="MaxRange" type="s:double" use="required"/>
<s:attribute name="SQLDataType" type="s:int" use="required"/>
</s:complexType>
<s:complexType name="Rowset">
<s:sequence>
<s:element maxOccurs="1" minOccurs="1" name="Columns" type="s0:Columns"/>
<s:element maxOccurs="unbounded" minOccurs="0" name="Row" type="s0:Row"/>
</s:sequence>
</s:complexType>
<s:complexType name="Row">
<s:sequence id="RowSequence">
<s:element maxOccurs="1" minOccurs="1" name="Quantity" type="s:long"/><s:element maxOccurs="1" minOccurs="1" name="ProductName" type="s:string"/></s:sequence>
</s:complexType>
<s:element name="XacuteResponse">
<s:complexType>
<s:sequence>
<s:element maxOccurs="1" minOccurs="0" name="Rowsets" type="s0:Rowsets"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
<!-- Messages -->
<message name="XacuteSoapIn">
<part element="s0:XacuteRequest" name="parameters"/>
</message>
<message name="XacuteSoapOut">
<part element="s0:XacuteResponse" name="parameters"/>
</message>
<!-- Ports -->
<portType name="XacuteWSSoap">
<operation name="Xacute">
<input message="s0:XacuteSoapIn"/>
<output message="s0:XacuteSoapOut"/>
</operation>
</portType>
<!-- Bindings -->
<binding name="XacuteWSSoap" type="s0:XacuteWSSoap">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="Xacute">
<soap:operation soapAction="http://www.lighthammer.com/Xacute" style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<!-- Service mapping -->
<service name="XacuteWS">
<port binding="s0:XacuteWSSoap" name="XacuteWSSoap">
<soap:address location="http://<XMII_SERVER_NAME>/Lighthammer/SOAPRunner/Jagan/SDN_Fetch_Product_Qty"/>
</port>
</service>
</definitions>
Regards,
Jagan. -
Configure plain http adapter for receiving message from an external system
Hi,
we use Pi/700.
Now I have an external system and I have to use HTTP (plain) to send messages to XI (via plain http adapter).
I have no experiences with HTTP!
In the external system I can only configure "URL, Username, Password" for sending messages - that's all!
What do I have to configure in XI (communication channel, abap-stack, java-stack,...)?
I don't know the URL of my XI-system. Is there an transaction code to get this information?
Why do I need a Username/Pasword?
For testing I can use a "http-post test tool" I found here in this forum.
Thank you all for any help!
Regards
WolfgangHi Hummel,
In Exteranl System u have to use these values
name="myhost" value="xiserver"
name="myport" value="8000"
name="mysystem" value="XY_BSservice"
name="myinterface" value="Order_out"
name="mynamespace" value="urn:xi:hcl:powebapp"
name="myqos" value="BE"
name="myclient" value="300"
name="myuser" value="XYZCLNT"
name="mypass" value="xiuser"
Here My system is the Business service created in Integration directory of XI, Interface is the one created in Integration Repository (This is Outbaound from external sys to XI)
In XI U have to create
Data Types : 1) Source Structure data type(from extenal sys)
2) Target structure (where u want to send from XI)
Message Types : 2 with above DT's
Message Interface: 1) Outbound, Async (Order_out)
2) Inbound , Async (for the target sys)
Then Message mapping and Interface mapping as usual..
And in ID u have to create 2 services one is XY_BSservice for sending system and the other is for receiving system...
For sending system no communication channel required...
Hope u will get idea from the above..
Need any further u r welcome..
Regards
Sridhar -
How to send HTTP Post to URL (third party software) in JSP/JSPDynpage
Hello,
we want to integrate a third party application in our Portal Component (JSPDynpage using JSP and HTMLB). This third party component is called like this:
http://servername:port/cgi-bin/cgi.exe?request=map&format=html&swldy_ace=GDF&swldy_image_format=p n g&width=525&height=375
How can we do this in the JSP using HTMLB?
Thanks for your help.
Best regards,
DanielHi Detlev,
thanks for your hint regarding the App. Integrator, but it seemn not to be what we want to do: We call a CGI and get a JEPG Image back as request.
Now we used the java.net.URLConnection to do the HTTP post in the JSPDynpage:
// send HTTP POST
try {
u = new URL("http://server/path/ourcgi.exe");
} catch(MalformedURLException ex) {
System.err.println("MalformedURLException");
// build query sting
String query = "request=plot&format=jpeg&template_name=......."
int cl = query.length();
try {
// open the connection and prepare it to POST
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(false);
DataOutputStream dos = new DataOutputStream(uc.getOutputStream());
dos.writeBytes(query);
dos.close();
} catch ...
Best regards,
Daniel
Maybe you are looking for
-
How can I delete an e-mail without opening it?
How can I delete an e-mail without opening it?
-
SQL Developer to migrate SybaseIQ to Oracle
Hello all, Is SQL Developer compatible for database migration from SybaseIQ 15.4 to Oracle 11gR2?
-
Duplicated thread. Sorry.
Duplicated thead. Sorry. Message was edited by: Alberto Diaz Message was edited by: Alberto Diaz
-
REG : HTTP Receiver Channel
Hi All, I have a scenario where my sender is a SAP system and receiver is a HTTP url. I need to post IDOC from SAP system to the URL .No mapping is required, but i need to send a mail with the status of HTTP POST (e.g. 200 for success, 401
-
Need ability to find in all files in the project
I am not sure if this is already supported, but in Dreamweaver CS4 it is