Redirect service from http to https, session is lost
I have setup two web sites using NT 4.0 IIS so that both
"http://nossl/mybeanbeans" and "https://ssltest/mybeanbeans"
can execute the commerce server mybuybeans example.
Then I modify the shoppingCartDetail.jsp and commandAssembler.jsp
(files attached) hoping that when I click the "Checkout" button
on the Shopping Cart screen, it will redirect the service from
http to https.
The URL is redirected to "https" but it depicts the welcome page
instead of showing the Order Check Out page.
Previous session information is lost.
Can anyone help me?
Thanks
<!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
<%@ page errorPage="../error.jsp" %>
<%@ page import="java.lang.reflect.*" %>
<%@ page import="theory.smartx.command.*" %>
<%@ page import="examples.buybeans.client.*" %>
<%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase" %>
<%@ page implements="BuyBeansJspConstants" %>
<pt:monitorsession />
<%@ include file="monitorSessionTracker.jsp" %>
<%
// Get the Command class name to instantiate
String commandClassName = request.getParameter(COMMAND_CLASS_NAME_PARAM);
System.out.println("COMMAND_CLASS_NAME_PARAM : " + commandClassName);
if (commandClassName != null) {
// Get the BuyBeansSessionTracker
BuyBeansSessionTracker sessionTracker = (BuyBeansSessionTracker)session.getValue(com.beasys.commerce.portal.admin.PortalAdminHelper.qualifiedName(BUYBEANS_SESSION_TRACKER_KEY ,request));
// Construct an array of 1 element to hold the BuyBeansSessionTracker
// parameter type that the constructor takes.
Class constructorParamTypes[] = new Class[1];
constructorParamTypes[0] = sessionTracker.getClass();
try {
// Get the Class for the concrete Command
Class commandClass = Class.forName(commandClassName);
// Get constructor that takes the BuyBeansSessionTracker as argument
Constructor commandClassCtor = commandClass.getConstructor(constructorParamTypes);
// Set the BuyBeansSessionTracker argument for the constructor
Object ctorParams[] = new Object[1];
ctorParams[0] = sessionTracker;
// Create the instance of the concrete Command
Command command = (Command) commandClassCtor.newInstance(ctorParams);
// Pass the HttpRequest to the command so that it can
// read the parameter and then execute it.
command.assemble(request);
// Store the outstanding command in the session tracker so that
// the main portal page can execute it.
sessionTracker.setCommand(command);
setOverrideDestination(request, getHomePage(request));
%>
<%-- Added by Warren --%>
<%
String queryString = request.getQueryString();
String encodeURL=response.encodeURL(getTrafficURI(request));
String redirectURL=response.encodeRedirectURL("https://ssltest"+encodeURL);
System.out.println("====================");
System.out.println("queryString:" + queryString);
System.out.println("encodeURL:" + encodeURL);
System.out.println("redirectURL:" + redirectURL);
System.out.println("========before sendRedirect============");
response.sendRedirect(redirectURL);
System.out.println("========after sendRedirect============");
%>
<%
System.out.println("======== end commandAssemblerSSL ============");
catch (ClassNotFoundException cnfe) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, cnfe);
catch (NoSuchMethodException nsme) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, nsme);
catch (IllegalAccessException illegalAccessEx) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, illegalAccessEx);
catch (IllegalArgumentException illegalArgEx) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, illegalArgEx);
catch (InstantiationException ie) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ie);
catch (InvocationTargetException ite) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ite);
%>
<!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
<%@ taglib uri="lib/wljsp.jar" prefix="wl" %>
<%@ taglib uri="lib/esportal.jar" prefix="pt" %>
<%@ page errorPage="../error.jsp" %>
<%@ page import="com.beasys.commerce.portal.Portlet" %>
<%@ page import="examples.buybeans.client.*" %>
<%@ page import="theory.smart.ebusiness.item.*" %>
<%@ page import="theory.smart.ebusiness.order.*" %>
<%@ page import="theory.smart.axiom.units.*" %>
<%@ page import="com.beasys.commerce.portal.tags.PortalTagConstants" %>
<%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
<%@ page implements="BuyBeansJspConstants"%>
<pt:monitorsession />
<%@ include file="monitorSessionTracker.jsp" %>
<SCRIPT LANGUAGE="JavaScript">
<!--
function submitShoppingCartDetailsForm(commandClassName, bbContent)
document.ShoppingCartDetailForm.<%= COMMAND_CLASS_NAME_PARAM %>.value = commandClassName;
document.ShoppingCartDetailForm.<%= BUYBEANS_CONTENT_PARAM %>.value = bbContent;
document.ShoppingCartDetailForm.submit();
//-->
</SCRIPT>
<%
BuyBeansSessionTracker sessionTracker = (BuyBeansSessionTracker)getSessionValue( BUYBEANS_SESSION_TRACKER_KEY, request );
// Get the current Order
Order currOrder = sessionTracker.getEBusinessSession().getOrder();
// Get all the items in the cart as a Vector of orderlines from the session tracker
java.util.Vector orderLines = sessionTracker.getCartOrderLines();
%>
<!-- Display the items from the shopping cart -->
<table width="99%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr bgcolor=FFFFFF>
<td> </td>
<tr bgcolor="#FFFFFF">
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="3" align="center" dwcopytype="CopyTableRow">
<tr>
<td colspan="6"><font face="Arial, Helvetica, Verdana, sans-serif"><%@ include file="contentMessages.jsp" %></font></td>
</tr>
<tr>
<td colspan="6"> <%= JspHelperBase.formatAsTitle("Shopping Cart - SSL*** ") %> </td>
</tr>
<tr>
<td><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Product ID</b></font></td>
<td><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Description</b></font></td>
<td><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Quantity</b></font></td>
<td align="right"><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Price</b></font></td>
<td align="right"><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Subtotal</b></font></td>
<td></td>
</tr>
<form method="get" name="ShoppingCartDetailForm" action="<%= response.encodeURL(getTrafficURI(request)) %>" >
<%
// Declare a currency format type
Quantity one = QuantityHome.create();
one.setCount(1);
// Print out all the items in the cart
for(int i = 0; i<orderLines.size(); i++ ) {
OrderLine currOrderLine = (OrderLine)orderLines.elementAt(i);
Item myItem = currOrderLine.getItem();
ItemValue iv = myItem.getItemByValue();
String desc = iv.description;
String id = iv.identifier;
// Specify the color of the row
String rowColor = (i%2 == 0) ? ROW_BACKGROUND_COLOR_1 : ROW_BACKGROUND_COLOR_2 ;
// Specify the name of the quantity text field - name it as qty+i
String qtyInputName = ORDER_QUANTITY + i;
// Specify the name of the remove checkbox
String removeInputName = REMOVE_CHECKED + i;
%>
<!-- print out the details of each item -->
<tr bgcolor="<%= rowColor %>">
<td><%= id %></td>
<td><%= desc %></td>
<td>
<input type="text" name="<%= qtyInputName %>" size=3 maxlength=3 value= "<%= JspHelperBase.formatQuantityAsInteger(currOrderLine.getQuantity()) %>" >
</td>
<td align="right"><%= JspHelperBase.formatPriceAsCurrency(myItem.calculatePrice(one, null)) %></td>
<td align="right"><%= JspHelperBase.formatPriceAsCurrency(currOrderLine.getLinePrice(null)) %></td>
<td><input type="checkbox" name="<%= removeInputName %>" value="<%=REMOVE_CHECKED %>" > Remove </td>
</tr>
<%
%>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td align="right"> <font face="Arial,Helvetica,sans-serif" size="3" color="#666600"><b>Total:</b></font></td>
<td>
<div align="right"><font face="Arial, Helvetica, sans-serif" size="3" color="#990000"><b><%= JspHelperBase.formatPriceAsCurrency(currOrder.getTotalPrice()) %>
</b> </font> </div>
</td>
<td>
<input type="button" name="<%=UPDATE_CART_BUTTON %>"
onClick="submitShoppingCartDetailsForm('examples.buybeans.client.UpdateShoppingCartCommand', '<%= SHOPPING_CART_DETAILS_JSP %>')"
value="Update">
</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>
<input type="button" name="<%=CHECKOUT_BUTTON %>"
onClick="submitShoppingCartDetailsForm('examples.buybeans.client.CheckOutCommand', '<%= CHECKOUT_JSP %>')"
value="Checkout">
</td>
</tr>
<tr colspan="6">
<td> </td>
</tr>
<%-- DESTINATION_TAG is required because the form action goes to getTrafficURI() --%>
<%-- In this case, the destination is the command assembler --%>
<%-- <input type=hidden name="<%= DESTINATION_TAG %>" value="<%= COMMAND_ASSEMBLER_JSP %>"> --%>
<%-- The following line is used for testing SSL redirect --%>
<input type=hidden name="<%= DESTINATION_TAG %>" value="/portals/buybeans/portlets/commandAssemblerSSL.jsp" >
<%-- The following two parameters are set by the JavaScript function based --%>
<%-- on the button that the user presses (default value are provided ) --%>
<input type=hidden name="<%= BUYBEANS_CONTENT_PARAM %>" value="<%= SHOPPING_CART_DETAILS_JSP %>">
<input type=hidden name="<%= COMMAND_CLASS_NAME_PARAM %>" value="examples.buybeans.client.UpdateShoppingCartCommand">
</form>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
the problem is when the cookie is exchanged between the browser
and the app server IE treats request coming from http://bc.com:7001
and http://bc.com:7002 as one and the same : so the browser maintains
the same session but netscape treats this as responses coming from two
different servers and hence u lost the session.
I assume u are having this problem with netscape and not IE.
the solution is set this property in the weblogic.properties file
weblogic.httpd.session.cookie.domain=.bc.com
-Sumanth
"senthil ramiah" <[email protected]> wrote in message
news:[email protected]...
>
> Hi,
> Did you receive any replies for this question.
> thanx
> senthil
>
> Warren Li <[email protected]> wrote:
> >
> >I have setup two web sites using NT 4.0 IIS so that both
> > "http://nossl/mybeanbeans" and "https://ssltest/mybeanbeans"
> >can execute the commerce server mybuybeans example.
> >
> > Then I modify the shoppingCartDetail.jsp and commandAssembler.jsp
> > (files attached) hoping that when I click the "Checkout" button
> > on the Shopping Cart screen, it will redirect the service from
> > http to https.
> >
> >The URL is redirected to "https" but it depicts the welcome page
> > instead of showing the Order Check Out page.
> > Previous session information is lost.
> >
> >Can anyone help me?
> >
> >Thanks
> >
> >
> >
> ><!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
> >
> ><%@ page errorPage="../error.jsp" %>
> ><%@ page import="java.lang.reflect.*" %>
> ><%@ page import="theory.smartx.command.*" %>
> ><%@ page import="examples.buybeans.client.*" %>
> >
> ><%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase" %>
> ><%@ page implements="BuyBeansJspConstants" %>
> >
> ><pt:monitorsession />
> >
> ><%@ include file="monitorSessionTracker.jsp" %>
> >
> ><%
> > // Get the Command class name to instantiate
> > String commandClassName =
request.getParameter(COMMAND_CLASS_NAME_PARAM);
> > System.out.println("COMMAND_CLASS_NAME_PARAM : " + commandClassName);
> > if (commandClassName != null) {
> >
> > // Get the BuyBeansSessionTracker
> > BuyBeansSessionTracker sessionTracker =
(BuyBeansSessionTracker)session.getValue(com.beasys.commerce.portal.admin.Po
rtalAdminHelper.qualifiedName(BUYBEANS_SESSION_TRACKER_KEY ,request));
> >
> > // Construct an array of 1 element to hold the
BuyBeansSessionTracker
> > // parameter type that the constructor takes.
> > Class constructorParamTypes[] = new Class[1];
> > constructorParamTypes[0] = sessionTracker.getClass();
> >
> > try {
> > // Get the Class for the concrete Command
> > Class commandClass = Class.forName(commandClassName);
> >
> > // Get constructor that takes the BuyBeansSessionTracker as
argument
> > Constructor commandClassCtor =
commandClass.getConstructor(constructorParamTypes);
> >
> > // Set the BuyBeansSessionTracker argument for the constructor
> > Object ctorParams[] = new Object[1];
> > ctorParams[0] = sessionTracker;
> >
> > // Create the instance of the concrete Command
> > Command command = (Command)
commandClassCtor.newInstance(ctorParams);
> >
> > // Pass the HttpRequest to the command so that it can
> > // read the parameter and then execute it.
> > command.assemble(request);
> >
> > // Store the outstanding command in the session tracker so that
> > // the main portal page can execute it.
> > sessionTracker.setCommand(command);
> > setOverrideDestination(request, getHomePage(request));
> >%>
> >
> ><%-- Added by Warren --%>
> ><%
> > String queryString = request.getQueryString();
> > String encodeURL=response.encodeURL(getTrafficURI(request));
> > String
redirectURL=response.encodeRedirectURL("https://ssltest"+encodeURL);
> > System.out.println("====================");
> > System.out.println("queryString:" + queryString);
> > System.out.println("encodeURL:" + encodeURL);
> > System.out.println("redirectURL:" + redirectURL);
> > System.out.println("========before sendRedirect============");
> > response.sendRedirect(redirectURL);
> > System.out.println("========after sendRedirect============");
> >%>
> >
> ><%
> > System.out.println("======== end commandAssemblerSSL ============");
> > }
> > catch (ClassNotFoundException cnfe) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, cnfe);
> > }
> > catch (NoSuchMethodException nsme) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, nsme);
> > }
> > catch (IllegalAccessException illegalAccessEx) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600,
illegalAccessEx);
> > }
> > catch (IllegalArgumentException illegalArgEx) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600,
illegalArgEx);
> > }
> > catch (InstantiationException ie) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ie);
> > }
> > catch (InvocationTargetException ite) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ite);
> > }
> > }
> >
> >%>
> >
> >
> ><!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
> >
> ><%@ taglib uri="lib/wljsp.jar" prefix="wl" %>
> ><%@ taglib uri="lib/esportal.jar" prefix="pt" %>
> >
> ><%@ page errorPage="../error.jsp" %>
> ><%@ page import="com.beasys.commerce.portal.Portlet" %>
> ><%@ page import="examples.buybeans.client.*" %>
> ><%@ page import="theory.smart.ebusiness.item.*" %>
> ><%@ page import="theory.smart.ebusiness.order.*" %>
> ><%@ page import="theory.smart.axiom.units.*" %>
> ><%@ page import="com.beasys.commerce.portal.tags.PortalTagConstants" %>
> >
> ><%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
> ><%@ page implements="BuyBeansJspConstants"%>
> >
> >
> ><pt:monitorsession />
> >
> ><%@ include file="monitorSessionTracker.jsp" %>
> >
> ><SCRIPT LANGUAGE="JavaScript">
> ><!--
> >function submitShoppingCartDetailsForm(commandClassName, bbContent)
> >{
> > document.ShoppingCartDetailForm.<%= COMMAND_CLASS_NAME_PARAM %>.value
= commandClassName;
> > document.ShoppingCartDetailForm.<%= BUYBEANS_CONTENT_PARAM %>.value =
bbContent;
> > document.ShoppingCartDetailForm.submit();
> >}
> >//-->
> ></SCRIPT>
> >
> ><%
> > BuyBeansSessionTracker sessionTracker =
(BuyBeansSessionTracker)getSessionValue( BUYBEANS_SESSION_TRACKER_KEY,
request );
> >
> > // Get the current Order
> > Order currOrder = sessionTracker.getEBusinessSession().getOrder();
> >
> > // Get all the items in the cart as a Vector of orderlines from the
session tracker
> > java.util.Vector orderLines = sessionTracker.getCartOrderLines();
> >%>
> >
> >
> ><!-- Display the items from the shopping cart -->
> > <table width="99%" border="0" cellspacing="0" cellpadding="0"
align="center">
> > <tr bgcolor=FFFFFF>
> > <td> </td>
> > <tr bgcolor="#FFFFFF">
> > <td>
> > <table width="95%" border="0" cellspacing="0" cellpadding="3"
align="center" dwcopytype="CopyTableRow">
> > <tr>
> > <td colspan="6"><font face="Arial, Helvetica, Verdana,
sans-serif"><%@ include file="contentMessages.jsp" %></font></td>
> > </tr>
> > <tr>
> > <td colspan="6"> <%= JspHelperBase.formatAsTitle("Shopping
Cart - SSL*** ") %> </td>
> > </tr>
> > <tr>
> > <td><font face="Arial,Helvetica,sans-serif" color="#666600"
size="2"><b>Product ID</b></font></td>
> > <td><font face="Arial,Helvetica,sans-serif" color="#666600"
size="2"><b>Description</b></font></td>
> > <td><font face="Arial,Helvetica,sans-serif" color="#666600"
size="2"><b>Quantity</b></font></td>
> > <td align="right"><font face="Arial,Helvetica,sans-serif"
color="#666600" size="2"><b>Price</b></font></td>
> > <td align="right"><font face="Arial,Helvetica,sans-serif"
color="#666600" size="2"><b>Subtotal</b></font></td>
> > <td></td>
> > </tr>
> >
> > <form method="get" name="ShoppingCartDetailForm" action="<%=
response.encodeURL(getTrafficURI(request)) %>" >
> > <%
> > // Declare a currency format type
> > Quantity one = QuantityHome.create();
> > one.setCount(1);
> >
> > // Print out all the items in the cart
> > for(int i = 0; i<orderLines.size(); i++ ) {
> > OrderLine currOrderLine =
(OrderLine)orderLines.elementAt(i);
> > Item myItem = currOrderLine.getItem();
> > ItemValue iv = myItem.getItemByValue();
> > String desc = iv.description;
> > String id = iv.identifier;
> >
> > // Specify the color of the row
> > String rowColor = (i%2 == 0) ? ROW_BACKGROUND_COLOR_1 :
ROW_BACKGROUND_COLOR_2 ;
> >
> > // Specify the name of the quantity text field - name
it as qty+i
> > String qtyInputName = ORDER_QUANTITY + i;
> >
> > // Specify the name of the remove checkbox
> > String removeInputName = REMOVE_CHECKED + i;
> >
> >
> > %>
> > <!-- print out the details of each item -->
> > <tr bgcolor="<%= rowColor %>">
> > <td><%= id %></td>
> > <td><%= desc %></td>
> > <td>
> > <input type="text" name="<%= qtyInputName %>" size=3
maxlength=3 value= "<%=
JspHelperBase.formatQuantityAsInteger(currOrderLine.getQuantity()) %>" >
> > </td>
> > <td align="right"><%=
JspHelperBase.formatPriceAsCurrency(myItem.calculatePrice(one, null))
%></td>
> > <td align="right"><%=
JspHelperBase.formatPriceAsCurrency(currOrderLine.getLinePrice(null))
%></td>
> > <td><input type="checkbox" name="<%= removeInputName %>"
value="<%=REMOVE_CHECKED %>" > Remove </td>
> > </tr>
> > <%
> > }
> > %>
> > <tr>
> > <td> </td>
> > <td> </td>
> > <td> </td>
> > <td align="right"> <font face="Arial,Helvetica,sans-serif"
size="3" color="#666600"><b>Total:</b></font></td>
> > <td>
> > <div align="right"><font face="Arial, Helvetica,
sans-serif" size="3" color="#990000"><b><%=
JspHelperBase.formatPriceAsCurrency(currOrder.getTotalPrice()) %>
> > </b> </font> </div>
> > </td>
> > <td>
> > <input type="button" name="<%=UPDATE_CART_BUTTON %>"
> >
onClick="submitShoppingCartDetailsForm('examples.buybeans.client.UpdateShopp
ingCartCommand', '<%= SHOPPING_CART_DETAILS_JSP %>')"
> > value="Update">
> > </td>
> > </tr>
> > <tr>
> > <td> </td>
> > <td> </td>
> > <td> </td>
> > <td> </td>
> > <td> </td>
> > <td>
> > <input type="button" name="<%=CHECKOUT_BUTTON %>"
> >
onClick="submitShoppingCartDetailsForm('examples.buybeans.client.CheckOutCom
mand', '<%= CHECKOUT_JSP %>')"
> > value="Checkout">
> > </td>
> > </tr>
> > <tr colspan="6">
> > <td> </td>
> > </tr>
> >
> > <%-- DESTINATION_TAG is required because the form action goes
to getTrafficURI() --%>
> > <%-- In this case, the destination is the command
--%>
> ><%-- <input type=hidden name="<%= DESTINATION_TAG %>" value="<%=
COMMAND_ASSEMBLER_JSP %>"> --%>
> >
> > <%-- The following line is used for testing SSL redirect --%>
> > <input type=hidden name="<%= DESTINATION_TAG %>"
value="/portals/buybeans/portlets/commandAssemblerSSL.jsp" >
> >
> > <%-- The following two parameters are set by the JavaScript
function based --%>
> > <%-- on the button that the user presses (default value are
provided ) --%>
> > <input type=hidden name="<%= BUYBEANS_CONTENT_PARAM %>"
value="<%= SHOPPING_CART_DETAILS_JSP %>">
> > <input type=hidden name="<%= COMMAND_CLASS_NAME_PARAM %>"
value="examples.buybeans.client.UpdateShoppingCartCommand">
> >
> > </form>
> > </table>
> > </td>
> > </tr>
> > <tr>
> > <td> </td>
> > </tr>
> ></table>
> >
>
Similar Messages
-
HT5467 how can i use location services from my pc to find my lost ipod?
how can i use location services from my pc to find my lost ipod?
Find My iPod
http://www.apple.com/sg/icloud/features/find-my-iphone.html -
Calling Web Service from EJB using HTTP Client
Hi,
Scenario:
I need to Call a Web Service from an EJB Application.I used HttpClient for calling the Web Service in the EJB Application. When i call the execute method of the HttpCLient it throws an exception
The element type "META" must be terminated by the matching end-tag "</META>"
The input XML does not have a node called META.
When i call the Web Service using Http Client form an Java Application it is working fine.
Kindly Suggest me the changes/steps that needs to be done
Regards,
S.V.Satish KumarHi Manish,
SOAP adapter does pass the message to XI (this message contains SOAP envelope although XI expects to get message without it), and during the mapping step i get "Runtime Exception in Message-Mapping transformatio~".
I suppose it's because i created proxy manually. I did so because when i imported WSDL, and tried to generate proxy in CRM, i got an error message that said that proxy couldn't be generated because external definitions are only allowed in XI 3. But my XI version is 3.0! And when I generate the same proxy in my R/3 system that is installed on WAS 640, it works.
What can I do?
Cheers,
Anya. -
Calling Web service From R/3
Hi ,
we have a requirement, where we have to call a web service in Biz talk from SAP and compile the received data in R/3 as a report.
has any one worked on such a requirement, could you please provide your inputs on the same.
Thanks,
Raghavendra[Calling Web service From R/3|http://forums.sdn.sap.com/search.jspa?threadID=&q=CallingWebserviceFromR/3&objID=f50&dateRange=all&numResults=15]
-
New to Web Services - need to call a HTTPS web service from PL/SQL
I am new to Web Services and need to call HTTPS web service from PL/SQL program. I am using 10g Database.
I have been reading there are 2 options -
1. UTL_HTTP - with this package its possible to call HTTPS web services
2. UTL_DBWS
Questions -
1. Is it possible to call a HTTPS web service using UTL_DBWS ? I have not been able to find any information on it.
2. Can someone point me to UTL_HTTP and UTL_DBWS examples calling a HTTPS web service ?
3. The HTTPS web service that I need to call needs username/password to connect - how will I incorporate this in the pl/sql code ?
Appreciate the help.
Cheers,
newWebServicesUserHi,
1. UTL_DBWS not work for https from what I understand
2. Here is a sample example:
[http://www.oracle-base.com/articles/9i/ConsumingWebServices9i.php#]
Be careful, you must change http/1.0 IN 1.1 inside package SOAP_API.
Here is an example for a prime number where the SOAP message is already construct:
CREATE OR REPLACE procedure test_ws_2
IS
http_req utl_http.req;
http_resp utl_http.resp;
request_env varchar2(32767);
response_env varchar2(32767);
begin
-- Set proxy details if no direct net connection.
UTL_HTTP.set_proxy('http://<USER>:<PASS>@10.0.2.21:8070', NULL);
UTL_HTTP.set_persistent_conn_support(TRUE);
request_env:='<?xml version="1.0" encoding="utf-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">'||
'<SOAP-ENV:Body><GetPrimeNumbers xmlns="http://microsoft.com/webservices/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">'||
'<max xsi:type="xsd:int">10</max>'||
'</GetPrimeNumbers></SOAP-ENV:Body></SOAP-ENV:Envelope>';
dbms_output.put_line('Length of Request:' || length(request_env));
dbms_output.put_line ('Request: ' || request_env);
http_req := utl_http.begin_request('http://www50.brinkster.com/vbfacileinpt/np.asmx','POST', utl_http.HTTP_VERSION_1_1);
utl_http.set_header(http_req, 'Content-Type', 'text/xml; charset=utf-8');
utl_http.set_header(http_req, 'Content-Length', length(request_env));
utl_http.set_header(http_req, 'SOAPAction', '"http://microsoft.com/webservices/GetPrimeNumbers"');
utl_http.write_text(http_req, request_env);
dbms_output.put_line('');
http_resp := utl_http.get_response(http_req);
dbms_output.put_line('Response Received');
dbms_output.put_line('--------------------------');
dbms_output.put_line ( 'Status code: ' || http_resp.status_code );
dbms_output.put_line ( 'Reason phrase: ' || http_resp.reason_phrase );
utl_http.read_text(http_resp, response_env);
dbms_output.put_line('Response: ');
dbms_output.put_line(response_env);
utl_http.end_response(http_resp);
end test_ws_2;
Otherwice for testing url, i recommand you to use that function: Re: Error using UTL_HTTP over HTTPS
it's a verry helpful function when you have an error.
wrote:
When testing using UTL_HTTP, you MUST ensure that you open a new session after importing the SSL certificates into your Wallet,
as I've learned (the hard way) that existing sessions point to the wallet contents that were present when the session was opened.
If you don't realise/know this, it can cause a lot of additional frustration during testing, when you keep getting the ORA-29024 exception AFTER
you've imported the SSL certificates................. ;) 3. i think you can use that after the begin_request but not sure :
UTL_HTTP.set_authentication(r => http_req,
username => ,
password => ,
scheme => ,
for_proxy => );
Edited by: Malebodja on Oct 22, 2009 6:53 AM
Edited by: Malebodja on Oct 22, 2009 6:55 AM -
URL redirect - how to switch from https to http
Hi, all.
We have some requirement that the portal session be switched to https on some iviews while the rest of the contents are in http. I am thinking of using url redirect on the web dispatcher.
What I found is that the url redirect from http to https works great. Now if I want to switch back to http, the redirect doesn't work. Note that the http port is 80 and https port is 443 on the web dispatcher. To test, here is the parameter I did to switch from http to https. This works and transforms the url from http://ozonehomeep3.xxxxxxxxx/irj/portal/zsap_xxxxx to https://ozonehomeep3.xxxxxxxxx/irj/portal/zsap_xxxxxxxxxxxx
icm/HTTP/redirect_0 = PREFIX=/, FROM=/irj/portal/zsap_, FOR=ozonehomeep3, FROMPROT=http, PROT=https, HOST=ozonehomeep3.XXXXXX
If I flip it back the other way:
icm/HTTP/redirect_0 = PREFIX=/, FROM=/irj/portal/zsap_, FOR=ozonehomeep3, FROMPROT=https, PROT=http, HOST=ozonehomeep3.XXXXXX
When I connect using the url https://ozonehomeep3.xxxxxxxxx/irj/portal/zsap_xxxxxxxxxxxx, it ignores the parameter and the redirect to http did not happen.
What is wrong?
Thanks,
Jonathan.Hello,
I've had a similar problem for one of my customers.
I've tried to do it on a root level, just Https://FQDN:port_https/ to http://FQDN:Port_http/
I've used this parameter to solve it:
icm/HTTP/redirect_0 = PREFIX=/, FOR=FQDN, FROMPROT=HTTPS, HOST=FQDN, PORT=80, PROT=http
maby you should try:
icm/HTTP/redirect_0 = PREFIX=/, FROM=/irj/portal/zsap_, FOR=FQDN, FROMPROT=HTTPS, HOST=FQDN, PORT=80, PROT=http, TO=/irj/portal/zsap_
You should also verify that the standard http port (80) are open in the firewall from the outside, just take a telnet session to FQDN and port 80
to quickly determined if the firewall policy are right.
Good luck!
Kind Regards
Håvard Fjukstad. -
SolMan 7.1 SPS 11 - deactivate redirect from HTTP to HTTPS
Hi Gurus,
I am currently experiencing the case, that I can't call HTTP pages anymore.
Before I made the check described under SOLMAN_SETUP -> System Preparation -> 2. Check Installation -> Manual Activities -> Check Secure Web Browser Comm. (HTTPS) I was able to call SOLMAN_SETUP with HTTP and SSO worked (starting the Browser by calling transaction SOLMAN_SETUP in GUI).
After I have executed the check, I have changed nothing but to execute the check and make sure there is a working HTTPS service.
Now I am experiencing the case that if I start transaction SOLMAN_SETUP I get a browser call HTTPS. If I change the protocol and the port to HTTP it jumps directly to HTTPS. This behavior makes me think that some configurations steps have activated a force redirect from HTTP to HTTPS.
This specially gives me some headache because all other (satellite)-systems are not configured to use secured communication and the certificates are not rolled out.
Currently I can't afford the need to roll out certificates all over the landscape.
To buy me some more time:
How can I check if my feeling about the redirect is correct?
If there is a redirect, how can I disable this so that I can work with HTTP-URLs?
I appreciate your help.
Kind regards,
Niklas TheisHi Niklas,
Perhaps this note can give You a little hint how to reverse to the HTTP setting again:
1716999 - Enable HTTPS for Solution Manager web service communications
Also check and adjust if necessary the setting for the webservice “wd_sise_main_app”: Change the setting to “Switch to HTTP”.
In addtion to that You also might look into:
- the ACL file; if any block against HTTP has been setup
Regards,
Kurt -
HTTP error when trying to access RESTful web service from application
Hi,
We are getting the following error when trying to access a RESTful web service coming from Apex workspace 4.2.1 and Apex listener 2.1:
ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-29024: Certificate validation failure
In the Debug report, besides the above I also see:
error_backtrace: ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 543 ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 1164 ORA-06512: at "APEX_040200.WWV_FLOW_PROCESS", line 396
We get that error whether we use https or http in the URI pointing to the web service. When I test the Web Service in Workspace RESTful service GUI, I get the data back. When I go build an application with a report calling the RESTful Web Service I get that error. Both the Application and the Workspace RESTful services are on the same Apex environment and even the same workspace.
What is odd is that I can actually put the URL of the web service into a browser and I get the data: (using the demo hr data in sample RESTful services.)
IN browser-- https://weblogic-dev.edu/apex/ace/hr/empinfo/
yields:
7839,KING,PRESIDENT,,1981-11-17T05:00:00Z,5000,,10 7698,BLAKE,MANAGER,7839,1981-05-01T04:00:00Z,2850,,30 7782,CLARK,MANAGER,7839,1981-06-09T04:00:00Z,2450,,10 7566,JONES,MANAGER,7839,1981-04-02T05:00:00Z,2975,,20 7788,SCOTT,ANALYST,7566,1982-12-09T05:00:00Z,3000,,20 7902,FORD,ANALYST,7566,1981-12-03T05:00:00Z,3000,,20 7369,SMITH,CLERK,7902,1980-12-17T05:00:00Z,800,,20 7499,ALLEN,SALESMAN,7698,1981-02-20T05:00:00Z,1600,300,30 7521,WARD,SALESMAN,7698,1981-02-22T05:00:00Z,1250,500,30 7654,MARTIN,SALESMAN,7698,1981-09-28T04:00:00Z,1250,1400,30 7844,TURNER,SALESMAN,7698,1981-09-08T04:00:00Z,1500,0,30 7876,ADAMS,CLERK,7788,1983-01-12T05:00:00Z,1100,,20 7900,JAMES,CLERK,7698,1981-12-03T05:00:00Z,950,,30 7934,MILLER,CLERK,7782,1982-01-23T05:00:00Z,1300,,10
Any ideas on what would be causing the Error above in our application?
Thanks,
Pat
Edited by: patfmnd on Mar 11, 2013 3:25 PM
In reviewing the above error, I think we are realizing that we have to have the Weblogic layer SSL cert (actually the CERT from our BigIP load balancer which also does our SSL termination) imported into the Oracle server wallet where Apex is installed. Am I correct?
PMWe resolved our problem. The Apex Administrative Guide made us realize that we had to set up Wallet path in the Instance. This required working with DBAs to follow the Advanced networking guide to get the wallet set up on our server. We then added that path to the Instance configuration. (Manager Instance --> Instance settings). We ran into another other issue related to our implementation of CAS but were able to resolve that, and 'voila' were able to get the sample RESTful service consumed by our application!!
Now to the task of figuring out how to get Basic Auth working between client application and RESTful web service. If anyone has that working, let us know!!
It would be helpful if in the documentation of the Apex 2.x listener or Apex install/configuration there was clear reference to the above steps required for HTTPS access to RESTful web services.
Pat -
Problem accessing https Web service from behind proxy
Hi all,
I have this constant timeout issue which occurs whenever I try to access the Web service from behind a proxy.
Find below the error logs -
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection timed out: connect
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:452)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:136)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:100)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:129)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:389)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:87)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:144)
at org.apache.axis.client.Call.invokeEngine(Call.java:2688)
at org.apache.axis.client.Call.invoke(Call.java:2671)
at org.apache.axis.client.Call.invoke(Call.java:2357)
at org.apache.axis.client.Call.invoke(Call.java:2280)
at org.apache.axis.client.Call.invoke(Call.java:1741)
I am using Tomcat 5.0.19 . Could anyone suggest a possible solution to the same?
The system works fine when I use a http endpoint.Hi,
By default, your application tries to connect to the Net directly : if you have to specify a proxy, use either these lines in your code :
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", "proxy");
System.setProperty("http.proxyPort", "8080");
Or specify them in the command line with the "-D"option.
Ex : java .... -Dhttp.proxySet=true .... MyApp
Hope it helps.
See ya -
Calling https web service from pl/sql
hi,
i've to call a web service from my database, after some research, i've tryed to use utl_dbws package to get the job, i've managed to put to work some of the examples i saw, that allways use http. My webservice is invoked using https with some user credentials.
i'me getting the following message:
ORA-29532: Java call terminated by uncaught Java exception: HTTP transport error:
javax.xml.soap.SOAPException: java.security.PrivilegedActionException:
javax.xml.soap.SOAPException: Message send failed: Socket is closed
ORA-06512: at "SYS.UTL_DBWS", line 388
ORA-06512: at "SYS.UTL_DBWS", line 385
ORA-06512: at line 85
i've tryed with this 2 procedures:
declare
service_ sys.utl_dbws.SERVICE;
call_ sys.utl_dbws.CALL;
service_qname sys.utl_dbws.QNAME;
port_qname sys.utl_dbws.QNAME;
operation_qname sys.utl_dbws.QNAME;
string_type_qname sys.utl_dbws.QNAME;
retx ANYDATA;
retx_string VARCHAR2(100);
retx_len number;
params sys.utl_dbws.ANYDATA_LIST;
wsm varchar2(4000);
config varchar2(4000);
request sys.XMLTYPE;
response sys.XMLTYPE;
begin
Request := sys.XMLTYPE('<?xml version="1.0" encoding="utf-8"?>'||
' <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'||
' <soap:Header>'||
' <UserCredentials xmlns="http://tempuri.org/">'||
' <UserID>username</UserID>'||
' <Password>password</Password>'||
' </UserCredentials>'||
' </soap:Header>'||
' <soap:Body>'||
' <GetInfo xmlns="http://tempuri.org/">'||
' <wsID>13</wsID>'||
' </GetInfo>'||
' </soap:Body>'||
' </soap:Envelope>');
service_qname := sys.utl_dbws.to_qname(null, 'GetInfo');
service_ := sys.utl_dbws.create_service(service_qname);
operation_qname := sys.utl_dbws.to_qname('http://tempuri.org/', 'GetInfo');
call_ := sys.utl_dbws.create_call(service_);
sys.utl_dbws.set_target_endpoint_address(call_, 'https://ws.livesolutions.pt:8800/wsLivesolutions.asmx');
sys.utl_dbws.set_property( call_
, 'OPERATION_STYLE'
, 'document'
sys.utl_dbws.set_property( call_
, 'SOAPACTION_URI'
,' https://ws.livesolutions.pt:8800/wsLivesolutions');
response:= sys.utl_dbws.invoke(call_, request);
END;
declare
service_ utl_dbws.SERVICE;
call_ utl_dbws.CALL;
service_qname utl_dbws.QNAME;
port_qname utl_dbws.QNAME;
operation_qname utl_dbws.QNAME;
string_type_qname utl_dbws.QNAME;
retx ANYDATA;
retx_string VARCHAR2(1000);
retx_double number;
retx_len number;
params utl_dbws.ANYDATA_LIST;
l_input_params utl_dbws.anydata_list;
l_result ANYDATA;
l_namespace VARCHAR2(1000);
request sys.XMLTYPE;
response sys.XMLTYPE;
begin
l_namespace := 'http://tempuri.org/';
service_qname := utl_dbws.to_qname(l_namespace, 'wsLivesolutions');
service_ := utl_dbws.create_service(service_qname);
port_qname := utl_dbws.to_qname(l_namespace, 'wsLivesolutionsSoap');
operation_qname := utl_dbws.to_qname(l_namespace, 'GetInfo');
call_ := utl_dbws.create_call(service_, port_qname, operation_qname);
utl_dbws.set_target_endpoint_address(call_, 'https://ws.livesolutions.pt:8800/wsLivesolutions.asmx');
utl_dbws.set_property(call_, 'SOAPACTION_USE', 'TRUE');
utl_dbws.set_property(call_, 'SOAPACTION_URI', 'http://tempuri.org/GetInfo');
utl_dbws.set_property(call_, 'OPERATION_STYLE', 'document');
UTL_DBWS.set_property(call_, 'USERNAME', 'username');
UTL_DBWS.set_property(call_, 'PASSWORD', 'password');
string_type_qname := utl_dbws.to_qname('http://www.w3.org/2001/XMLSchema', 'schema');
utl_dbws.add_parameter(call_, 'wsID', string_type_qname, 'ParameterMode.IN');
utl_dbws.set_return_type(call_, string_type_qname);
params(0) := ANYDATA.convertnumber(13);
retx := utl_dbws.invoke(call_, params);
utl_dbws.release_service(service_);
end;
can anyone help me in this?
thxAre you expecting us to guess at the message you received when you got the 28868?
I guess: "the wallet is closed."
If I guessed correctly then open it.
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "<your_wallet_password_here>";If I didn't guess correctly then you need to provide all of the information you neglected in your original post.
Start with the version number. -
How to call a web service from BPEL that requires HTTP basic authentication
Hi All,
I need to calling some Web Services from BPEL (SOA 10.1.3.1 production running on XP machine). The services require HTTP basic authentication.
I have tried adding httpUsername and httpPassword properties to the ParnterLink, and I see in BPEL Console that they are deployed by checking the descriptor page. But I still get a SOAP fault, HTTP 401: Unathenticated.
I have also tried using basicHeaders (from memory) = credentials, httpBasicUsername, and httpBasicPassword. Same result.
I have done a packet trace using Ethereal, and the headers do not seem to contain the userid and password at all.
Can anyone help?
Thanks,
Mark NelsonThanks Bas,
I have resolved the issue. The provider of the Web Service had not configured if for Basic Authentication. For some reason it worked when they tested, or maybe the did not test. The only thing I had to change was to use:
<property name="basicHeaders">credentials</property>
<property name="basicUsername">WMDATA</property>
<property name="basicPassword">WMDATA</property>
Instead of:
<property name="httpUsername">WMDATA</property>
<property name="httpPassword">WMDATA</property>
I don’t know why this is, maybe because it is an Axis Web Service.
Sorry for wasting your time.
Regards Pete -
How to call "https" web service from Oracle without certification.
The reuirement is to call a secured web service (*https web service*) from Oracle9i without involving any additional cost.
Initialy I tried with UTL_HTTP package but in vain as it is needed some certification. As per the requirement no additional cost should be involved with the implementation.
So is there any way to achieve the above mentioned problem?
Please let me know the responses with the sample code/steps.Please try not to double post. You have the ability to edit your original thread.
Oh, BTW, try searching the forum. A quick search turned up this: HTTPS request signed by client certificate from PL/SQL procedure
Check that out and maybe that will solve your problems.
Thanks! -
SR: Calling Web Services from PL/SQL gives http 500 errors
Hi, people from Oracle Support sent me to this forum.
I'm trying to call the Calendar Web Services from PL/SQL using the utl_http package, but I'm getting http-500 errors.
I'm using the example from http://www.oracle.com/technology/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html
Here's the code
procedure showHtml
as
req soap_rpc.request;
resp soap_rpc.response;
BEGIN
req := soap_rpc.new_request('cwsl:NoOp',
'xmlns:cwsl="http://www.oracle.com/WebServices/Calendaring/1.0/"');
resp := soap_rpc.invoke(req,
'http://nllx004.nl.oracle.com/ocws-bin/ocas.fcgi',
dbms_output.put_line(resp.doc.getStringVal());
END;
Can anyone help?I am new to web services and am having trouble getting the utl_http.set_header call to work using pl/sql. listed below is the code.
CREATE OR REPLACE PACKAGE BODY adm_iModules_test
AS
NAME: Admissions iModules testing program
PURPOSE:
Ver Date Author Description
REVISIONS:
1.0 01/04/08 Julie Michael 1. Created this package body.
PROCEDURE adm_iModules_test_output
IS
--cursor to select data to populate output file
CURSOR c_iModules_main
IS
SELECT DISTINCT spriden_id sprid_id,
spriden_pidm sprid_pidm,
spriden_last_name sprid_last,
spriden_first_name sprid_first,
spriden_MI sprid_mid,
spriden_create_date sprid_create_date,
spriden_activity_date sprid_activity_date,
spbpers_pidm pers_pidm,
spbpers_name_prefix prefix,
spbpers_name_suffix suffix,
spbpers_dead_ind deceased_ind,
spbpers_dead_date deceased_date,
spbpers_birth_date, --added birth date
spbpers_sex, --added gender
goremal_pidm emal_pidm,
goremal_email_address email_address,
saradap_pidm app_pidm,
zzrimod_member_id imod_id,
gobtpac_external_user user_id
FROM spriden,
spbpers,
goremal,
saradap,
zzrimod,
gobtpac
WHERE spriden_pidm = spbpers_pidm
AND spriden_change_ind IS NULL
AND spriden_pidm = goremal_pidm
AND goremal_emal_code = 'PERS'
AND goremal_preferred_ind = 'Y'
AND spriden_pidm = saradap_pidm
AND spriden_pidm = 120116
AND spriden_pidm = gobtpac_pidm
AND spriden_pidm = zzrimod_pidm(+)
AND goremal_preferred_ind = 'Y'
AND saradap_term_code_entry in ('200810','200820','200830');
v_record VARCHAR2 (32000) := null;
v_record_counter NUMBER := 0;
f_iModules_output_test UTL_FILE.file_type;
f_iModules_filename_test VARCHAR2 (50) := 'Adm_iModules_Test.TXT';
f_iModules_dir_test VARCHAR2 (100) := 'TMP';
v_separator VARCHAR2 (50) := ',';
v_id VARCHAR2 (90) := '';
v_fname VARCHAR2 (40) := '';
v_lname VARCHAR2 (40) := '';
v_user VARCHAR2 (90) := '';
v_login VARCHAR2 (100) := '';
v_password VARCHAR2 (100) := '';
-- v_link VARCHAR2 (32767) := 'http://imodules.com/Web%20Services/';
--the below item 'http://admin.imodules.com - was https://admin.imodules.com
v_link VARCHAR2 (32767) := 'http://admin.imodules.com/ws_10/MemberQuery.asmx?WSDL';
v_non_existing_ids VARCHAR2 (100) := '"false"';
v_style VARCHAR2 (5) := '"1"';
v_imod_member_id VARCHAR2 (100) := '';
v_spriden_first_name VARCHAR2 (60) := '';
req Utl_Http.req; --for posting
resp Utl_Http.resp; --for posting
v_msg VARCHAR2(80); --for posting
H_Name VARCHAR2(255); --for posting
H_Value VARCHAR2(1023); --for posting
v_data_xml VARCHAR2(10000);
BEGIN
DBMS_OUTPUT.ENABLE(1000000);
f_iModules_output_test := UTL_FILE.fopen (f_iModules_dir_test, f_iModules_filename_test, 'w',32767);
v_record := '';
--needed for posting
-- Utl_http.set_proxy(proxy => 'xxx.yyy.com',
-- no_proxy_domains => 'xxx.com');
req := Utl_Http.begin_request(url => v_link,
method => 'POST');
-- FOR v_iModules2 IN c_iModules_main
-- LOOP
-- v_record_counter := v_record_counter + 1;
-- END LOOP;
-- v_record := 'DUQ'||','||v_record_counter||','||to_char(SYSDATE,'mm/dd/yyyy');
UTL_FILE.put_line (f_iModules_output_test, v_record, false);
v_record := null;
FOR v_iModules IN c_iModules_main
LOOP
v_id := v_imodules.sprid_id;
v_fname := v_imodules.sprid_first||'test';
v_lname := v_imodules.sprid_last;
v_user := '"'||v_imodules.email_address||'"';
v_imodules.imod_id := '29';
v_imod_member_id := '"'||v_imodules.imod_id||'"';
v_spriden_first_name := '"SPRIDEN_FIRST_NAME"';
v_login := '"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx"';
v_password := '"xxxxxxxxxxxxxxxxxxxxxxxx"';
v_record :='<?xml version="1.0" encoding="utf-8"?>'||
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'||' '||
'xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'||
'<soap:Body>'||'<Update xmlns:m='||v_link||'>'||'<AUTHENTICATION login='||v_login||' '||
'password='||v_password||' '||'addNonExistingIDs='||v_non_existing_ids||' '||'style='||
v_style||'/>'||'<MemberInformation ZZRIMOD_MEMBER_ID='||v_imod_member_id||'>'||
'<SPRIDEN_FIRST_NAME>'||v_fname||'</SPRIDEN_FIRST_NAME>'||'</MemberInformation>'||'</Update>'||
'</soap:Body></soap:Envelope>';
-- v_record := v_record := v_record||'<Update xmlns:m='||v_link||'>'||'<AUTHENTICATION login='||v_user||'>'||' '||
-- 'password='||v_password||' '||'addNonExistingIDs='||v_non_existing_ids||' '||'style='||
-- v_style||'/>'||'<MemberInformation ZZRIMOD_MEMBER_ID='||v_imod_member_id||' '||
-- 'column='||'"SPRIDEN_FIRST_NAME"'||' '||'newValue='||v_fname||'/>'||'</Update>';
dbms_output.put_line('code: '||v_record);
--v_record := v_record||v_separator||v_id||v_separator||v_name||v_separator||v_email;
--Http posting calls
Utl_Http.set_header(r => req,
name => 'Content-Type',
value => 'text/xml');
Utl_Http.set_header(r => req,
name => 'Content-Length',
value => to_char(length(v_record)) );
--JAM 03/25/08 - added to accomodate the missing soap action error
Utl_Http.set_header(r => req,
name => 'SOAPAction',
value => 'http://admin.imodules.com/ws_10/MemberQuery.asmx?WSDL');
Utl_Http.set_header(r => req,
name => 'MessageType',
value => 'CALL');
-- Utl_Http.set_authentication(r => req,
-- username => 'zzz',
-- password => 'ppppp',
-- scheme => 'Basic',
-- for_proxy => FALSE);
Utl_Http.write_text(r => req,
data => v_record);
resp := Utl_Http.get_response(r => req,
return_info_response => TRUE);
DBMS_OUTPUT.put_line('Status Code: ' || resp.status_code);
DBMS_OUTPUT.put_line('Reason Phrase: ' || resp.reason_phrase);
dbms_output.put_line('testing');
FOR i IN 1 .. Utl_Http.get_header_count(r => resp)
LOOP
Utl_Http.get_header(r => resp,
n => i,
name => H_Name,
value => H_Value);
--DBMS_OUTPUT.put_line( ... );
END LOOP;
BEGIN
LOOP
Utl_Http.read_text(r => resp, DATA => v_msg);
DBMS_OUTPUT.put_line(v_msg);
END LOOP;
EXCEPTION
WHEN Utl_Http.end_of_body THEN
NULL;
END;
Utl_Http.end_response(r => resp);
-- EXCEPTION
-- WHEN Utl_Http.request_failed THEN
-- DBMS_OUTPUT.put_line('Request failed: '||Utl_Http.Get_Detailed_Sqlerrm);
-- WHEN Utl_Http.http_server_error THEN
-- DBMS_OUTPUT.put_line('Http_Server_Error: '||Utl_Http.Get_Detailed_Sqlerrm);
-- WHEN Utl_Http.http_client_error THEN
-- DBMS_OUTPUT.put_line('Client Error: '||Utl_Http.Get_Detailed_Sqlerrm);
-- WHEN others THEN
-- DBMS_OUTPUT.put_line('Others2: '||Utl_Http.Get_Detailed_Sqlerrm);
-- Utl_Http.end_response(r => resp);
-- END;
--End of Htp posting calls
--UTL_FILE.put_line (f_iModules_output_test, v_record, false);
--htp.p('<post>'||v_record||'</post>');
END LOOP;
EXCEPTION
WHEN Utl_Http.request_failed THEN
DBMS_OUTPUT.put_line('Request failed: '||Utl_Http.Get_Detailed_Sqlerrm);
WHEN Utl_Http.http_server_error THEN
DBMS_OUTPUT.put_line('Http_Server_Error: '||Utl_Http.Get_Detailed_Sqlerrm);
WHEN Utl_Http.http_client_error THEN
DBMS_OUTPUT.put_line('Client Error: '||Utl_Http.Get_Detailed_Sqlerrm);
WHEN others THEN
DBMS_OUTPUT.put_line('Others2: '||Utl_Http.Get_Detailed_Sqlerrm);
Utl_Http.end_response(r => resp);
END;
-- close output file
--UTL_FILE.fclose (f_iModules_output_test);
--COMMIT;
/*EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
DBMS_OUTPUT.put_line ('Other Exception:' || SQLERRM);
-- DBMS_OUTPUT.put_line ('Other Exception:' || Utl_Http.Get_Detailed_Sqlerrm);
--COMMIT; */
-- END adm_iModules_test_output;
END adm_iModules_test;
Message was edited by:
user627523 -
Revision: 21394
Revision: 21394
Author: [email protected]
Date: 2011-06-16 12:34:13 -0700 (Thu, 16 Jun 2011)
Log Message:
bug fix for watson 2887837 Not getting duplicate session detected error when same flex client id is used from two different HTTP sessions in CRX.
get the sessions id before we invalidate the duplicate session.
Checkintests pass
Modified Paths:
blazeds/trunk/modules/core/src/flex/messaging/endpoints/BaseHTTPEndpoint.javaFor our profect I think this issue was caused as follows:
Believing that remoting was full asynchronous we fired a 2 or 3 remote calls to the server at the same time ( within the same function ) - usually when the users goes to a new section of the app.
This seemed to trigger the duplicate http session error since according to http://blogs.adobe.com/lin/2011/05/duplication-session-error.html two remote calls arriving before a session is created will cause 2 sessions to be created.
Our current solution ( too early to say it works ) is to daisy chain the multiple calls together .
Also there seemed to be an issue where mobile apps that never quit ( thanks Apple! ) caused the error when activated after a few hours.
I guess the session expires on the server and the error above occurs on activation.
So the mobile apps now ping the server with a remote call when activated after sleeping for more than one hour.
All duplicate http errors are silently caught and reported.
Fingers crossed we won't get any more! -
Call HTTP POST Service from SOA HTTP Binding (one - way)
Hi All
Why doesn't HTTP Binding support one-way Reference (It only allows request-response in outbound mode)? I need to call a one way HTTP post service from BPEL.
How can i achieve this with HTTP-Binding. This one way HTTP POST service is on OSB. Please help!
Thanks!Look at 10g samples under tutorials/702.bindings.
Maybe you are looking for
-
Which functions and features in Numbers are NOT exported correctly to Excel?
I wish to know EXACTLY which functions I use in a Numbers sheet WILL FAIL to export correctly to an Excel or Neoffice spreadsheet. For instance, I created a Numbers spreadsheet using prolific use of the IFERROR function. However, when I EXPORT to XLS
-
What are the minimum IE 11 settings required to run activeX plugin in 64bit Mode?
Tried many different internet options such as advanced->Enhanced protected mode, "security->automatic filtering of ActiveX" "advanced-> 64bit enhanced protected mode (windows 8)", enable many different ActiveX related options in custom security optio
-
Dear all, I have uploaded master catalog with full indicator. It was uploaded . Now while mapping the supllier catalog to master catalog the below error came. Exception /CCM/CX_MAPPING_DELETION_FAILD occurred (program: /CCM/CL_MAPPING Please guide me
-
Message before installing 7.0.2 upgrade
I had upgraded twice to itunes 7.0.2 and the same message appears before all done. cannot unable ipod service. The installation never finishes because of this alert. What i'm doing wrong?
-
1333 or 1600 worth extra 360 $?
Dear Gentlemen!I was so inattentive that I bought this type memory for my X79 platform (i7 3930K): G.Skill 32GB 2133MHz (that time this was on stock, and the seller said there will not be any problem) Now I read about the memory problem with I7 3930K