Trouble calling htp in a web service procedure
I have a procedure that I was calling directly within an APEX application that allowed the user to download XML files, as follows:
PROCEDURE download_my_file (
p_resid IN VARCHAR2
, p_filename VARCHAR2
, p_filter_str IN VARCHAR2 DEFAULT NULL
AS
v_mime VARCHAR2 (48) := NULL;
v_length NUMBER;
v_file_name VARCHAR2 (2000);
v_clob CLOB;
v_buf VARCHAR2 (32000);
v_amt NUMBER := 4000;
v_pos NUMBER := 1;
BEGIN
IF p_filter_str IS NULL
THEN
SELECT EXTRACT (VALUE (r), '/*').getclobval ()
, DBMS_LOB.getlength (EXTRACT (VALUE (r), '/*').getclobval ())
INTO v_clob
, v_length
FROM TABLE (XMLSEQUENCE ((SELECT xdburitype (any_path).getxml ()
FROM resource_view
WHERE resid = p_resid))) r;
ELSE
v_clob:= repos_datasets.dyn_dset_licensed_location_xml(p_filter_str=>p_filter_str);
v_length:=DBMS_LOB.getlength (v_clob);
END IF;
-- set up HTTP header
-- if it is a null set it to application/octect
-- application/octect may launch a download window from windows
OWA_UTIL.mime_header ('text/xml', FALSE);
HTP.p ('Content-length: ' || v_length);
HTP.p ('Content-Disposition: attachment; filename="' || NVL(p_filename,'user_query.xml') || '"');
OWA_UTIL.http_header_close;
BEGIN
v_pos := 1;
LOOP
DBMS_LOB.READ (v_clob
, v_amt
, v_pos
, v_buf
v_pos := v_pos + v_amt;
HTP.prn (v_buf);
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
END download_my_file;
The procedure works perfectly when a process calls the procedure directly from the database, however, I now have a requirement whereby this download facility needs to be accessed through a web-service: merely creating a web-service for the procedure and running it through a page process returns a 'ORA-06502: PL/SQL: numeric or value error' message. I assumed as APEX is a web environment that the htp package functions would use the session that APEX had started but obviously they are not.
How would I go about manually creating a session (I presume that's what's required) that would support the htp calls and allow the user to download the files exactly as they could with a direct call to the database procedure? I know it involves some initialization using the OWA package but this is alien territory for me, can anyone help at all?
Has anyone come across a similar scenario? There are plenty examples of calling web-enabled procedures directly from APEX but I must call such a procedure through a web-service reference. Failing anyone having a similar problem, could someone explain to me how the Common Gateway interface variables are set when an APEX application calls a web enabled procedure?
I've included the code for the procedure I'm trying to run which I have altered to include CGI environment parameters: I'm getting these parameters by calling owa_util.get_cgi_env in the calling APEX application and passing the individual values to the procedure through the web service reference. I chose those variables I thought would tell the procedure where to return the HTML to but I'm just getting a blank page.
Anyone any suggestions? (code below)
PROCEDURE download_my_file (
p_resid IN VARCHAR2
, p_filename VARCHAR2
, p_filter_str IN VARCHAR2 DEFAULT 'sepa_region = ''North'''
,p_SERVER_PORT VARCHAR2
,p_SERVER_NAME VARCHAR2
,p_QUERY_STRING VARCHAR2
,p_HTTP_USER_AGENT VARCHAR2
,p_HTTP_HOST VARCHAR2
,p_HTTP_REFERER VARCHAR2
,p_DAD_NAME VARCHAR2
,p_REQUEST_CHARSET VARCHAR2
,p_HTTP_COOKIE VARCHAR2
AS
v_mime VARCHAR2 (48) := NULL;
v_length NUMBER;
v_file_name VARCHAR2 (2000);
v_clob CLOB;
v_buf VARCHAR2 (32000);
v_amt NUMBER := 4000;
v_pos NUMBER := 1;
namelist OWA.vc_arr;
valuelist OWA.vc_arr;
htpbuffer HTP.htbuf_arr;
bufrows INTEGER := 99999999;
rc INTEGER;
BEGIN
IF p_filter_str IS NULL
THEN
SELECT EXTRACT (VALUE (r), '/*').getclobval ()
, DBMS_LOB.getlength (EXTRACT (VALUE (r), '/*').getclobval ())
INTO v_clob
, v_length
FROM TABLE (XMLSEQUENCE ((SELECT xdburitype (any_path).getxml ()
FROM resource_view
WHERE resid = p_resid))) r;
ELSE
v_clob:= repos_datasets.dyn_dset_licensed_location_xml(p_filter_str=>p_filter_str);
v_length:=DBMS_LOB.getlength (v_clob);
END IF;
namelist (1) := 'SERVER_PORT';
namelist (2) := 'SERVER_NAME';
namelist (3) := 'QUERY_STRING';
namelist (4) := 'HTTP_USER_AGENT';
namelist (5) := 'HTTP_HOST';
namelist (6) := 'HTTP_REFERER';
namelist (7) := 'DAD_NAME';
namelist (8) := 'REQUEST_CHARSET';
namelist (9) := 'HTTP_COOKIE';
valuelist (1) := p_SERVER_PORT;
valuelist (2) := p_SERVER_NAME;
valuelist (3) := p_QUERY_STRING;
valuelist (4) := p_HTTP_USER_AGENT;
valuelist (5) := p_HTTP_HOST;
valuelist (6) := p_HTTP_REFERER;
valuelist (7) := p_DAD_NAME;
valuelist (8) := p_REQUEST_CHARSET;
valuelist (9) := p_HTTP_COOKIE;
-- initiliase OWA and configure a basic CGI environment
DBMS_SESSION.reset_package; reset PL/SQL PGA maintaining package state
rc := OWA.initialize;
OWA.init_cgi_env (9
, namelist
, valuelist
htp.showpage ();
-- set up HTTP header
-- use an NVL around the mime type and
-- if it is a null set it to application/octect
-- application/octect may launch a download window from windows
OWA_UTIL.mime_header ('text/xml', FALSE);
HTP.p ('Content-length: ' || v_length);
HTP.p ('Content-Disposition: attachment; filename="' || NVL(p_filename,'user_query.xml') || '"');
OWA_UTIL.http_header_close;
owa_util.print_cgi_env;
--wpg_docload.download_file( v_clob );
BEGIN
v_pos := 1;
LOOP
DBMS_LOB.READ (v_clob
, v_amt
, v_pos
, v_buf
v_pos := v_pos + v_amt;
HTP.prn (v_buf);
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
END;
Message was edited by:
user592383
Similar Messages
-
401 Unauthorized Error When calling a SharePoint REST web service from SharePoint 2013 Workflow
We have our Workflow Manger installed on the same server as our SharePoint 2013 WFE development environment. When creating a SharePoint 2013 Workflow all Calls to a SharePoint 2013 REST web service results in a 401 Unauthorized error.
As an example I created a simple workflow that should return a JSON result. The REST Url returns the results in the browser without error.
Set Variable:webServiceUrl to https://<hostnamedsitecollection>/_vti_bin/client.svc/web/lists/getbytitle('ISR%20Approvers')/Items?$select=Title&$filter=Title%20eq%20%27General%27
then Build{...} Dictionary (Output to Variable:requestHeaders)
then Call [%Variable:webServiceUrl%] HTTP web service with request (ResponseContent to Variable:responseContent |ResponseHeaders to responseHeaders | ResponseStatusCode to Variable:responseCode)
The RequestHeader is set to the requestHeaders variable though the web service call properties
then Log Variable:responseCode to the workflow history list
After manually running the workflow in SharePoint on a list item in the ISR Approvers list it Logs "Unauthorized" in the Workflow History Log. It does this with every SharePoint REST web service call that I have tried through the workflow.
It doesn't have anything to do with the Workflow Manger being installed on the same machine as the SharePoint WFE does it?
Thank You for any insightHi,
According to your post, my understanding is that you had 401 Unauthorized Error when calling a SharePoint REST web service from SharePoint 2013 Workflow.
Please make sure you use the ‘Call HTTP Web Service’ correctly.
You can enter the URL into the brower to check whether it is correctly.
You need to
create the Request header requestHeaders
using a Dictionary:
Accept : application/json;odata=verbose
Content-Type : application/json;odata=verbose
To associate the
requestHeaders variable, select the Call action
property, set the RequestHeaders property to
requestHeaders.
Please refer to the following articles:
Working with Web Services in SharePoint 2013 Workflows using SharePoint Designer 2013
Calling the SharePoint 2013 Rest API from a SharePoint Designer
Workflow
In addtion, you need to make sure you install the workflow manager correctly.
More information:
Install and configure workflow for SharePoint Server 2013
Known Issues in Workflow Manager 1.0
Troubleshooting Workflow Manager 1.0 Management and Execution
Best Regards,
Linda Li
Linda Li
TechNet Community Support -
Error in calling a method from Web services
Hai Experts,
When i try calling a method in web services from webdyn pro its not being called, i get a error SAOPFAULTCODE: 1 . wat might be the problem? The thing i am working with is tat when a employee try to create a FTR(HCM : Travel), a check has to be done in web services and then allow certain employees to proceed and rest should get a error msg but, i could find all the employees r getting the same error msg . Please resolve this issue.
Regards and thanks in advance,
Srija.Hello,
Add the line :
SET_REPORT_OBJECT_PROPERTY(RAP,REPORT_DESNAME,'test.rdf');
before
VRAP:=RUN_REPORT_OBJECT(RAP);
(Of course, 'test.rdf" is an example, replace it by the name of the reports who want to execute)
Regards -
Calling a Axis2 Secure Web Service with JDeveloper 11g
We are attempting call a Blackboard (Axis2) web service using Oracle JDeveloper 11g. We are currently unable to generate the security header required, could anyone please point me in the right direction?
I have following the following steps highlighting my issue. What steps might I be missing? Should I have created a keystore? Should I implement this with the metro stack? Any help or suggestions to go in a different direction would be greatly appreciated.
1. Install JDeveloper 11.1.1.5.0 (accept defaults)
2. Open JDeveloper
3. Create a Project by selecting File > New > Generic Project > Finish
4. Right-click newly created project and select New
a. Select Web Services in the Categories
b. Select Web Service Proxy, then Next
c. Next
d. Select JAX-WS Style, then Next
e. Enter http://gpstc.blackboard.com/webapps/ws/services/Context.WS?wsdl for the WSDL Document URL, then Next
f. Next
g. Remove “:80” from the Endpoint URL in each row, the first row should be http://gpstc.blackboard.com/webapps/ws/services/Context.WS, then Next
h. Next
i. I don’t see an option for WSSOAP12Binding which this webservice utilizes, so I selected “oracle/wss11_username_token_with_message_protection_client_policy”
j. Next
k. Finish
5. As a test, add the following code after “// Add your code to call the desired methods.”
GetServerVersionResponse myv = new GetServerVersionResponse();
myv = contextWSPortType.getServerVersion(new GetServerVersion());
System.out.println(myv.toString());
6. Run the Project
7. Received the following exception “Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: WSDoAllReceiver: Incoming message does not contain required Security header"
Currently running JDeveloper 11g with Oracle WebLogic Server 11gR1
Attempting to connect to Blackboard, Release 9.1.50119.0
Thanks, Adam HamHi,
Did you configure the Axis2 in Jdeveloper?
Best Regards
Sunny -
Error when calling BPEL process from web service client
I have created three projects here ,there're no problem when testing Composite Application(SynchronousSampleApplication) by test case inside this project.
When I create a Java Application(SynchronousSampleApp),inside this project I've created a web service client from file WSDL of BPEL. After that, In Main class, I call an operation from web service client.But have the following error:
Jul 17, 2008 4:48:22 PM synchronoussampleapp.Main main
SEVERE: null
java.rmi.RemoteException: HTTP transport error: java.net.MalformedURLException: For input string: "${HttpDefaultPort}"; nested exception is:
HTTP transport error: java.net.MalformedURLException: For input string: "${HttpDefaultPort}"
at SynSample.SynchronuosSamplePortType_Stub.synchronuosSampleOperation(SynchronuosSamplePortType_Stub.java:83)
at synchronoussampleapp.Main.main(Main.java:24)
Caused by: HTTP transport error: java.net.MalformedURLException: For input string: "${HttpDefaultPort}"
at com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpClientTransport.java:140)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:96)
at SynSample.SynchronuosSamplePortType_Stub.synchronuosSampleOperation(SynchronuosSamplePortType_Stub.java:67)
... 1 more
Please help me soon. Thanks very much!Can't anyone help me? I'm using Netbean 6.1 and Glassfish server.
Do I need any additional plugin? -
Calling a PL/SQL web service from a procedure
Does someone can help me , I have to call a PL//SQL web service_ but it's on a https server. It uses Oracle Wallet.
I want to know the step ( and/or the code) to be able to do so
Here's what I have :
I want to call that :
http://207.253.66.69/frsq_dev/FRSQ_NIP_EXISTS?pNOM_NAISS=Bouchard&pPRENOM=Disane&pNOM_MERE=Thibault&pSEXE=F&pDATE_NAISS_YYYY=1960&pDATE_NAISS_MM=04&pDATE_NAISS_DD=24
It's suppose to return me a string.
I have the code to do it without the https part (easy!), but I want to have the way to do it https! :
vURL := 'http://207.253.66.69/frsq_dev/FRSQ_NIP_EXISTS?pNOM_NAISS=' || pNOM_NAISS || '&pPRENOM=' || pPRENOM || '&pNOM_MERE=' || pNOM_MERE || '&pSEXE=' || pSEXE || '&pDATE_NAISS_YYYY=' || pAn_naissance
|| '&pDATE_NAISS_MM=' || pMois_naissance || '&pDATE_NAISS_DD=' || pJour_naissance;
vURL := utl_url.escape(vURL);
select UTL_HTTP.REQUEST(vURL) into resultat from dual;
-- Result should have the string I want
Thanks
Jp
Edited by: Jpmill on Jul 15, 2009 9:40 AMOracle Link
http://www.oracle.com/technology/products/jdev/howtos/10g/WS_DBCallout/DBCalloutWS_HowTo.htm
HTH
SS -
Calling a document style web service using a pl/sql wrapper method
Just wanted to find out if anybody has a working example of invoking a document style web service from Oracle 10g database on a Unix environment.
We have java test class that invokes the web service, and we are trying to use a pl/sql wrapper to invoke a Java Web Service client. So far, we are encountering an End of File Communication error from Oracle which essentially terminates the session with the database.
On the Oracle application server side we are able to see a successful HTTP request made to the application server via server log, which is hosting the web service, since we are registering HTTP 200 success codes. However, we do not see any other errors from the application in the server logs. Most likely since the client side fails, before actually getting a chance to invoke the web service. This has been verified by commenting the client code leaving the print statements. The first call to the Service Factory method (XFire) to look up the service is where the PL/SQL procedure fails with an End of File communication error.Remove the when others section and see the actual error and post that.
http://tkyte.blogspot.com/2008/06/when-others-then-null-redux.html
http://tkyte.blogspot.com/2007/03/dreaded-others-then-null-strikes-again.html -
I have been extensively researching web services but I still can not find out how to return a set of data like there is in this example.. the most i can get it to return is one field of data by just returning a variable http://www.oracle.com/technology/obe/obe_as_10g/portal/bld_portlet_decl/portlet_decl.html#webService
would anyone be able to show me some sample code about returning multiple values, the only way i can think of is declaring a type and then returning a ref cursor but web services dont let you use ref cursors!!!!
The only thing i wanted to see on that example is the code for that method but they don't show it! I am at my wit's end, any help would be greatly appreciated (sorry in advance if this has been posted before but I couldn't find anything about it)Ah.. now it seems to make sense. Unfortunately this may seem quite technical, but this deals with APEX/XML/web processes on their most basic technically level.
Whatever does the graphing (e.g. like an AnyChart or Fusion swf program), expects XML as input.
This XML contains the data required to determine the type of chart, legends, titles, colours and so on - including the serie and data points to plot.
It obviously cannot handle a ref cursor, just as it cannot handle anything else, but XML data in the very specific format that it expects. I.e. you cannot pass just any old XML to it.
In Oracle terms, a web-enabled PL/SQL procedure must return a XML MIME stream to the web browser via the web server's mod_plsql module.
In APEX terms, if the standard APEX Anychart XML generator does not do the trick, you need to write your own and define that as an APEX process so that it is called within the APEX context (allowing you access to APEX state variables applicable to the caller). -
Call bpel process as Web service from database
Hi!
i'm trying tocall bpel process as web service from Oracle database. When i try the same pl sql function, i can successfully call regular j2ee web service without any problem. When i instantiate process from bpel console - everything is ok .. but when i call process from plsql function, i get this error:
ORA-20000: soapenv:Server.generalException - Missing BPEL archive file.
The process domain cannot locate the BPEL archive for process
"AuthorizeKeyCode", revision "AuthorizeKeyCode".
If you have deployed the process please check that it is located in the
directory "/ora/bpelpm/integration/orabpel/domains/vinves/deploy".
; nested exception is:
ORABPEL-05205
Missing BPEL archive file.
The process domain cannot locate the BPEL archive for process
"AuthorizeKeyCode", revision "AuthorizeKeyCode".
If you have deployed the process please check that it is located in the
directory "/ora/bpelpm/integration/orabpel/domains/vinves/deploy".
i tried undeploy and deploy the process again, i tried to restart the server - still the same problem...
anyone can help, please?
thanks ...
TomasHi,
I am trying to invoke the HelloWorld BPEL process from Oracle DB using the demo_soap package downloaded from oracle.com.
Find the PL/SQL block below:
DECLARE
req Demo_Soap.request;
resp Demo_Soap.response;
zipcode VARCHAR2(100) := 'Suresh';
BEGIN
req := Demo_Soap.new_request('initiate',
'xmlns="http://xmlns.oracle.com/HelloWorld"');
Demo_Soap.add_parameter(req, 'HelloWorldProcessRequest', 'xsd:string', zipcode);
resp := Demo_Soap.invoke(req,
'http://nooslux037t.gl.2wglobal.com:7777/BPELConsole/Dev/displayProcess.jsp?processId=HelloWorld',
'http://xmlns.oracle.com/HelloWorld');
END;
Please help me in knowing what value i should pass for the
1. New_request procedure
2. Add_parameter procedure
3. Invoke procedure.
The HelloWorld is same as the example in the BPEL Tutorial Session 1.
Thanks for your time. -
Error while calling MII transaction as web service from ABAP
Hello Experts,
I want to call a MII transaction from ABAP program, as a web service.
Following is output of http://<<server>>:50000/XMII/SOAPRunner/TAG_TRX (TAG_TRX is name of my transaction).
<?xml version="1.0" encoding="UTF-8" ?>
- <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.sap.com/xMII" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://www.sap.com/xMII">
- <!-- Types
-->
- <types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://www.sap.com/xMII">
- <s:complexType name="InputParams">
- <s:sequence id="InputSequence">
<s:element maxOccurs="1" minOccurs="0" name="WEIGHT" type="s:string" />
<s:element maxOccurs="1" minOccurs="0" name="BATCHID" type="s:string" />
</s:sequence>
</s:complexType>
- <s:element name="XacuteRequest">
- <s:complexType>
- <s:sequence>
<s:element maxOccurs="1" minOccurs="0" name="LoginName" type="s:string" />
<s:element maxOccurs="1" minOccurs="0" name="LoginPassword" type="s:string" />
<s:element maxOccurs="1" minOccurs="0" name="InputParams" type="s0:InputParams" />
</s:sequence>
</s:complexType>
</s:element>
- <s:complexType name="Rowset">
- <s:sequence>
<s:element maxOccurs="unbounded" minOccurs="0" name="Row" type="s0:Row" />
</s:sequence>
<s:attribute name="Message" type="s:string" />
</s:complexType>
- <s:complexType name="Row">
<s:sequence id="RowSequence" />
</s:complexType>
- <s:element name="XacuteResponse">
- <s:complexType>
- <s:sequence>
<s:element maxOccurs="1" minOccurs="0" name="Rowset" type="s0:Rowset" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
- <!-- Messages
-->
- <message name="XacuteSoapIn">
<part element="s0:XacuteRequest" name="parameters" />
</message>
- <message name="XacuteSoapOut">
<part element="s0:XacuteResponse" name="parameters" />
</message>
- <!-- Ports
-->
- <portType name="XacuteWSSoap">
- <operation name="Xacute">
<input message="s0:XacuteSoapIn" />
<output message="s0:XacuteSoapOut" />
</operation>
</portType>
- <!-- Bindings
-->
- <binding name="XacuteWSSoap" type="s0:XacuteWSSoap">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="Xacute">
<soap:operation soapAction="http://www.sap.com/xMII" style="document" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
</binding>
- <!-- Service mapping
-->
- <service name="XacuteWS">
- <port binding="s0:XacuteWSSoap" name="XacuteWSSoap">
<soap:address location="http://<<server>>:50000/XMII/SOAPRunner/TAG_TRX" />
</port>
</service>
</definitions>
Now, when I am using http://<<server>>:50000/XMII/SOAPRunner/TAG_TRX to create a Enterprise Service in SAP (i.e. SE80 transaction-> Create Enterprise Service-> Service Consumer-> URL/HTTP Destination-> URL ... I am getting following error.
Incorrect value: Entity "<<document>>"(5 /93 ). unexpected symbol: '<'
But, whenever I am using the same URL in MII BLS, it does not give any error. It correctly shows all input and output parameters.
Please help me to resolve this issue.
Regards
Neeta.Now, I am able to create the Web Service in SAP and it is now showing the respective class, attribute and methods to execute this web service (web service to call MII transaction).
But when I am calling it from ABAP (a simple Web Dynpro for ABAP method), it is showing me the following error:
Error (id=GET_BUSINESS_SYSTEM_ERROR): An error occurred when determining the business system (LD_ERROR)
Thought this error is coming from ABAP program, but I am sure that this is related to some configuration at SAP level. (Let me inform you that there are two different servers for SAP Web Dynpro ABAP and SAP MII.
Please help.
Thanks in advance. -
Calling Oracle BPM Process Web Service from Oracle Service Bus
Hi
I am using Oracle Service Bus 10gR3.
I have developed simple BPM process through Oracle BPM studio 10.3.1.0.I then followed steps below
1. Create a Process.
2. Expose the Process as a Web Service.
3. Run the project. This starts the Process Execution Engine.
4. Create an ALSB External Resource of type Management Host.
5. Create a second ALSB External Resource for registration.
6. Register the End Point
Until this point everything is fine. Then I created one project through Oracle Service Bus console. Under that created WSDL, Proxy Service and Business Service Folders. I am using the web service created through BPM studio as teh Business Service in SB . I then created one proxy service to route the request to the Business Service.
Finally when I try to test the Proxy Service by launching test console, I get the
<con:fault xmlns:con="http://www.bea.com/wli/sb/context">
<con:errorCode>BEA-380001</con:errorCode>
<con:reason>INTERNAL SERVER ERROR</con:reason>
<con:location>
<con:node>RouteNode1</con:node>
<con:path>response-pipeline</con:path>
</con:location>
</con:fault>
I also tried to debug through "Oracle Workshop for WebLogic Version 10.3 " . But I am not getting enough details as to why this is failing.
Please help me . Thanks In advance.
Thanks
Nilay
Edited by: user8950019 on Feb 1, 2010 4:11 AMHi,
When im calling wsdl created when BPM exposed as webservice in SOAP-ui, i first hit the startSession
Request is:-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exp="http://bea.com/albpm/ExpenseManagement/ExpenseReport">
<soapenv:Header/>
<soapenv:Body>
<exp:startSession>
<password>Employee</password>
<user>Employee</user>
</exp:startSession>
</soapenv:Body>
</soapenv:Envelope>
Response i Get is:-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:startSessionResponse xmlns:ns1="http://bea.com/albpm/ExpenseManagement/ExpenseReport">
<return>3782hecq1s85h</return>
</ns1:startSessionResponse>
</soapenv:Body>
</soapenv:Envelope
but when i put this sessionId in main request:-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exp="http://bea.com/albpm/ExpenseManagement/ExpenseReport">
<soapenv:Header/>
<soapenv:Body>
<exp:expenseReport>
<sessionId>3782hecq1s85h</sessionId>
<reportArg>
<!--Optional:-->
<comments>yes</comments>
<!--Optional:-->
<costCenter>jaa</costCenter>
<!--Optional:-->
<description>aa</description>
<!--Optional:-->
<isApproved>y</isApproved>
<!--Zero or more repetitions:-->
<items>
<!--Optional:-->
<elements>
<!--Optional:-->
<amount>700</amount>
<!--Optional:-->
<date>?</date>
<!--Optional:-->
<description>?</description>
<!--Optional:-->
<receiptChecked>?</receiptChecked>
</elements>
</items>
<!--Optional:-->
<reviewedBy>?</reviewedBy>
<!--Optional:-->
<submitDate>?</submitDate>
<!--Optional:-->
<submittedBy>?</submittedBy>
<!--Optional:-->
<total>?</total>
</reportArg>
</exp:expenseReport>
</soapenv:Body>
</soapenv:Envelope>
Response coming is :-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>fuego.lang.ComponentExecutionException: The method 'expenseReport' from class 'xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl' could not be successfully executed.</faultstring>
<detail>
<ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/">fuego.lang.ComponentExecutionException: The method 'expenseReport' from class 'xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl' could not be successfully executed.
at fuego.lang.Invokeable.invokeImpl(Invokeable.java:244)
at fuego.lang.Invokeable.invokeDynamic(Invokeable.java:188)
at fuego.lang.Invokeable.invoke(Invokeable.java:160)
at fuego.soaptype.SoapListener.invokeDynamic(SoapListener.java:104)
at fuego.lang.Invokeable.invoke(Invokeable.java:160)
at fuego.fengine.FEngineWebServiceExecutor$2.execute(FEngineWebServiceExecutor.java:133)
at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
at fuego.fengine.FEngineWebServiceExecutor$1.run(FEngineWebServiceExecutor.java:65)
at fuego.component.Message.process(Message.java:576)
at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:244)
at fuego.fengine.FEngineWebServiceExecutor$WebServiceExecutorPrincipal.processBatch(FEngineWebServiceExecutor.java:168)
at fuego.component.ExecutionThread.work(ExecutionThread.java:839)
at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
Caused by: java.lang.RuntimeException: java.lang.NumberFormatException: For input string: "jaa"
at xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl.expenseReport(ExpenseReportServiceInternalAlbpmListenerImpl.xcdl:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
at fuego.lang.JavaObject.invoke(JavaObject.java:227)
at fuego.lang.Invokeable.invokeImpl(Invokeable.java:234)
... 21 more
Caused by: java.lang.NumberFormatException: For input string: "jaa"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.valueOf(Unknown Source)
at fuego.util.Conversion.tojava_lang_Integer(Conversion.java:934)
at fuego.xobject.runtime.ConversionUtilities.fromString(ConversionUtilities.java:56)
at fuegoblock.xml.XmlElementDeserializer.deserializeElement(XmlElementDeserializer.java:175)
at fuegoblock.xml.XmlElementDeserializer.deserialize(XmlElementDeserializer.java:81)
at fuegoblock.xml.DynamicXml.createObjectFrom(DynamicXml.java:160)
at fuegoblock.xml.DynamicXml.createObjectFrom(DynamicXml.java:119)
at xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl.expenseReport(ExpenseReportServiceInternalAlbpmListenerImpl.xcdl:17)
... 28 more</ns1:stackTrace>
<ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">D-113014550</ns2:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
can anyone explain why this error is coming.?
Edited by: user8937128 on May 19, 2010 6:58 AM -
How to call an ABAP based web service from a web page (form)
Hi,
I am trying to figure out how I can call my own developed ABAP based web service. I was able to successfully test it in the WS navigator and am now wondering what I need to do to embed the service call in a plain simply web page (form). Basically I'd like to create a web form allowing to specify the parameters and with a 'Submit' button pass the parameters to the web service and launch it.
Is this possible or do I need some kind of SDK to accomplish this?
Thanks for any hints and tips.
WolfgangHi,
refer the following link and this is for cosuming the web service form Web dynpro Java
https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/50d70a19-45a3-2b10-bba0-807d819daf46&overridelayout=true
and please go throught the following link if you want to cosume it through web dynpro abap and find the answer given by the Moderator Thomas Jung
regards
Manohar -
Error calling BLS Transaction as Web service
Hi,
I am trying to call BLS tranx as Webservice from another BLS Tranx.
I craeted the simple BLS with no input parameter and set only one output parameter.
Then i created the WSDL as
http://<server:port>/XMII/WSDLGen/<Transaction path>.
In new BLS tranx, i created the Web Service action block and gave this WSDL URL (http://<server:port>/XMII/WSDLGen/<Transaction path>).
I gave username and password and selected the port(XacuteWSSoap) and then operation( xacute).
In Links, I gave the Loginname and Password.
But while executing, it showed the error as
Error Invoking Web Service Action: Status (401): Unauthorized
My username and Loginname and passwords are correct only.
What is the problem and how to solve it.
Regards,
SenthilHi,
Which SAP MII version you are using?
I have tested one piece in MII 12.0.9 it works for me following are steps which i followed.
After WSDL generation
1. in Web service action block --> cofigure i am passing following parameters
WSDL base URL: http://<server:port>/XMII/WSDLGen/<transaction Path>
User Name: XXX
Password: XXX
2. in Web service action block --> Links I am passing following parameters
WSDLUrl : http://<server:port>/XMII/WSDLGen/<transaction Path>
Web_Service_0.XacuteRequest{/ns1:XacuteRequest/ns1:LoginName} : XXX
Web_Service_0.XacuteRequest{/ns1:XacuteRequest/ns1:LoginPassword} : XXX
Refer below SDN thread may be helpfull:
[Web Service Action Block;
Hope it helps!!
Regards,
Manoj Bilthare -
Error while calling MII transaction as web service
Hi all,
I am using MII version 12.1.8
When i try calling a BLS as a web service i am getting an error as " [ERROR] Error Invoking Web Service Action: Status (502): Proxy Error ( No data record is available. ) "
The same WSDLGen url is working from the browser. The path is http://<server>:50000/XMII/WSDLGen/<TrxPath>
I also gave Proxy Host and Proxy Port in System Management --> System Administration
Is there anything i am missing in the web service action.
Kindly help
Regards
MuzammilHi Diana,
It is working now. I removed the proxy settings from system administrator and added a new credential alias for web service. And then it started working..
The scenario which i am trying is as mentioned. We need to call a transaction from a diiferent MII Server. So at first i was trying with the Trx within the same server.
Hope this is the best way to access the transaction from a different server.
Regards
Muzammil -
How we can call asynchronous jax-ws web services in OSB 10g r3?
Hello everybody,
We're using the Oracle Service BUS 10.3 here, and we'd like to make some calls from business services to web services in some asynchronous way.
We know Jax-ws provides the callback way and the pooling async way to call it, but as this kind of "operations" are generated in the service consumer stub (and our service consumer rigth now is the OSB itself through the Business Service), we are trying to discover how Oracle Service BUS would use this async feature.
IMHO, the callback approach would be better, since the response pipeline itself should be trigged when the response is ready.
Is the OSB 10.3 ready to use async calls with Jax-WS or we should continue using Jax-Rpc with soap over xml to solve this issue?
Thanks!
Edited by: lucas.teixeira on 26/05/2009 05:05It is important to remember that in our situation here, we'd like to use the Jax-Ws specification. We could use the Jax-RPC and call our service using the JMS transport and the @WLJmsTransport, we know, but this is out of our plans, since the WL implementation of it will enqueue every requisition in just one consumer for the WS.
Anyone can help us calling async jax-ws services from the OSB ?
Thanks!
Maybe you are looking for
-
Pcs:if tag error in Content Server presentation template
This probably isn't the right discussion group, but I couldn't find a group to which this inquiry applies. Anyway, I'm working on Content Server (5.0.2) presentation template code, using a pcs:if tag, that looks something like this: <pcs:foreach var=
-
Using a old iMac as a Secondary Display
Can I connect a Late 2006 24-inch, iMac to a 27' Late 2012 iMac and use the 2006 iMac as a secondary Display
-
ITunes 10.5.0.142 Crashes Whenever Music Added to Library
This has been pestering me for a few weeks now and so now I'm taking it to you, random cloud of internet people. Whenever I attempt to load music files into my iTunes library it crashes more or less immediately. The error message reads as such: Probl
-
New forum not very user friendly (to me anyway!)
I may be missing the obvious. If anyone can post some pointer on how to use this new forum, I'd be greatful. Issues I have are: 1) I can't seem to tell which threads have new posts since my last visit. Some say "updated" after the title, but some
-
Configure Web Services in a SAP-IDES-System?
Hello, I have access to a SAP-frontend on a SAP-IDES-System and now Iu2019d like to configure two Web Services in SAP. I think I can do this configuration with SPRO, but I donu2019t really know how and where. Is there a good documentation about Web S