Make process manger send additional http header when querying WSDL ?
Hello,
is there a possibility to send an additional, custom http header when
process manager reads WSDL from a webserver.
Backgrund info: all our WSDLs are hosted on a special webserver which
needs this field. Changing to another kind of repository is not an option.
It would be nice if we could add some parameter to the appserver or domain
configuration to add this field as a default for each request.
Note that we don´t need the http field if we call partnerLinks. It´s only required for
WSDL-query (= the URLs given in bpel.xml / </partnerLinkBinding> )
Thanks in advance
Bernd
Hi,
It is a memory or buffer related problem. Contact your BASIS.
Looks like there is a shortage of space. Analyse the dump in ST22 and look for its proposals.
OSS note 965351 might be applicable (if you are on 640/ unix).
regards,
NR
Similar Messages
-
How to send a signed SOAP message with additional HTTP Header fields
Our Partner's integration requirements are that we send them asynchronous SOAP messages, that are digitally signed, and whose HTTP headers contains 5 or 6 additional header fields, of which 3 or 4 will need to be dynamically set during the message mapping. I believe we can use the HTTP adapter for adding new fields to the HTTP header, but don't believe it supports signing. I believe that the SOAP adapter supports signing, but I'm not clear on how to use it to add fields to the HTTP header. What is the most straight-forward way to achieve both the signing of the message and the addition of the HTTP header values?
Thanks,
Kurt>>>What is the most straight-forward way to achieve both the signing of the message and the addition of the HTTP header values?
Use Java mapping for both.
1) Signing the message
You can digitally sign the soap message using many standard api like WSS4j? or refer Java XML signature API which comes in Jdk1.6.
Refer these links
WSS4J - http://ws.apache.org/wss4j/axis.html
Java XML signature : http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/
2) >>whose HTTP headers contains 5 or 6 additional header fields, of which 3 or 4 will need to be dynamically set during the message mapping
Use Dynamic configuration API to set the additional header fields during message mapping. -
No "Remote-User" in HTTP header when HTTP request gets to WLS
Hello Exprers,
I have a customer, using 10.3.3 on Linux machine. Web server as Apache.
He wants Remote-User in HTTP header, he used to get it when he used Tomcat. But when he transffered to Apache and 10.3.3, he is not getting the Remote-User in header, instead he is getting proxy-remote-user.
He wants the Remote-user in HTTP header.
Any clue, on why he is not getting it.Hi,
We are facing error while doing openConnection
When I tried with simple java file it worked as shown below
import java.io.*;
import javax.net.ssl.HttpsURLConnection;
public class test
public static void main(String[] args) throws Exception
String httpsURL = "https://rcfe.aspac.citicorp.com:40054/servlet/Verify";
URL myurl = new URL(httpsURL);
HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
InputStream ins = con.getInputStream();
InputStreamReader isr = new InputStreamReader(ins);
BufferedReader in = new BufferedReader(isr);
if (con!=null)
System.out.println("con="+con);
System.out.println(ins);
Output*
[rcrrgbg2@kauh0079:/rcrmap2/weblogic/bea/ORA_PFRD/forms/j2ee] java test
con=com.ibm.net.ssl.www2.protocol.https.e:https://rcfe.aspac.citicorp.com:40054/servlet/Verify
sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@5f6c5f6c
However when I tried with below program I am able to write upto Web CL URL but after that no log is written when it tries to do openConnection() for this line csConn=(HttpsURLConnection)new URL(webclURL).openConnection(); in the below code
Some part of the code:_
=======================================================================
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
import java.util.Hashtable;
import java.io.File;
import java.io.FileInputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.net.ssl.HttpsURLConnection;
import java.net.URL;
public class CRMSLogin extends HttpServlet
private static final long serialVersionUID=-6294676216324813290L;
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
String iniFile=request.getParameter("CRMS_INI_FILE_PATH");
String sessionId=request.getParameter("SessionId");
String applId=request.getParameter("apl_id");
String userId=request.getParameter("userId");
String clientIp=request.getRemoteAddr();
Properties iniProp=this.getProperties(iniFile);
String crmsAppServerContext=iniProp.getProperty("CRMS_APP_SERVER_CONTEXT");
String appModule=iniProp.getProperty("CRMS_MODULE");
String webclURL=iniProp.getProperty("WEBCL_URL");
// HttpsURLConnection csConn=null;
String crmsFormsTerm=null;
crmsFormsTerm=getEntitlements(iniFile.trim(),sessionId,applId.trim(),clientIp.trim(),webclURL.trim());
String baseContent=this.getBaseContent(iniProp);
ServletOutputStream out=response.getOutputStream();
baseContent=baseContent.replaceAll("<!APP_TITLE!>","Credit Risk Management System");
baseContent=baseContent.replaceAll("<!APP_CONTEXT!>",crmsAppServerContext);
baseContent=baseContent.replaceAll("<!APP_MODULE!>",appModule);
baseContent=baseContent.replaceAll("<!APP_TRACE!>",crmsFormsTerm.replaceAll(" ", ""));
baseContent=baseContent.replaceAll("<!USER_ID!>",userId);
baseContent=baseContent.replaceAll("<!SESSION_ID!>",sessionId);
baseContent=baseContent.replaceAll("<!APPL_ID!>",applId.trim());
baseContent=baseContent.replaceAll("<!CLIENT_IP!>",clientIp.trim());
baseContent=baseContent.replaceAll("<!INI_FILE!>",iniFile.trim());
out.println(baseContent);
out.flush();
out.close();
private synchronized Properties getProperties(String inifile)
Properties iniProp=new Properties();
FileInputStream iniFileStream=null;
try
iniFileStream=new FileInputStream(inifile);
iniProp.load(iniFileStream);
iniFileStream.close();
catch(Exception e)
finally
try
if(iniFileStream!=null)
iniFileStream.close();
catch(Exception e)
return iniProp;
public static synchronized String getEntitlements(String inifile,String sessionId,String applId,String clientIp,String webclURL)
HttpsURLConnection csConn=null;
OutputStreamWriter requestStream=null;
BufferedReader responseStream=null;
StringBuffer responseData=new StringBuffer();
String csReturnString=null;
//String webclURL=null;
BufferedWriter traceLog=null;
int csCount=6;
Properties iniProp=new Properties();
String traceFile=null;
String entitlementData=null;
try
readIniProperties(inifile,iniProp);
traceFile=getTraceFile(iniProp);
traceLog=new BufferedWriter(new FileWriter(traceFile,true));
if(traceFile!=null)
traceLog.write("###########################");
traceLog.write("P A R A M E T E R S");
traceLog.write("###########################");
traceLog.newLine();
traceLog.write("INI_FILE:"+inifile);
traceLog.newLine();
traceLog.write("SESSION_ID:"+sessionId);
traceLog.newLine();
traceLog.write("APPL_ID:"+applId);
traceLog.newLine();
traceLog.write("CLIENT_IP:"+clientIp);
traceLog.newLine();
traceLog.write("count:"+csCount);
traceLog.newLine();
traceLog.write("###########################");
traceLog.newLine();
//webclURL=getWebclURL(traceLog,iniProp);
if(webclURL!=null)
traceLog.write("Web CL URL:"+webclURL);
traceLog.newLine();
csConn=(HttpsURLConnection)new URL(webclURL).openConnection();
traceLog.write("Open Connection - Completed!");
traceLog.newLine();
csConn.setRequestMethod("POST");
csConn.setDoInput(true);
csConn.setDoOutput(true);
requestStream=new OutputStreamWriter(csConn.getOutputStream());
traceLog.write("Open Request Stream - Completed!");
traceLog.newLine();
requestStream.write("SessionId="+sessionId+"&ClientIP="+clientIp+"&apl_id="+applId+"&count="+csCount);
requestStream.flush();
requestStream.close();
traceLog.write("Write Params to Request Stream - Completed!");
traceLog.newLine();
responseStream=new BufferedReader(new InputStreamReader(csConn.getInputStream()));
traceLog.write("Open Response Stream - Completed!");
traceLog.newLine();
while((csReturnString=responseStream.readLine())!=null)
responseData.append(csReturnString);
traceLog.write("Response Stream Reading - Completed!");
traceLog.newLine();
responseStream.close();
csConn.disconnect();
entitlementData=getEntitlementData(traceLog,responseData.toString(),iniProp);
traceLog.write("responseData::"+responseData);
traceLog.newLine();
traceLog.newLine();
traceLog.write("entitlementData::"+entitlementData);
traceLog.newLine();
traceLog.flush();
traceLog.close();
catch(Exception e)
e.printStackTrace();
finally
try
if(requestStream!=null)
requestStream.close();
=======================================================================
output_
###########################P A R A M E T E R S###########################
INI_FILE:/rcrmap1/rcrrgbg2/crms.ini
SESSION_ID:%2526%253ASIGNED_TICKET%253D%2526PROVIDER_TICKET%253D002c6e4cH0tZy2Gj4JBCOiSL7uSlKisfsqgwP9KoRRn7e%252BY%253D%253AKRSERVER0006%252BA9A52AAE%252B4D1DC7AA%252B14400
APPL_ID:RCRMKR
CLIENT_IP:169.165.42.174
count:6
Web CL URL:https://rcfe.aspac.citicorp.com:40054/servlet/Verify
Please help to guide us.
Regards,
Harish -
Can I send an HTTP Header from an iView
Hello Developers,
I'm trying to run an external web application from a URL iView. In the URL I point it to a reverse proxy that starts the web application. The reverse proxy requires a user name in the field HTTP_USER. Sending a value as a URL Parameter doesn't work.
My question is, can I include the Portal users name in a HTTP Header and sendt the Header from the iView?
Thank youHello,
you can get the servlet response and set a header value using the following code :
HttpServletResponse res = aRequest.getServletResponse(true);
res.setHeader("header name","header value");
Hope it helps.
Regards
Guillaume -
How do I change the content-type in http header when using JAX-WS?
I need to change Content-Type in http Header. I am using JAX-WS to invoke web service call. Can someone tell me how to do it? Thanks a lot!
LabVIEW does so many wonderful things, but the inability to perform what should be a simple task, such as upgrade a RT chassis within a LV Project, bewilders me. This is going to cost me hours, I just know it...
Is there anything on the Idea Exchange for this?? A quick search shows nothing, so maybe I'll add an entry.
Thoric (CLA, CLED, CTD and LabVIEW Champion) -
Error in setting up HTTP Header Variable Authentication
Hi,
I am trying to set-up SSO for SAP Biller Direct aplication (deployed on SAP J2EE 7.0) using HTTP Header variable authentication.
As per SAP documentation I have created a new login module "HeaderVariableLoginModule" pointing to class "com.sap.security.core.server.jaas.HeaderVariableLoginModule".
Then I have added this new login module to Statck "Ticket" and the new config looks as below. HTTP header when UID is passed is USI_LOP.
Name Flag Options
com.sap.security.core.server.jaas.HeaderVariableLoginModule Sufficient ume.configuration.active= tue,
Header=USI_LOP
BasicPasswordLoginModule Optional
CreateTicketLoginModule Optional ume.configuration.active= tue
EvaluateTicketLoginModule Sufficient ume.configuration.active= tue
The problem I am now having is that the authentication through HTTP_HEADEr does not work. Even though I ahve increased the trace level for JAAS module to debug, there is not any type of information generated in the log.
Each time I call the Biller Direct URL from the extrenal web server which also passes the HEADER variable for Authntication, the authrisation just fails and I am being shown a Logon Screen to pust UID/PASSWORD.
Can someone please guide me, how I can debug this? There is very no information whether anyone tried to login with HEADER varibale and that has failed...
Also, I am not pretty sure whether I am using the right Authentication Stack, which is is Ticket in my case..
But when I enter the application without any URL redirects and enter UID and password directly for Biller Direct, I get the following in log file, which makes me believe that I am using the right stack.
LOGIN.OK
User: CONDLG
Authentication Stack: ticket
Login Module Flag Initialize Login Commit Abort Details
1. com.sap.security.core.server.jaas.HeaderVariableLoginModule SUFFICIENT ok false false
2. com.sap.engine.services.security.server.jaas.BasicPasswordLoginModule OPTIONAL ok true true
3. com.sap.security.core.server.jaas.CreateTicketLoginModule OPTIONAL ok true true
4. com.sap.security.core.server.jaas.EvaluateTicketLoginModule SUFFICIENT ok false false
Central Checks true
Any help will be very much apprecated..
Thanks,
Vikrant SudVikrant,
The reason why it is not working is because your login modules in ticket stack are in wrong order and with wrong flags. The first one should be EvaluateTicketLoginModule with flag=SUFFICIENT, then the Header Variable login module, with flag=OPTIONAL, then CreateTicketLoginModule with flag=SUFFICIENT, then BasicPasswordLoginModule with flag=REQUISITE, and lastly CreateTicektLoginModule with flag=OPTIONAL
Thanks,
Tim -
Http Header for SOAP message.
Hello,
I need to set some custom HTTP Header when i send the SOAP message to an endpoint.
I tried this..but doesn't solve my requirement.
SOAPMessage soapmsg = messageFactory.createMessage();
MimeHeaders mime = soapmsg.getMimeHeaders();
mime.addHeader("SOAPAction", "xxxx");
mime.addHeader("Sender", "yyy");
SOAPMessage reply = connection.call(soapmsg, destination);
Can anyone please guide me how to set HTTP headers for SOAP?
Thanks,The following snippet is some code froma stand-alone web service client that I use for testing. It picks up an XML as the payload of the web service, wraps it in a SOAP message and fires it at the web service endpoint.
System.out.println("Create the SOAP message.\n");
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage message = messageFactory.createMessage();
System.out.println("Creating a DOM object from the JAXB payload.");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
factory.setNamespaceAware(true);
DocumentBuilder parser = factory.newDocumentBuilder();
Document doc = parser.parse("file:payload.xml");
// Add the HTTP headers.
message.getMimeHeaders().addHeader("User-Agent", "Mozilla/4.0 [en] (WinNT; I)");
message.getMimeHeaders().addHeader("Host", "localhost:9080");
message.getMimeHeaders().addHeader("Content-type", "text/xml");
message.getMimeHeaders().addHeader("SOAPAction", "http://www.xxx.com.au/wsdl/someWebService");
message.setProperty(SOAPMessage.CHARACTER_SET_ENCODING, "utf-8");
SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
envelope.addNamespaceDeclaration("n", "http://xxx/webService");
envelope.addNamespaceDeclaration("xsd", "http://www.w3.org/2001/XMLSchema");
envelope.addNamespaceDeclaration("xsi", "http://www.w3.org/2001/XMLSchema-instance");
System.out.println("Adding the payload to the SOAP body.\n");
SOAPBody body = message.getSOAPBody();
SOAPBodyElement docElement = body.addDocument(doc);
System.out.println("This is the SOAP message.\n");
message.writeTo(System.out);
System.out.println("\nPutting the payload on the wire.\n");
SOAPConnectionFactory conFactry = SOAPConnectionFactory.newInstance();
SOAPConnection connection = conFactry.createConnection();
URL endpoint = new URL("http://localhost:9080/xxx/services/yyy-webservices");
SOAPMessage response = connection.call(message, endpoint);
System.out.println("Payload sent. Closing the connection.\n");
connection.close(); -
SOAP HTTP header in SOAP request
Hi,
How to add the soap HTTP additional header in the SOAP request?
I want to add the headers not through coding. I want to add it manually.
I can able to add the HTTP headers through SOAPUI. But i need to add the same inside the request.
Could someone please help me?I am sending the SOAP request through SoapUI.
Here is the sample request which i have used.
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://requisition.api.newscale.com">
<soapenv:Header>
<req:AuthenticationToken>
<req:Username>***</req:Username>
<req:Password>***</req:Password>
</req:AuthenticationToken>
</soapenv:Header>
<soapenv:Body>
<req:getRequisitionStatus>
<req:loginUserName>***</req:loginUserName>
<req:requisitionId>123456</req:requisitionId>
</req:getRequisitionStatus>
</soapenv:Body>
</soapenv:Envelope>
Here i have to add the additional HTTP header with this request. -
Setting HTTP header in soapMessage
Hi,
How can i set an specific HTTP header when using a SOAPConnection to send a SOAPMessage ?
Please help,
Pieter
ps: it the Authorization header, so without it the other part won't accept my post !Pieterrr/ddossot
I need to do the same thing. I have the code in place but it is still not adding the MimeHeaders to HTTPRequest object. I have the jxm-api.jar, and saaj-api.jar in my classpath.
What am i doing wrong?
This is my code
try{
// Create SOAP message
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage();
// Create SOAP envelope
SOAPPart soapPart = message.getSOAPPart();
SOAPEnvelope envelope = soapPart.getEnvelope();
SOAPHeader hh = envelope.getHeader();
MimeHeaders headers = message.getMimeHeaders();
SOAPHeader soapHeader = message.getSOAPHeader();
//headers.removeHeader("soapaction");
headers.setHeader("soapction", "http://tempuri.org/GetData");
String Hdr_Version_Name = "Version";
String Hdr_Version_Value = "1.0";
String Hdr_OnBehalfOf_Name = "OnBehalfOf";
String Hdr_OnBehalfOf_Value = "";
String Hdr_Role_Name = "Role";
String Hdr_Role_Value = "1";
String Hdr_EndPoint_Name = "EndPoint";
String Hdr_EndPoint_Value = "001";
String Hdr_ServiceId_Name = "ServiceId";
String Hdr_ServiceId_Value = "001";
String Hdr_DateTime_Name = "DateTime";
String Hdr_DateTime_Value = "10/22/02";
String Hdr_ClientApplication_Name = "ClientApplication";
String Hdr_ClientApplication_Value = "APP001";
String Hdr_TraceWebMethod_Name = "TraceWebMethod";
String Hdr_TraceWebMethod_Value = "false";
String Hdr_ClientTouchPoint_Name = "ClientTouchPoint";
String Hdr_ClientTouchPoint_Value = "ClientTouchPoint";
String Hdr_ChannelInfo_Name = "ChannelInfo";
String Hdr_ChannelInfo_Value = "ChannelInfo";
String Hdr_Environment_Name = "Environment";
String Hdr_Environment_Value = "WINOS";
String Hdr_USER_Name = "MUSER";
String Hdr_USER_Value ="";
String Hdr_SESSIONID_Name = "SESSIONID";
String Hdr_SESSIONID_Value ="";
String SAML_ASSERTION_Cookie_Name = "SAML_ASSERTION";
String SAML_ASSERTION_Cookie_Value ="";
String Hdr_tmsasessionticket_Name = "http_tmsamlsessionticket";
String Hdr_tmsasessionticket_Value = token;
headers.setHeader(Hdr_Version_Name,Hdr_Version_Value);
headers.setHeader(Hdr_OnBehalfOf_Name,Hdr_OnBehalfOf_Value);
headers.setHeader(Hdr_Role_Name,Hdr_Role_Value);
headers.setHeader(Hdr_EndPoint_Name,Hdr_EndPoint_Value);
headers.setHeader(Hdr_ServiceId_Name,Hdr_ServiceId_Value);
headers.setHeader(Hdr_DateTime_Name,Hdr_DateTime_Value);
headers.setHeader(Hdr_ClientApplication_Name,Hdr_ClientApplication_Value);
headers.setHeader(Hdr_TraceWebMethod_Name,Hdr_TraceWebMethod_Value);
headers.setHeader(Hdr_ClientTouchPoint_Name,Hdr_ClientTouchPoint_Value);
headers.setHeader(Hdr_ChannelInfo_Name,Hdr_ChannelInfo_Value);
headers.setHeader(Hdr_Environment_Name,Hdr_Environment_Value);
headers.setHeader(Hdr_USER_Name,Hdr_USER_Value);
headers.setHeader(Hdr_SESSIONID_Name,Hdr_SESSIONID_Value);
// Necessary For Secure method
headers.addHeader(Hdr_tmsasessionticket_Name, Hdr_tmsasessionticket_Value);
headers.addHeader("otc_header", "otcderiv");
envelope.addNamespaceDeclaration("xsi","http://www.w3.org/2001/XMLSchema-instance");
envelope.addNamespaceDeclaration("xsd","http://www.w3.org/2001/XMLSchema");
envelope.addNamespaceDeclaration("soap","http://schemas.xmlsoap.org/soap/envelope/");
boolean rem = envelope.removeNamespaceDeclaration("soapenv");
SOAPBody body = envelope.getBody();
soapPart.setContentId("");
Name bodyName = envelope.createName("GetData", "", "http://tempuri.org/");
SOAPBodyElement createuser = body.addBodyElement(bodyName);
SOAPConnectionFactory scFactory = SOAPConnectionFactory.newInstance();
message.saveChanges();
SOAPConnection con = scFactory.createConnection();
URL endpoint = new URL("http://abc.xyz.com/securitymanager.asmx");
System.out.println("INPUT=" + envelope.toString());
SOAPMessage responsex = con.call(message, endpoint);
// print the response message
ByteArrayOutputStream soapResponseStream = new ByteArrayOutputStream();
responsex.writeTo(soapResponseStream);
String sOutput = soapResponseStream.toString();
//System.out.println("OUTPUT=" + sOutput);
System.out.println(sOutput);
}catch(Exception e)
e.printStackTrace();
} -
OdiIinvokeWebService - SOAP - HTTP header
Using OdiIinvokeWebService and HTTPS protocol, can an HTTP header be passed with the SOAP request?
Thank youI am sending the SOAP request through SoapUI.
Here is the sample request which i have used.
<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://requisition.api.newscale.com">
<soapenv:Header>
<req:AuthenticationToken>
<req:Username>***</req:Username>
<req:Password>***</req:Password>
</req:AuthenticationToken>
</soapenv:Header>
<soapenv:Body>
<req:getRequisitionStatus>
<req:loginUserName>***</req:loginUserName>
<req:requisitionId>123456</req:requisitionId>
</req:getRequisitionStatus>
</soapenv:Body>
</soapenv:Envelope>
Here i have to add the additional HTTP header with this request. -
How to set HTTP header field "cookie" with http receiver adapter?
Hi,
I am using http receiver adapter (not axis) in a scenario. I could not set a parameter with key cookie in http header. Is there some kind of restriction to set it? I am able to set others like connection and create custom fields using ASMA and dynamic key configuration via UDF on mapping.
Could you please comment on, is cookie http parameter special or noneditable by PI's http adapter? I am looking for a solution without editing any abap code...
Regards,I believe it is possible since axis adapter provides very same functionality. Let me summarize my scenario may be it helps:
I am trying to call series of webservice lets say in a BPM. First service (login service) will provide me with a session id (in http header with key Set-Cookie) then I will call another service which has that session id in its http header with key cookie then I am going to logout. So I am testing the second part now, but it doest let me send cookie http header parameter.
I hope I clarified a bit more my problem.
Regards, -
Hi, I have a Flex web application accessed through a portal by users
of different organisations.
When user logs on to portal, user can access the Flex application without further authentication. However I need to know user credentials
in order to control the functionality within the Flex app.
If I can read the Http Header when Flex app is initialised, I will get all the required info.
In jsp, I can use request.getHeader("")
What is the best way to read Http Headers from a Flex App?<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="load()">
<mx:Script>
<![CDATA[
public var xmlLoader:URLLoader=new URLLoader();
function load():void{
var xmlString:URLRequest = new URLRequest("items.xml");
xmlLoader.load(xmlString);
xmlLoader.addEventListener(Event.COMPLETE,init);
function init(event:Event):void{
var xDoc:XMLDocument = new XMLDocument();
xDoc.ignoreWhite = true;
var myXML:XML=XML(xmlLoader.data);
var fr:String=myXML.items.item[0].Value.toString();
]]>
</mx:Script>
</mx:Application>
Suppose this is ur items.xml file
<items>
<item>
<name>jk</name>
<Value>high</Value>
</item>
<item>
<name>coat</name>
<Value>medium</Value>
</item>
<item>
<name>milk</name>
<Value>low</Value>
</item>
</items>
May be u need some imports
Then the output will be :high(becoz items is a xml list containing many xml nodes...item[0] is first xml node and Value is the element..toString methods converts it into a string) -
Hi , Can someone please throw some light on how we can add a new parameter in HTTP header for a WSDL call. I will be using a Web-service adapter to invoke a wsdl and the requirement is to pass a HTTP Header parameter with each call, this parameter would be interpreted by an intermediary system before the call actually goes to target system.
In 10.1.3.5, there were several examples or samples in the Oracle BPEL folder. I think there were ones called HTTPGetService and HTTPPostService. You might check to see if they are still around.
-
I am trying to invoke FinancialUtilService using HTTP proxy client. I am getting below error while i am trying to invoke this service. Using FusionServiceTester i am able to invoke service and upload file to UCM. Using oracle.ucm.fa_client_11.1.1.jar also i am able to upload file to UCM without any issue. But using HTTP proxy client i am facing below error. Can anyone please help me. PFA code i am using to invoke this service.
javax.xml.ws.soap.SOAPFaultException: InvalidSecurity : error in processing the WS-Security security header
at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:197)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:122)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:125)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
at $Proxy43.uploadFileToUcm(Unknown Source)
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:597)
at weblogic.wsee.jaxws.spi.ClientInstance$ClientInstanceInvocationHandler.invoke(ClientInstance.java:363)
at $Proxy44.uploadFileToUcm(Unknown Source)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.invokeUpload(FinancialUtilServiceSoapHttpPortClient.java:299)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.main(FinancialUtilServiceSoapHttpPortClient.java:273)
Process exited with exit code 0.
Message was edited by: Oliver Steinmeier
Removed attachmentHi Jani,
Thanks for your reply.
I am new to webservices and we are trying to do a POC on invoking FinancialUtilService using HTTP proxy client. I am following steps mentioned in attached pdf section "Invoking FinancialUtil Service using Web Service Proxy Client". I have imported certificate using below command.
keytool -import -trustcacerts -file D:\Retek\Certificate.cer -alias client -keystore D:\Retek\default-keystore.jks -storepass welcome1
Invoking
SecurityPolicyFeature[] securityFeature =
new SecurityPolicyFeature[] { new
SecurityPolicyFeature("oracle/wss11_saml_token_with_message_protection_client_policy")};
financialUtilService_Service = new FinancialUtilService_Service();
FinancialUtilService financialUtilService= financialUtilService_Service.getFinancialUtilServiceSoapHttpPort(securityFeature);
// Get the request context to set the outgoing addressing properties
WSBindingProvider wsbp = (WSBindingProvider)financialUtilService;
WSEndpointReference replyTo =
new WSEndpointReference("https://efops-rel91-patchtest-external-fin.us.oracle.com/finFunShared/FinancialUtilService", WS_ADDR_VER);
String uuid = "uuid:" + UUID.randomUUID();
wsbp.setOutboundHeaders( new StringHeader(WS_ADDR_VER.messageIDTag, uuid), replyTo.createHeader(WS_ADDR_VER.replyToTag));
wsbp.getRequestContext().put(WSBindingProvider.USERNAME_PROPERTY, "fin_user1");
wsbp.getRequestContext().put(WSBindingProvider.PASSWORD_PROPERTY, "Welcome1");
wsbp.getRequestContext().put(ClientConstants.WSSEC_RECIPIENT_KEY_ALIAS,"service");
wsbp.getRequestContext().put(ClientConstants.WSSEC_KEYSTORE_LOCATION, "D:/Retek/default-keystore.jks");
wsbp.getRequestContext().put(ClientConstants.WSSEC_KEYSTORE_PASSWORD, "welcome1" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_KEYSTORE_TYPE, "JKS" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_SIG_KEY_ALIAS, "client" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_SIG_KEY_PASSWORD, "password" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_ENC_KEY_ALIAS, "client" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_ENC_KEY_PASSWORD, "password" );
SEVERE: WSM-00057 The certificate, client, is not retrieved.
SEVERE: WSM-00137 The encryption certificate, client, is not retrieved due to exception oracle.wsm.security.SecurityException: WSM-00057 : The certificate, client, is not retrieved..
SEVERE: WSM-00161 Client encryption public certificate is not configured for Async web service client
SEVERE: WSM-00005 Error in sending the request.
SEVERE: WSM-07607 Failure in execution of assertion {http://schemas.oracle.com/ws/2006/01/securitypolicy}wss11-saml-with-certificates executor class oracle.wsm.security.policy.scenario.executor.Wss11SamlWithCertsScenarioExecutor.
SEVERE: WSM-07602 Failure in WS-Policy Execution due to exception.
SEVERE: WSM-07501 Failure in Oracle WSM Agent processRequest, category=security, function=agent.function.client, application=null, composite=null, modelObj=FinancialUtilService, policy=oracle/wss11_saml_token_with_message_protection_client_policy, policyVersion=null, assertionName={http://schemas.oracle.com/ws/2006/01/securitypolicy}wss11-saml-with-certificates.
oracle.wsm.common.sdk.WSMException: WSM-00161 : Client encryption public certificate is not configured for Async web service client
at oracle.wsm.security.policy.scenario.executor.Wss11SamlWithCertsScenarioExecutor.sendRequest(Wss11SamlWithCertsScenarioExecutor.java:173)
at oracle.wsm.security.policy.scenario.executor.SecurityScenarioExecutor.execute(SecurityScenarioExecutor.java:545)
at oracle.wsm.policyengine.impl.runtime.AssertionExecutor.execute(AssertionExecutor.java:41)
at oracle.wsm.policyengine.impl.runtime.WSPolicyRuntimeExecutor.executeSimpleAssertion(WSPolicyRuntimeExecutor.java:608)
at oracle.wsm.policyengine.impl.runtime.WSPolicyRuntimeExecutor.executeAndAssertion(WSPolicyRuntimeExecutor.java:335)
at oracle.wsm.policyengine.impl.runtime.WSPolicyRuntimeExecutor.execute(WSPolicyRuntimeExecutor.java:282)
at oracle.wsm.policyengine.impl.PolicyExecutionEngine.execute(PolicyExecutionEngine.java:102)
at oracle.wsm.agent.WSMAgent.processCommon(WSMAgent.java:915)
at oracle.wsm.agent.WSMAgent.processRequest(WSMAgent.java:436)
at oracle.wsm.agent.handler.WSMEngineInvoker.handleRequest(WSMEngineInvoker.java:393)
at oracle.wsm.agent.handler.wls.WSMAgentHook.handleRequest(WSMAgentHook.java:239)
at weblogic.wsee.jaxws.framework.jaxrpc.TubeFactory$JAXRPCTube.processRequest(TubeFactory.java:220)
at weblogic.wsee.jaxws.tubeline.FlowControlTube.processRequest(FlowControlTube.java:98)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
at com.sun.xml.ws.client.Stub.process(Stub.java:259)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:152)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:115)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
at $Proxy43.uploadFileToUcm(Unknown Source)
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:597)
at weblogic.wsee.jaxws.spi.ClientInstance$ClientInstanceInvocationHandler.invoke(ClientInstance.java:363)
at $Proxy44.uploadFileToUcm(Unknown Source)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.invokeUpload(FinancialUtilServiceSoapHttpPortClient.java:111)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.main(FinancialUtilServiceSoapHttpPortClient.java:86)
Caused by: oracle.wsm.security.SecurityException: WSM-00161 : Client encryption public certificate is not configured for Async web service client
at oracle.wsm.security.policy.scenario.processor.Wss11X509TokenProcessor.insertClientEncCertToWSAddressingHeader(Wss11X509TokenProcessor.java:979)
at oracle.wsm.security.policy.scenario.processor.Wss11X509TokenProcessor.build(Wss11X509TokenProcessor.java:206)
at oracle.wsm.security.policy.scenario.executor.Wss11SamlWithCertsScenarioExecutor.sendRequest(Wss11SamlWithCertsScenarioExecutor.java:164)
... 30 more
Caused by: oracle.wsm.security.SecurityException: WSM-00057 : The certificate, client, is not retrieved.
at oracle.wsm.security.jps.WsmKeyStore.getJavaCertificate(WsmKeyStore.java:534)
at oracle.wsm.security.jps.WsmKeyStore.getCryptCert(WsmKeyStore.java:570)
at oracle.wsm.security.policy.scenario.processor.Wss11X509TokenProcessor.insertClientEncCertToWSAddressingHeader(Wss11X509TokenProcessor.java:977)
... 32 more
SEVERE: WSMAgentHook: An Exception is thrown: WSM-00161 : Client encryption public certificate is not configured for Async web service client
File upload failed
javax.xml.ws.WebServiceException: javax.xml.rpc.JAXRPCException: oracle.wsm.common.sdk.WSMException: WSM-00161 : Client encryption public certificate is not configured for Async web service client
at weblogic.wsee.jaxws.framework.jaxrpc.TubeFactory$JAXRPCTube.processRequest(TubeFactory.java:231)
at weblogic.wsee.jaxws.tubeline.FlowControlTube.processRequest(FlowControlTube.java:98)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
at com.sun.xml.ws.client.Stub.process(Stub.java:259)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:152)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:115)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
at $Proxy43.uploadFileToUcm(Unknown Source)
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:597)
at weblogic.wsee.jaxws.spi.ClientInstance$ClientInstanceInvocationHandler.invoke(ClientInstance.java:363)
at $Proxy44.uploadFileToUcm(Unknown Source)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.invokeUpload(FinancialUtilServiceSoapHttpPortClient.java:111)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.main(FinancialUtilServiceSoapHttpPortClient.java:86)
Caused by: javax.xml.rpc.JAXRPCException: oracle.wsm.common.sdk.WSMException: WSM-00161 : Client encryption public certificate is not configured for Async web service client
at oracle.wsm.agent.handler.wls.WSMAgentHook.handleException(WSMAgentHook.java:395)
at oracle.wsm.agent.handler.wls.WSMAgentHook.handleRequest(WSMAgentHook.java:248)
at weblogic.wsee.jaxws.framework.jaxrpc.TubeFactory$JAXRPCTube.processRequest(TubeFactory.java:220)
... 19 more -
Make http header available webservice layer
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2627" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV align=justify><FONT face=CourierPS size=4><STRONG>Hello
All:</STRONG></FONT></DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG></STRONG></FONT> </DIV>
<DIV align=justify><FONT face=CourierPS size=4><STRONG>Platform Windows
XP/Solaris.<BR>Weblogic version 8.1 SP4</STRONG></FONT></DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG></STRONG></FONT> </DIV>
<DIV align=justify><FONT face=CourierPS size=4><STRONG>Our webservice client
sends a request to the weservice we have written.<BR>It goes thru Netigrity's
siteminder gateway. Once it passes thru the gateway<BR>a token is stuck
into the HTTP HEADER and sent thru to the Weblogic
Webservices<BR>servlet.</STRONG></FONT></DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG></STRONG></FONT> </DIV>
<DIV align=justify><FONT face=CourierPS size=4><STRONG>I am aware of the SOAP
handlers to look at the message and retrieve the necessary<BR>headers
(both SOAP and HTTP). However the Webservices code (in my case a POJO)
does<BR>not know anything about the HTTP header.</STRONG></FONT></DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG></STRONG></FONT> </DIV>
<DIV align=justify><FONT face=CourierPS size=4><STRONG>How can I make the HTTP
header piece of data (in this case the TOKEN that Netigrity put<BR>into the HTTP
header) available to my POJO ? My POJO does not have any arguments to
<BR>its method, but I need the TOKEN to do some validation inside my POJO.
Without making use<BR>of a persistent storage how can my pojo get this token
?</STRONG></FONT></DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG></STRONG></FONT> </DIV>
<DIV align=justify><FONT face=CourierPS size=4><STRONG>Can I instantiate the
POJO object (aka my web service provider class) inside the SOAP handler
?</STRONG></FONT></DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG></STRONG></FONT> </DIV>
<DIV align=justify><FONT face=CourierPS size=4><STRONG>If I do this, how do I
know that particular instance of POJO will be invoked by the
Webservice<BR>handler (aka servlet) ?</STRONG></FONT></DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG></STRONG></FONT> </DIV>
<DIV align=justify><FONT face=CourierPS size=4><STRONG>SOAPHandler1
<BR>{<BR>
Websericecontext wc = (Webservicecontext)
mc;<BR>
Headers h =
wc.getSession().getHeaders();<BR>
token =
h.get(token);<BR>
<BR>
PojoWS pojoWs = new
PojoWS();<BR>
<BR>
pojoWS.setToken(token);<BR>}</STRONG></FONT></DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG></STRONG></FONT> </DIV>
<DIV align=justify><FONT face=CourierPS size=4><STRONG>Thanks for your
time.</STRONG></FONT></DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG></STRONG></FONT> </DIV>
<DIV align=justify><FONT face=CourierPS
size=4><STRONG>-Narahari</STRONG></FONT></DIV></BODY></HTML>Hello Aartjan,
About the tool:
You could use wireshark (just an example).
About the header part:
Can you share your code or a simplification of it (Project and files [vi's..]) that allows me to test/reproduce/see what's going on?
To know what causes the issue we need to see your code.
Kind Regards,
Thierry C - Applications Engineering Specialist Northern European Region - National Instruments
CLD, CTA
If someone helped you, let them know. Mark as solved and/or give a kudo.
Maybe you are looking for
-
Why can't I install safari on my IMac running Windows 7 under Bootcamp
Why can't I install safari on my IMac running Windows 7 under Bootcamp?
-
Once upon a time both A.P. devices used v.5.7 firmware and music could be played from Multiple Speakers i.e. Computer and Living Room. In a moment of insanity I "upgraded" the Express firmware to v.6.1.1 and now music plays only from one speaker, or
-
LDAP Multi Domain (organization) auth
Hello everybody, Actually, I have the following working configuration: LDAP server (SUN DS) with the following schema for user: ou=People,o=aOrgName,ou=People,dc=... I have multiple organization sharing the same servers, it's working fine, but each u
-
Is following procedure valid ?? If not then how and where I can use & in front of variable? PROCEDURE DYNPROC ( tbl IN varchar2, col1 IN varchar2, col2 IN varchar2) IS BEGIN select &col1,&col2 from &tbl; EXCEPTION WHEN others THEN raise ; END; -- Pro
-
Text got blurry HELP !!!!
Help pls im new to AE and dont know what to do ab it . . . when i start to type text becoming like this