Example-WSDL for http-POST binding
Hi all,
i'm looking for an example-WSDL of a http-POST binded service. I was searching in the ~\OraBPELPM_1\integration\orabpel\samples\tutorials\702.Bindings\HTTPBinding directory, but its the example is of a http-get binded service.
I need to know, how the message-definitions for the input have to look like (in the message-section and in the operation-section) when using an XML-input message.
thanks in advance
Albrecht
Gee! i didn't know there are some more samples! :o)
Thanks Clemens, i will test it.
Similar Messages
-
How to config receiver http adapter for HTTP POST without XML tags ??
Hi All,
Can you please provide some infornation on How to config receiver http adapter for HTTP POST (Request) without XML tags ?? Our receiving product doesn't support XML formats.
Is there any option to bypass server authentication on the XI?
If anybody has the same experience or know how to please provide inputs.
Thanx
NavinHi,
you can use xsl mapping for this in which u xtract
the contents only but not the xml tag.
Ranjit -
Http_utl.text_write for http 'POST" does not work
i have a proc that uses utl_http code I have seen all over on web sites for 'POST'ing to a REST web service ..... i use utl_http.write_text to write data to the request body but no data gets written ...... below are the code segments I use
url entered directly into browser that **works fine**: http://www.media.com/admintool/Services.aspx?par_string=[{ "PAR_Transaction_Id" : 5566338, "MRI_Title_Name" : "4 Wheel & Off Road"}]
calling routine:
declare
l_url varchar2 (300) := 'http://www.media.com/admintool/Services.aspx';
l_data clob;
l_query varchar2(32767);
begin
dbms_output.enable(3000000);
l_data := '[{
"PAR_Transaction_Id" : 5566338,
"MRI_Title_Name" : "4 Wheel & Off Road"}]
http_util_pkg.http_post(
p_url_in => l_url, p_data_in => l_data);
end;
called routine segment:
l_http_req := utl_http.begin_request (p_url_in, 'POST');
-- Set the HTTP request headers
utl_http.set_header(l_http_req, 'User-Agent', 'Mozilla/4.0');
utl_http.set_header(l_http_req, 'content-type', p_data_type);
utl_http.set_header(l_http_req, 'content-length', v_length);
-- Write the data to the body of the HTTP request
utl_http.write_text(l_http_req, 'par_string=');
while v_index <= v_length
loop
utl_http.write_text(l_http_req, substr(p_data_in, v_index, 4000));
dbms_output.put_line ('data = ' || substr(p_data_in, v_index, 4000));
v_index := v_index + 4000;
end loop;
results .... you can see below that the header content length is non-zero but the response header says there is no content, so something is haywire with the write_text method
url = http://www.media.com/admintool/Services.aspx
length in data = 1271
http package; url = http://www.media.com/admintool/Services.aspx
after set authentication
after write headers
data = [{
"PAR_Transaction_Id" : 5566338,
"MRI_Title_Name" : "4 Wheel & Off Road"}]
after write text
status code: 200
reason phrase: OK
Connection: close
Date: Tue, 06 Apr 2010 03:59:27 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Length: 0 *************** response header says no content !!!
can you help me figure out what is wrong with the utl_http.write_text method ???
thank youPlease do not resurrect old threads - rather ask your question in a new thread. If need be, add a URL in your new thread posting that refers to the old thread. Also add as much relevant details as possible. Your Oracle version (all 4 digits). Your o/s. If possible, sample code and data that can be used as a test case. Complete error details. And what the intent of the code is (i.e. what the actual problem is that you're trying to solve).
As for HTTP post - works just fine as far as I've used it. -
HTTP POST binding not available in 11g???
Hi,
I am trying to call a HTTP service using HTTP POST, passing HTTP params to it. I created a small bpel process in 10.1.3.4, and used the HTTP POST samples, which worked out really well.
However target platform is 11g. So I just tried to migrate the project and got the following warnings.
WARNUNG: UPGBPEL-02043: The WSDL used for "HTTPPostParam" has HTTP based binding definition for the porttype specified. SOA Suite 11g does not support this and hence upgrade will not carry this over to the generated composite. Compilation will fail if the composite reference is not setup with binding. After upgrade, setup the reference by specifying a WSDL with SOAP binding. Check SOA Upgrade guide for more information.
WARNUNG: UPGBPEL-02009: No Binding setup for : "HTTPPostParam". This will cause compilation of the upgraded project to fail. Check SOA Upgrade documentation on manual steps necessary to bind this composite reference. If necessary, upgrade and deploy any dependencies. If planning to retain 1013x nodes in this projects dependency tree, check earlier part of this log for 1013x WSDL URLs that can be used.
Does this really tell me that HTTP post or get is not available anymore? Or do I miss anything? Or is there a workaround?
Thanks and regards,
Thomas
PS: This is my POSTParam WSDL, which is not yet complete, but working on 10.1.3.4
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://http.oracle.com/postParam"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
targetNamespace="http://http.oracle.com/postParam"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:get="http://xmlns.oracle.com/HttpClientBPELProcess">
<types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema">
<xsd:import schemaLocation="HttpClientBPELProcess.xsd"
namespace="http://xmlns.oracle.com/HttpClientBPELProcess"/>
</xsd:schema>
<!--
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://http.oracle.com/postParam">
<xsd:element name="param" nillable="true" type="xsd:string"/>
</xsd:schema>
-->
</types>
<message name="HttpPostParamIn">
<part name="HighwayEndpointId" type="xsd:string"/>
<part name="HighwayMessageId" type="xsd:string"/>
<part name="HighwayMessage" type="xsd:string"/>
<part name="Synchronous" type="xsd:string"/>
<part name="DISABLE_MESSAGEINPUT_ECHO" type="xsd:string"/>
</message>
<message name="HttpPostParamOut">
<part name="Body" element="get:Request"/>
</message>
<portType name="HttpPostParamPortType">
<operation name="PostData">
<input message="tns:HttpPostParamIn"/>
<output message="tns:HttpPostParamOut"/>
</operation>
</portType>
<binding name="HttpPostParamBinding" type="tns:HttpPostParamPortType">
<http:binding verb="POST"/>
<operation name="PostData">
<http:operation location="/highway/http/SubmitMessage"/>
<input>
<mime:content type="application/x-www-form-urlencoded"/>
<!--
<mime:content type="text" part="param1"/>
<mime:content type="text" part="param2"/>
-->
</input>
<output>
<mime:mimeXml part="Body"/>
</output>
</operation>
</binding>
<service name="PostParamService">
<port name="HttpPostParamPort" binding="tns:HttpPostParamBinding">
<http:address location="http://itrax03.wlgore.com:8080"/>
</port>
</service>
<plnk:partnerLinkType name="PostParamService">
<plnk:role name="PostParamServiceProvider">
<plnk:portType name="tns:HttpPostParamPortType"/>
</plnk:role>
</plnk:partnerLinkType>
</definitions>The sample that heidi posted above is basically the codebase to the http binding we are planning to ship with Patchset 2. It's based on Jax-WS' http binding.
Let me know if you run into any issues (the source is included - so you can play around :) - no license ) -
Here is example code for HTTPS Tunneling through proxy(400 Lines of code
Here is the source for Https Tunneling that I have gotten working. It is based on Pua Yeow Cheong's JavaWorld Tip 111. Thanks to David Lord for providing the final breakthrough that I needed.
I have posted it here for anyone who wishes to use it. If you find any bugs, or write any improvements, please tack them onto the end of this thread.
I have been trying to tackle this problem for quite some time, so I hope this helps a few of you out there.
Lots of Luck,
nightmask.
<----- Begin Copy and Paste -------->
import java.net.*;
import java.io.*;
import java.security.*;
import sun.misc.BASE64Encoder;
import javax.net.*;
import javax.net.ssl.*;
* This example is based on JavaWorld Tip 111. Thanks to Pua Yeow Cheong for writing it.
* It tunnels through a proxy using the Https protocol.
* Thanks go to David Lord in the java forums for figuring out the main problem with Tip 111
* PLEASE NOTE: You need to have the JSSE 1.0.2 jars installed for this to work
* Downloads contents of a URL, using Proxy Tunneling and Basic Authentication
public class URLReader {
* The main program for the URLReader class
public static void main(String[] args) throws Exception {
//set up strings for use in app. Change these to your own settings
String proxyPassword = "password";
String proxyUsername = "username";
String proxyHost = "myproxy.com";
String proxyPort = "3128";
String connectionURL = "https://www.verisign.com";
//set up system properties to indicate we are using a proxy
System.setProperty("https.proxyHost", proxyHost);
System.setProperty("https.proxyPort", proxyPort);
System.setProperty("proxyHost", proxyHost);
System.setProperty("proxyPort", proxyPort);
System.setProperty("proxySet", "true");
System.setProperty("http.proxyHost", proxyHost);
System.setProperty("http.proxyPort", proxyPort);
System.setProperty("http.proxySet", "true");
//set up handler for jsse
System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
java.security.Provider prov = new com.sun.net.ssl.internal.ssl.Provider();
Security.addProvider(prov);
//create the connection
URL myURL = new URL(connectionURL);
URLConnection myConnection = myURL.openConnection();
if (myConnection instanceof com.sun.net.ssl.HttpsURLConnection) {
((com.sun.net.ssl.HttpsURLConnection) myConnection).setSSLSocketFactory(new SSLTunnelSocketFactory(System.getProperty("proxyHost"), System.getProperty("proxyPort")));
myConnection.setDoInput(true);
myConnection.setDoOutput(true);
BufferedReader in;
try {
System.err.println("opening Input stream1");
in = new BufferedReader(
new InputStreamReader(
myConnection.getInputStream()));
String inputLine;
System.err.println("Input stream is Open1");
while ((inputLine = in.readLine()) != null) {
System.err.println(inputLine);
in.close();
System.err.println("Input stream is Closed1");
} catch (Exception e) {
e.printStackTrace(System.err);
String tmp = e.getMessage().toLowerCase().trim();
System.err.println("tmp *" + tmp + "*");
if (tmp.indexOf("http") > -1) {
//http error message to be parsed
tmp = tmp.substring(tmp.indexOf("http")).trim();
System.err.println("tmp *" + tmp + "*");
tmp = tmp.substring(8).trim();
System.err.println("tmp *" + tmp + "*");
if (tmp.startsWith("407")) {
//proxy authentication required
myURL = new URL(connectionURL);
myConnection = myURL.openConnection();
if (myConnection instanceof com.sun.net.ssl.HttpsURLConnection) {
((com.sun.net.ssl.HttpsURLConnection) myConnection).setSSLSocketFactory(new SSLTunnelSocketFactory(System.getProperty("proxyHost"), System.getProperty("proxyPort"), proxyUsername, proxyPassword));
myConnection.setDoInput(true);
myConnection.setDoOutput(true);
try {
System.err.println("opening Input stream 2");
in = new BufferedReader(
new InputStreamReader(
myConnection.getInputStream()));
String inputLine;
System.err.println("Input stream is Open 2");
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
in.close();
System.err.println("Input stream is closed 2");
} catch (Exception ex) {
System.err.println(ex.getMessage());
ex.printStackTrace(System.err);
* SSLSocket used to tunnel through a proxy
class SSLTunnelSocketFactory extends SSLSocketFactory {
private String tunnelHost;
private int tunnelPort;
private SSLSocketFactory dfactory;
private String tunnelPassword;
private String tunnelUserName;
private boolean socketConnected = false;
private int falsecount = 0;
* Constructor for the SSLTunnelSocketFactory object
*@param proxyHost The url of the proxy host
*@param proxyPort the port of the proxy
public SSLTunnelSocketFactory(String proxyHost, String proxyPort) {
System.err.println("creating Socket Factory");
tunnelHost = proxyHost;
tunnelPort = Integer.parseInt(proxyPort);
dfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
* Constructor for the SSLTunnelSocketFactory object
*@param proxyHost The url of the proxy host
*@param proxyPort the port of the proxy
*@param proxyUserName username for authenticating with the proxy
*@param proxyPassword password for authenticating with the proxy
public SSLTunnelSocketFactory(String proxyHost, String proxyPort, String proxyUserName, String proxyPassword) {
System.err.println("creating Socket Factory with password/username");
tunnelHost = proxyHost;
tunnelPort = Integer.parseInt(proxyPort);
tunnelUserName = proxyUserName;
tunnelPassword = proxyPassword;
dfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
* Sets the proxyUserName attribute of the SSLTunnelSocketFactory object
*@param proxyUserName The new proxyUserName value
public void setProxyUserName(String proxyUserName) {
tunnelUserName = proxyUserName;
* Sets the proxyPassword attribute of the SSLTunnelSocketFactory object
*@param proxyPassword The new proxyPassword value
public void setProxyPassword(String proxyPassword) {
tunnelPassword = proxyPassword;
* Gets the supportedCipherSuites attribute of the SSLTunnelSocketFactory
* object
*@return The supportedCipherSuites value
public String[] getSupportedCipherSuites() {
return dfactory.getSupportedCipherSuites();
* Gets the defaultCipherSuites attribute of the SSLTunnelSocketFactory
* object
*@return The defaultCipherSuites value
public String[] getDefaultCipherSuites() {
return dfactory.getDefaultCipherSuites();
* Gets the socketConnected attribute of the SSLTunnelSocketFactory object
*@return The socketConnected value
public synchronized boolean getSocketConnected() {
return socketConnected;
* Creates a new SSL Tunneled Socket
*@param s Ignored
*@param host destination host
*@param port destination port
*@param autoClose wether to close the socket automaticly
*@return proxy tunneled socket
*@exception IOException raised by an IO error
*@exception UnknownHostException raised when the host is unknown
public Socket createSocket(Socket s, String host, int port, boolean autoClose)
throws IOException, UnknownHostException {
Socket tunnel = new Socket(tunnelHost, tunnelPort);
doTunnelHandshake(tunnel, host, port);
SSLSocket result = (SSLSocket) dfactory.createSocket(tunnel, host, port, autoClose);
result.addHandshakeCompletedListener(
new HandshakeCompletedListener() {
public void handshakeCompleted(HandshakeCompletedEvent event) {
System.out.println("Handshake Finished!");
System.out.println("\t CipherSuite :" + event.getCipherSuite());
System.out.println("\t SessionId: " + event.getSession());
System.out.println("\t PeerHost: " + event.getSession().getPeerHost());
setSocketConnected(true);
// thanks to David Lord in the java forums for figuring out this line is the problem
// result.startHandshake(); //this line is the bug which stops Tip111 from working correctly
return result;
* Creates a new SSL Tunneled Socket
*@param host destination host
*@param port destination port
*@return tunneled SSL Socket
*@exception IOException raised by IO error
*@exception UnknownHostException raised when the host is unknown
public Socket createSocket(String host, int port)
throws IOException, UnknownHostException {
return createSocket(null, host, port, true);
* Creates a new SSL Tunneled Socket
*@param host Destination Host
*@param port Destination Port
*@param clientHost Ignored
*@param clientPort Ignored
*@return SSL Tunneled Socket
*@exception IOException Raised when IO error occurs
*@exception UnknownHostException Raised when the destination host is
* unknown
public Socket createSocket(String host, int port, InetAddress clientHost,
int clientPort)
throws IOException, UnknownHostException {
return createSocket(null, host, port, true);
* Creates a new SSL Tunneled Socket
*@param host destination host
*@param port destination port
*@return tunneled SSL Socket
*@exception IOException raised when IO error occurs
public Socket createSocket(InetAddress host, int port)
throws IOException {
return createSocket(null, host.getHostName(), port, true);
* Creates a new SSL Tunneled Socket
*@param address destination host
*@param port destination port
*@param clientAddress ignored
*@param clientPort ignored
*@return tunneled SSL Socket
*@exception IOException raised when IO exception occurs
public Socket createSocket(InetAddress address, int port,
InetAddress clientAddress, int clientPort)
throws IOException {
return createSocket(null, address.getHostName(), port, true);
* Sets the socketConnected attribute of the SSLTunnelSocketFactory object
*@param b The new socketConnected value
private synchronized void setSocketConnected(boolean b) {
socketConnected = b;
* Description of the Method
*@param tunnel tunnel socket
*@param host destination host
*@param port destination port
*@exception IOException raised when an IO error occurs
private void doTunnelHandshake(Socket tunnel, String host, int port) throws IOException {
OutputStream out = tunnel.getOutputStream();
//generate connection string
String msg = "CONNECT " + host + ":" + port + " HTTP/1.0\n"
+ "User-Agent: "
+ sun.net.www.protocol.http.HttpURLConnection.userAgent;
if (tunnelUserName != null && tunnelPassword != null) {
//add basic authentication header for the proxy
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
String encodedPassword = enc.encode((tunnelUserName + ":" + tunnelPassword).getBytes());
msg = msg + "\nProxy-Authorization: Basic " + encodedPassword;
msg = msg + "\nContent-Length: 0";
msg = msg + "\nPragma: no-cache";
msg = msg + "\r\n\r\n";
System.err.println(msg);
byte b[];
try {
//we really do want ASCII7 as the http protocol doesnt change with locale
b = msg.getBytes("ASCII7");
} catch (UnsupportedEncodingException ignored) {
//If ASCII7 isn't there, something is seriously wrong!
b = msg.getBytes();
out.write(b);
out.flush();
byte reply[] = new byte[200];
int replyLen = 0;
int newlinesSeen = 0;
boolean headerDone = false;
InputStream in = tunnel.getInputStream();
boolean error = false;
while (newlinesSeen < 2) {
int i = in.read();
if (i < 0) {
throw new IOException("Unexpected EOF from Proxy");
if (i == '\n') {
headerDone = true;
++newlinesSeen;
} else
if (i != '\r') {
newlinesSeen = 0;
if (!headerDone && replyLen < reply.length) {
reply[replyLen++] = (byte) i;
//convert byte array to string
String replyStr;
try {
replyStr = new String(reply, 0, replyLen, "ASCII7");
} catch (UnsupportedEncodingException ignored) {
replyStr = new String(reply, 0, replyLen);
//we check for connection established because our proxy returns http/1.1 instead of 1.0
if (replyStr.toLowerCase().indexOf("200 connection established") == -1) {
System.err.println(replyStr);
throw new IOException("Unable to tunnel through " + tunnelHost + ":" + tunnelPort + ". Proxy returns\"" + replyStr + "\"");
//tunneling hanshake was successful
}<----- End Copy and Paste -------->BTW, if you are using an implementation in which
the http/https implementation recognises
the java.net.Authenticator properly, you can use
that framework to do basic/digest authentication.
I think Sun's JDK 1.4 supports both basic
and digest for both proxies and the actual end
site you connect via http/https, but I haven't
tested it to be sure. I know it works
with http/basic at the end host.
Today's Ob hack:
import java.net.*;
import java.io.*;
class MyAuth extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
System.out.println("The realm '" + getRequestingPrompt() +
"' at '" + getRequestingHost() + ":" + getRequestingPort() +
"'\n" + "using " + getRequestingProtocol() + " is requesting " +
getRequestingScheme().toUpperCase() + " authentication.");
System.out.println("");
System.out.println("What should we send them? Let's send them ...");
System.out.println("");
return new PasswordAuthentication("username", "password".toCharArray()); }
public class MyURL {
public static void main(String[] args) throws Exception {
// set to the authenticator you want to use.
Authenticator.setDefault(new myAuth());
URL url =
new URL("http://www.some.com/something_protected/index.htm");
BufferedReader in = new BufferedReader(
new InputStreamReader(
url.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
in.close(); -
WSDL / SOAP http get binding
Hello,
i am looking for information regarding HTTP Get binding for SOAP. I have looked at the wsdl 1.1 specification which provides some information concerning that binding (http://www.w3.org/TR/wsdl#_http) and also in SOAP 1.2 (http://www.w3.org/TR/soap12-part0/#L26854). However all this is not precise enough.
In particular, i am wondering whether the serialization of SOAP request (from its definition in a wsdl) using http get is clearly formalized somewhere (in a specification). If any, what are the limitations and constraints, for instance, does it support complex types defined in the WSDL. Are there implementations currently available?
Thanks,
CyrilleHello,
Which kind of Web Services are you building in JDeveloper?
- JAX-RPC (J2EE 1.4)
- Oracle Web Service stack (J2EE 1.3)
What is your targetted environment?
Oracle does not support Document style Web Services in Oracle Web Service stack (J2EE 1.3), it has to be done programmatically.
However the JAX-RPC stack does support, and it is the default, Document style Web Services and you can right click on the Web Service node to edit the service.
Regards
Tugdual Grall -
Hello,
I just have a simple question. In my Flex program, I am trying to find a way to listen for an incoming HTTP POST message - something with functionality similar to that of the HttpListener class in C#. I have not been able to find anything at all to help with this though, would anyone know of something like this?
Thanks.My Flex program subscribes to changes that occur in a program on remote server. The change notifications are sent back to my client in the form of an HTTP Post message. The Flex program needs to be able to detect when these Posts are received.
-
HTTP authentication key for hand shake at receiver side for HTTP POST
Hi All,
HTTP post receiver system is expecting an authentication key to be send by PI HTTP_AAE adapter while posting XML message to them.
The receiver system has a utility program in JAVA to validate this key. Has anyone done this kind of scenario in PI 7.31/7.4
How does this simple authentication mechanism works? If this doesn't work, we have to rely on just uname/pwd but that is not really recommended for our landscape because of security concerns. So the key is the only better option as of now. Please help!!
thx
mike
Attached some import packages used in the java util program in the receiver system. for validating the authentication key send by PI
import java.security.MessageDigest;
import java.util.Calendar;
import java.security.NoSuchAlgorithmException;
import java.io.UnsupportedEncodingException;
import java.io.IOException;
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
I am not pasting the java program utility here due to proprietary reasons. thx for understandingHi Michael
You can construct the target URL to include the query parameter/value using Dynamic Configuration in Message Mapping.
This previously worked on the ABAP HTTP adapter, but from the thread below it seems it is not supported on the HTTP_AAE. Not sure what version you are on, and if SAP has provided support for this in the latest SPs.
HTTP_AAE Adapater - using of dynamic url parame... | SCN
If HTTP_AAE approach can't work for you, you can use the SOAP adapter - check ASMA and "Do not use SOAP envelope"
Here is a snippet of the code you can use in a UDF for your message mapping
//write your code here
DynamicConfiguration conf = (DynamicConfiguration)container
.getTransformationParameters()
.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP", "TServerLocation");
String url = "http://local.yahooapis.com/MapsService/V1/mapImage?appid=" + appid + "--&street=" + street + "&city=" + city + "&zip=" + zip;
conf.put(key, url);
return appid;
Rgds
Eng Swee -
Hi
Im following this blog http://scn.sap.com/community/pi-and-soa-middleware/blog/2014/09/12/html-form-upload-using-http-plain-adapter-with-java-mapping but I have encountered an issue which I cannot solve.
My issue is, in addition to the required output, I am also getting unwanted XML added, which originates from the Message Type in the source Service Interface,
i.e.
Content-Type: multipart/form-data; boundary=--ejjeeffe1
--ejjeeffe1
Content-Disposition: form-data; name="event"
Content-Type: text/plain
Import File
--ejjeeffe1
Content-Disposition: form-data; name="Filename"
Content-Type: text/plain
TestFile.zip
--ejjeeffe1
Content-Disposition: form-data; name="content";filename="TestFile.zip"
Content-Type: application/zip
Content-Transfer-Encoding: binary
<?xml version="1.0" encoding="UTF-8"?><__EmptyDoc></__EmptyDoc>
--ejjeeffe1
Any suggestions much appreciated.
Regards
SteveHi Stephen
The xml must be getting added in the below part of the code. It is coming from arg[0]
You can put a check and get it removed.
while ((len = arg0.read(buffer)) != -1) {
arg1.write(buffer, 0, len);
Regards
Osman -
Need good example HTTP POST Business Service
Hi guys,
I've looked into the provided Reference Implementations in JDE for HTTP Post examples, but they only provided a business service (JRH90I13) and published business service (JPRH90I0) without any C BSFN to execute them. Does anyone have possible examples of how this works?
Thanks in advance.Hi Gregory,
In fact when i used route node to invoke a business service i modified "URL dynamically by setting the value in the pipeline variable $outbound", it worked here.
Same i tried on Service Callout, it did not work. Also when we create a service callout action it expects us to select either "confugure soap body" or "configure payload document" followed by
1) Request Document variable
2) Response Document variable.
What parameter should i set for above fields?
Thanks,
Anup -
HTTP POST FROM EXTERNAL SYSTEM TO SAP AII 4.0
Hello.
We are using SAP AII 4.0 and trying to post from the device controller to SAP AII. We are not clear about the format of the HTTP POST command. Could someone please provide an example of the HTTP POST command from the device controller to SAP AII. I am looking for the format of the HTTP POST command for all field such as port, IP address, etc.
I am looking for a complete example.
Thanks in advance for your help.
Regards,
Bob BerneckHi Bob,
Please check the following link for help
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/419e11e7-0801-0010-1e8f-9191ba03f1fc .
Please check the help.sap.com link for help
http://help.sap.com/saphelp_autoid40/helpdata/en/index.htm
If you need some latest doc on AII and DC please mail me at [email protected] or let me know you mail ID
Thanks N Regards
Santosh
Reward if helpful !!! -
Synchronous HTTP POST on Asynchronous Server
I am writing an asynchronous event driven server that must accept synchronous HTTP posts.
For example:
- Client sends HTTP POST to server
- Server fires an internal asynchronous event
- Some time later, another asynchronous event
- Server returns an HTTP response
If I attempt to do this with Servlets, each POST will result in a separate thread that waits for the response. For a high number of posts, this could result in a massive amount of threads. What I would rather happen is that each POST waits for the HTTP response without the server having to waste a thread.
Is there a way to do this?
Thanks.
ChrisHi,
Thanks for the sharing.J
Jeremy Wu
TechNet Community Support -
Tobase64 HTTP-Redirect binding
Still struggling with encrypting a SAML request to be sent to an ADFS server. Turns out there are multiple ways to encode strings. By default the utf-8 encrption option with the toBase64 tag uses HTTP-Post binding. I need it my script to use HTTP-REDIRECT binding.
The code I'm using is this:
<CFSAVECONTENT VARIABLE = "samlAssertionXML">
<samlp:AuthnRequest IssueInstant="2014-09-16T19:24:18.343Z" ID="_kdls_testing_application_for_single_sign_on" Version="2.0" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">https://localhost/sde</saml:Issuer>
<samlp:NameIDPolicy AllowCreate="true"/>
</samlp:AuthnRequest>
</cfsavecontent>
<cfscript>
samlAssertionXML = toBase64(toString(TRIM(samlAssertionXML)), "utf-8");
</cfscript>
When I take the string that gets returned by the toBase64 tag and use the SAML 2.0 Debugger the string gets de-crypted correctly. But when I re-encrypt the string using HTTP-REDIRECT binding I get a different encryption string. If I re-encrypt using the HTTP-POST binding I get the string I passed to the toBase64 tag.
So my question is how to I tell CF that I need to use HTTP-REDIRECT binding when I encrypt the string?After a little searching around I found the following snippet of code that seems to do the trick. It adds a ton of AAAAAAAAAAAAAA's to the encrypted string but the ADFS server isn't complaining and as I have a fast approaching deadline I'll live with them for now. Still if you understand JAVA (I haven't developed in that language so I really don't) please clue me in to how this code does what it does.
<!--- perform Deflate, Base64 encode, and URL encode --->
<cfscript>
saml_deflate = createObject("java", "java.util.zip.Deflater");
saml_deflate.init(9,true);
saml_deflate.setInput(samlAssertionXML.getBytes("UTF-8"));
saml_deflate.finish();
compressedDataLength = saml_deflate.deflate(output);
data64 = toBase64(output,"UTF-8");
data64url = urlencodedformat(data64);
</cfscript> -
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 -
Beginner question: support to HTTP POST om Oracle AS
Hi!
I don't know if this is a suitable forum but since i use JDeveloper and Oracle BPEL I'll try my luck here :).
I have a Java web application built in JDeveloper and a couple of BPEL processes.
In these processes I use Java embedding (a piece of Java code) that opens a connection to a given URL and post a XML message to this URL. I didn't have much problems creating these processes.
Now I have to provide a support to HTTP POST on my side. Since web application and services development are quite new to me I hope someone can point me the right way to do this. The requirements I have are: I can have a single URL to which the http POSTs will be issued.
If I understand correctly I cant use a web service since I have to enable different types of XML posts. What are my options? Can I create some kind of listener for http POSTs? Can I create a jspx that will 'wait' for http posts and than call some of mine BPEL processes? Is there a way to create a BPEL process that 'waits' for http POSTs? Are there other options.
I'd really appreciate any pointers on this.
Regards,
BB.Frank,
I've tried creating a Servlet listener that implements HttpSessionListener interface. Now I have two methods, sessionCreated and sessionDestroyed but I don't know where to go next. I can't find any documentation on this issue yet.
Should I create a jspx page with form node that has method attribute set to POST or maybe I don't even need a web page? I already have a login page that has a form with method set to POSt, will this pose any kind of troubles for me?
I apologize for any stupid questions but as I said I have no experience in doing this and las couple of days I'm searching and reading different documentation on this topic so any more pointers would be appreciated.
BB
Maybe you are looking for
-
Remote Desktop Connection Broker role fails to install
Hi, I am having a situation where I cannot install the RDS Connection Broker on a Windows 2012 R2 that also has AD DS installed. I understand with Windows 2012 R2, you should be able to do this. I suspect that the Default Domain Controller Policy mi
-
Problem opening pdf of my bank statement using IM 9
Has anyone else had this problem? Since installing Internet Explorer 9 my Adobe reader will not open the PDF file for my bank statement. Thanks
-
Connect Oracle 10g DEveloper Suite to Oracle 10g Express Edition
I installed both the free Data Base 10g XE and Developer Suite 10g in a local machine. need to know how to connect both products to begin to work with. I did several attempts to do so using Developer Suite Net Configuration Assistance, Net Manager an
-
Hi, AS3: How to get general id (or) name from xml loaded images. bcoz, i want to drag and drop that images in generic method. Now, i currently used the event.target.name for each one. So, code length was too large. See my code below. /*********loadin
-
FCP X not recognizing external drive
I have an external 2T G Drive that is formatted as FAT so I can exchange files with a partners PC. It shows up in the finder but not in FCP X when I try to move a project or event.