Invoking a web Service using Service Control
Hi All,
I am getting the below exception when I am trying to execute a process containing a simple Service Control generated using a WSDL file.
Any thoughts/solutions is appreciated.
Exception in getPendingOrdersForApprover
com.bea.control.ServiceControlException: Unexpected exception raised invoking getPendingOrdersForApprover on control com.verisign.controls.MSL_ORDERSoapServiceControl. Use getCause() to see the root cause.[java.rmi.RemoteException: Failed to invoke; nested exception is:
weblogic.wsee.handler.InvocationException: [Client CodecHandler]Failed to decode]
Caused by: java.rmi.RemoteException: Failed to invoke; nested exception is:
weblogic.wsee.handler.InvocationException: [Client CodecHandler]Failed to decode
... 38 more
Caused by: weblogic.wsee.handler.InvocationException: [Client CodecHandler]Failed to decode
... 44 more
Caused by: weblogic.wsee.codec.CodecException: Found more elements in the soap envelope than required by WSDL:{ld:Physical/MSL_ORDER}MSL_ORDER. WSDL Message for this operation is: (WsdlBindingMessage@20764897 <name=> <type=1> <extensionList=(NameValueList@29534392 <list[]{(SoapBody@13827654 <encodingStyle=null> <use=literal> <namespace=null> <parts=null>)}>)>)
... 53 more
at com.bea.control.servicecontrol.impl.ServiceControlImpl.invoke(ServiceControlImpl.java:678)
at com.verisign.controls.MSL_ORDERSoapServiceControlBean.getPendingOrdersForApprover(MSL_ORDERSoapServiceControlBean.java:323)
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:585)
at com.bea.wli.knex.runtime.jcs.container.JcsProxy.invokeBeehiveControl(JcsProxy.java:666)
at com.bea.wli.knex.runtime.jcs.container.JcsProxy.invoke(JcsProxy.java:446)
at $Proxy71.getPendingOrdersForApprover(Unknown Source)
at com.verisign.processes.WebServiceInvokeProcess.mSL_ORDERSoapServiceControlGetPendingOrdersForApprover(WebServiceInvokeProcess.jws:48)
Thanks,
Ram
I solved the problem :-)
it happened due to JAVA_HOME env var. It has to point to jdk that comes along with wl812. mine was pointing to sun jdk 1.4.2. However, this is a bug, because, for wlwlbuild task , i was setting the proper bea java home, still it was failing due to system java_home var. And i did not face this problem with WL813. After facing lot of issues with 812, now i feel, 812 is not a stable production version.
Anyways, now the prob;em is solved.
Similar Messages
-
I'm trying to invoke a search service using service callout . However on trying to test it , I'm getting this response
<con:fault xmlns:con="http://www.bea.com/wli/sb/context">
<con:errorCode>BEA-382500</con:errorCode>
<con:reason>
OSB Service Callout action received SOAP Fault response
</con:reason>
<con:details>
<con1:ReceivedFaultDetail xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
<con1:faultcode xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Client</con1:faultcode>
<con1:faultstring>Cannot find dispatch method for {}</con1:faultstring>
<con1:http-response-code>500</con1:http-response-code>
</con1:ReceivedFaultDetail>
Please help in resolving this error.
Thanks,
Rohityou are calling wrong the Service.
¿what kind of service do you have? RPC? Document?
ir your target service its document, I recommend this:
1. Test target service with OSB
2. copy XML request and XML response from the test.
3. use XML request format that you got at Step 2 in your source service and using it at your "Service Callout". -
How to create oracle services using grid control
Hi All,
I have oracle grid control account my grid control version is 10.2.0.4.0.Can any one please let me know the tab from which I can create Oracle services.
I know we can create oracle services using DBCA also.When I'm trying to do that way it is giving below error.
dbca
DISPLAY not set.
Set DISPLAY environment variable, then re-run.
How to set DISPLAY environment variable.
Thanks,
Rafi.Normally, you set DISPLAY to an IP address with the suffix : and 0.0: the IP address must match a machine able to display X11 windows.
Example with Linux bash shell:
export DISPLAY=192.168.0.1:0.0What is your OS version ? What is your shell (bash, ksh, sh, csh) ? How do you connect to the UNIX host ?
Edited by: P. Forstmann on 8 févr. 2010 09:05 -
Web services using service registry in PI 7.1
Hi,
How to use this services registry with respect to web services, when will be using this option of service registry with web services.
can any one throw some light on using web services in PI 7.1
regards
sai.Do you need information on Service Registry?
Refer: /people/daniel.graversen/blog/2008/02/27/publish-services-from-pi-71-to-the-service-registry
http://www.riyaz.net/blog/pi-71-publishing-service-interface-as-a-webservice-in-sr/
From help: http://help.sap.com/saphelp_nwpi71/helpdata/EN/44/cc8fd368c873dfe10000000a11466f/content.htm
Regards,
Abhishek. -
I have the below code in my User control ASCX page.
<form id="form1" runat="server">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<table>
<tr>
<td>
<rsweb:ReportViewer ID="rvDracas" runat="server" Height="100%" Width="100%" ProcessingMode="Local"
DocumentMapCollapsed="true" SizeToReportContent="True" PromptAreaCollapsed="True"
ShowCredentialPrompts="false" ShowBackButton="False" ShowPrintButton="true"
AsyncRendering="false" ShowFindControls="false" ToolBarItemBorderStyle="None" ShowToolBar="true"
ShowReportBody="True" ShowPromptAreaButton="True" ShowRefreshButton="True" ShowZoomControl="False"
ShowParameterPrompts="False" ViewStateMode="Enabled" OnLoad="rvDracas_Load" onclick="window.App.submitting
= true;" style="margin-bottom: 0px" OnPageNavigation="rvDracas_Load" >
</rsweb:ReportViewer>
</td>
</tr>
</table>
</form>
In page load I am filling the RDL with the data source.
When I click on Page navigation control it is throwing me the below error.
"Unhandled exception at line 885, column 13
0x800a139e - JavaScript runtime error: Sys.WebForms.PageRequestManagerParserErrorException: The message received from the server could not be parsed.
Please help...Hello,
Welcome to MSDN forum.
I am afraid that the issue is out of support range of VS General Question forum which mainly discusses
the usage of Visual Studio IDE such as WPF & SL designer, Visual Studio Guidance Automation Toolkit, Developer Documentation and Help System
and Visual Studio Editor.
Because you are doing ASP.NET MVC app development, I suggest that you can consult your issue on ASP.NET forum:
http://forums.asp.net/
for better solution and support.
Best regards,
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Invoking web service using Weblogic Workshop (JCX)
Invoking web service using Weblogic Workshop
Posted: 5 Jan 2005 23:31 PM Reply
Hi,
I have WSDL from which I have generated a web service control (.jcx) using Weblogic Workshop.
I need to write a client which will invoke the web service using the control.
Can someone help me on how to go about this ?
BTW .. I also tried the clientgen route and tried to generated the proxy jar from the WSDL but wasn't successful because of a existing clientgen bug.
Refer bugHi,
if the consumer of the webservice is a control-aware consumer ( pageflow, control, process ) simply drag the control to this consumer and the control variable is ready for use.
if the consumer is not control-aware, try to generate a proxy using eg. the axis tool, or handcode your proxy class.
links :
how to use webservice control
http://e-docs.bea.com/workshop/docs81/doc/en/workshop/guide/controls/conGettingStartedWithJavaControls.html
axis
http://ws.apache.org/axis/
- Anders M.
- Anders M. -
Error while executing webservice composed using service composer
Hello Experts,
We have composed a service using service composer DC by consuming PI soap interfaces.(SAP NW 7.4 SP07)
Composed Webservice works perfectly fine for some time then it throws folowing error when tested from wsnavigator -
any idea what could be the problem??
Thanks in advance..
PriyaTry not changing the schema names when creating the web services. And if you are changing it, make sure you change it everywhere required.
This error is thrown when the server can't find a specified schema class.
But if you mention that the service works fine for some time and later crashes, makes the scene a little fishy.
Please log on to http://<hostname>:<portnumber>/nwa/logs immediately after this failure occurs and check the logs for a detailed error trace. -
Using ReportViewer Controls in a jsp application calling Reporting Services using Web Services
Hi,
I am invoking RS web services to render reports, using Apache Axis to generate stub classes from Reporting Service WSDL.
Please let me know if I can integrate Report Viewer control in the jsp where I am writing the report output. Else do I have to create my own custom tags simulating ReportViewer functionality.did anyone of you have tried it or not?
i need this thing tobe confirmed. i have drilled the google and others.but can't find other than
http://www.mainsoft.com/products/SQLServerReportingServicesConnectorforWPS.aspx -
Using SAML policy while invoking a web service
I have to invoke a webservice which is secured using the policy wss10_saml_token_client_policy.
In order to achieve the above i have creates a stub using JAX-WS and while invoking the web service I pass the policy as a SecurityFeature.Code snippet given below:
SecurityPolicyFeature[] securityFeatures = new SecurityPolicyFeature[] { new SecurityPolicyFeature(
getValueFromPropertyFile("oracle/wss10_saml_token_client_policy"))};
SomeStub stub =(UserManagementPortTypev1_0)SomeService.getPort("...","....",securityFeatures );
Once deployed in weblogic and when i invoke the service, the soap request formed is correct. It creates for me the soap header with the correct security nodes. The header formed is like below:
<S:Header>
<work:WorkContext xmlns:work="http://oracle.com/weblogic/soap/workarea/">rO0ABXoAAAJDADBvcmFjbGUuZG1zLmNvbnRleHQuaW50ZXJuYWwud2xzLldMU0NvbnRleHRGYW1pbHkAAAFPAAAAKXdlYmxvZ2ljLndvcmthcmVhLlNlcmlhbGl6YWJsZVdvcmtDb250ZXh0AAABSaztAAVzcgAxd2VibG9naWMud29ya2FyZWEuU2VyaWFsaXphYmxlV29ya0NvbnRleHQkQ2Fycmllcv1CAh9z5wpPAwACWgAHbXV0YWJsZUwADHNlcmlhbGl6YWJsZXQAFkxqYXZhL2lvL1NlcmlhbGl6YWJsZTt4cHcEAAAAAXNyAEFvcmFjbGUuZG1zLmNvbnRleHQuaW50ZXJuYWwud2xzLldMU0NvbnRleHRGYW1pbHkkU2VyaWFsaXphYmxlSW1wbAAAAAAAAAAAAwABTAARbVdMU0NvbnRleHRGYW1pbHl0ADJMb3JhY2xlL2Rtcy9jb250ZXh0L2ludGVybmFsL3dscy9XTFNDb250ZXh0RmFtaWx5O3hwdykAJzEuMDAwMEl6T0lYQ0swam9PTE1pcDJpZTFEbUNMdjAwMDAwMjt2MHh3AQF4ACZ3ZWJsb2dpYy5kaWFnbm9zdGljcy5EaWFnbm9zdGljQ29udGV4dAAAAX8AAAAyd2VibG9naWMuZGlhZ25vc3RpY3MuY29udGV4dC5EaWFnbm9zdGljQ29udGV4dEltcGwAAAAiMDAwMEl6T0lYQ0swam9PTE1pcDJpZTFEbUNMdjAwMDAwMgAAAAAAAAAAAAAA</work:WorkContext>
<wsse:Security S:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<saml:Assertion AssertionID="SAML-L0r20MS5CV0y7B6zHnGX5w22" IssueInstant="2011-05-10T05:03:49Z" Issuer="www.oracle.com" MajorVersion="1" MinorVersion="1" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
<saml:Conditions NotBefore="2011-05-10T05:03:49Z" NotOnOrAfter="2011-05-10T05:08:49Z"/>
<saml:AuthenticationStatement AuthenticationInstant="2011-05-10T05:03:49Z" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password">
<saml:Subject>
*<saml:NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">anonymous</saml:NameIdentifier>* <saml:SubjectConfirmation>
<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:sender-vouches</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
</saml:Subject>
</saml:AuthenticationStatement>
</saml:Assertion>
</wsse:Security>
</S:Header>
The node NameIdentifier is supposed to be populated with the logged in user id, which will be picked up from JAAS principal.
Now I am invoking the service hosted in weblogic from outside using JSON protocol, I do not have a portal ready to invoke the service.
My question is, is there any way in which i can replicate/ simulate the JAAS principal such that the nameidentifier is populated even when invoked from outside. THis is a requirement from testing perspective.Hi,
Thanx it is working now.
BTW can you give me some urls with info of this kind of setting which i need to do for other kind of integarions in J2EE platform.Sorry if i am asking too much as i am a starter in this technology. -
Invoking a Web Service using XI 2.0
Hi all,
I am attempting to create a scenario where an SAP application invokes a web service through XI 2.0.
I have created an ABAP proxy to allow my ABAP to start the call process and have set up the message interfaces within the Integration Directory.
I want XI to receive a call from this proxy and then act as the client to an existing Web Service.. calling it and bringing back a response... but it doesn't look like I can import the existing WSDL as a I would have expected.
So... instead I have exported the Message Interface for the "out of XI" portion of the interface as a WSDL and have asked the Web Service provider to amend their service according to this XI generated WSDL.
My difficulty now is how to use the SOAP adapter. Within the Integration Directory I presumably need to define the endpoint with XI Connectivity but I am not sure how to fill in the URL address of the SOAP adapter...
Any help on how to configure the actual SOAP adapter to fulfill this requirement would be great too.
I have looked around the boards to see if I could work this out from previous posts but without success so far.
It's a synchronous scenario and basically should look like...
ABAP Proxy->XI->SOAP Adapter->Web Service->XI->ABAP Proxy
Many thanks,
GordonHi Gordon,
here is an example for SOAP-Adapter config:
# Bubble adapter java class
classname=com.sap.aii.messaging.adapter.ModuleBubble
# Sets the bubble module helper that can instantiate your bubble bag
Bubble.Helper=com.sap.aii.messaging.adapter.ModuleBubbleHelperXMBWSImpl
###### Part 0 (FromWS and ToWS) : common part ######
# Keeps the XMB headers in web service messages
XMBWS.KeepHeaders=false
# Encodes the xmb headers into a special HTTP header string x-xmb_ws_encoded
XMBWS.UseEncoded=false
# The target URL for the web service, to which the adapter sends web service messages.
# The address is part of the WSDL
XMBWS.TargetURL=http://www.extensio.com:8080/ExtensioInfoServer/servlet/rpcrouter
# Proxy configuration from SAP
XMBWS.proxyHost=PrOxY
XMBWS.proxyPort=8080
# The port and path where the adapter waits for XMB messages from clients.
XMBWS.XMBPort=8400
XMBWS.XMBPath=/soap/stockquote
# The default SOAPAction HTTP request header to the web Service server
# The SoapAction is part of the WSDL
XMBWS.DefaultSOAPAction=
Of course you have to set URL, proxy and SOAP-action to your belongings.
You define the endpoint as:
"http://<Adapter-Server>:<XMBPort><XMBPath>"
in this example:
"http://localhost:8400/soap/stockquote"
Stefan -
Invoking a web service not created using oracle web service lib
Hi All,
I have a need to invoke my web service from oracle sql command. My web service not created using oracle web service library, but it is created using axis c++ libraries. Is it possible to do so,
Thanks in advance,
Regards,
MonicaIn order to call out from the database process, is SQL (or PL/SQL) you need to generate some client code, that understand the details about the specific of the service you want to invoke and can produce the correct SOAP request. Once this proxy is uploaded in the Database, you can use it.
There is a set of Database Web services samples that should help you get started. You can also take a look at the developer's guide - see Developing a Web Service Client in the Database.
Hope it answers your question.
--eric -
How to invoke a web service asynchronously using ws-addressing model?
Hi Gurus,
We are invoking an external web service asynchronously using Oracle Work Flow Business events using the following mechanism -
1)Created a web service invoker event to invoke the web service.
2)Created a subscription that invokes the web service (provided the wsdl address, operation info).
3)Defined a subscription parameter WFBES_CALLBACK_EVENT with value pointing to a recieve event.
4)Created a receive event(parameter value for WFBES_CALLBACK_EVENT) and a subscription that directs the response to a custom PL/SQL function to process response.
so far so good. We were able to invoke the web service and get and process the response.
Problem: The external web service can take upto 10 hrs to process the request. A time out of 2 hrs is set on the server hosting the external web service. So when the external web service takes more than 2 hrs to process the request and it times out and we get the following error on EBS side -
'l_error_message:oracle.apps.fnd.wf.bes.InvokerException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html; charset=iso-8859-1'
Now the external web service providers are suggesting that we are not calling their web service asynchronously and we should use ws-addressing model to do so.
Is there a way to invoke this web service using ws-addressing model using business events or from PL/SQL or OA middle-tier?
Regards,
Sunil
CMRO Development.
I am providing here the WSDL of the external web service -
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://service.sdk.webservices.enigma.com" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:ax21="http://service.sdk.webservices.enigma.com/xsd" xmlns:ns="http://service.sdk.webservices.enigma.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://service.sdk.webservices.enigma.com/xsd" xmlns:ax22="http://service.sdk.webservices.enigma.com">
<xs:import namespace="http://service.sdk.webservices.enigma.com"/>
<xs:complexType name="JCGWebServicesException">
<xs:complexContent>
<xs:extension base="ax22:Exception">
<xs:sequence>
<xs:element minOccurs="0" name="id" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="JCGServiceReply">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="pdfStatus" nillable="true" type="ax21:PdfStatus"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PdfStatus">
<xs:sequence>
<xs:element minOccurs="0" name="jobCardID" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="pdfPath" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="status" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://service.sdk.webservices.enigma.com" xmlns:ax23="http://service.sdk.webservices.enigma.com/xsd">
<xs:import namespace="http://service.sdk.webservices.enigma.com/xsd"/>
<xs:complexType name="Exception">
<xs:sequence>
<xs:element minOccurs="0" name="Exception" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="JCGWebServicesException">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="JCGWebServicesException" nillable="true" type="ax21:JCGWebServicesException"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="runJobCard">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="a_WorkpackageFilePath" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="a_userName" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="runJobCardResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="ax21:JCGServiceReply"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="JCGWebServicesException">
<wsdl:part name="parameters" element="ns:JCGWebServicesException">
</wsdl:part>
</wsdl:message>
<wsdl:message name="runJobCardResponse">
<wsdl:part name="parameters" element="ns:runJobCardResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="runJobCardRequest">
<wsdl:part name="parameters" element="ns:runJobCard">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="JCGServicePortType">
<wsdl:operation name="runJobCard">
<wsdl:input message="ns:runJobCardRequest" wsaw:Action="urn:runJobCard">
</wsdl:input>
<wsdl:output message="ns:runJobCardResponse" wsaw:Action="urn:runJobCardResponse">
</wsdl:output>
<wsdl:fault name="JCGWebServicesException" message="ns:JCGWebServicesException" wsaw:Action="urn:runJobCardJCGWebServicesException">
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="JCGServiceSoap11Binding" type="ns:JCGServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="runJobCard">
<soap:operation soapAction="urn:runJobCard" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="JCGWebServicesException">
<soap:fault name="JCGWebServicesException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="JCGServiceSoap12Binding" type="ns:JCGServicePortType">
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="runJobCard">
<soap12:operation soapAction="urn:runJobCard" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
<wsdl:fault name="JCGWebServicesException">
<soap12:fault name="JCGWebServicesException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="JCGService">
<wsdl:port name="JCGServiceHttpSoap12Endpoint" binding="ns:JCGServiceSoap12Binding">
<soap12:address location="http://localhost:8080/JCG/services/JCGService"/>
</wsdl:port>
<wsdl:port name="JCGServiceHttpSoap11Endpoint" binding="ns:JCGServiceSoap11Binding">
<soap:address location="http://localhost:8080/JCG/services/JCGService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Edited by: sikumar on Jun 22, 2010 1:50 PMBharat,
You dont need a Business Event setup to invoke a BPEL process from PL/SQL unless you have a special case and you need to process the response from the BPEL process in a separate thread (or in background)..
For a straight call to BPEL process from PL/SQL, here is a sample script -
function "MYTEST0" return varchar2 AS
soap_request varchar2(30000);
soap_respond varchar2(30000);
http_req utl_http.req;
http_resp utl_http.resp;
resp XMLType;
i integer;
helpStr varchar2(30000);
BEGIN
soap_request:= '<?xml version = ''1.0'' encoding = ''UTF-8''?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="
http://xmlns.oracle.com/TestWS">
<env:Body>
<ns0:TestWSProcessRequest>
<ns0:input>abc</ns0:input>
</ns0:TestWSProcessRequest>
</env:Body>
</env:Envelope>
/* the BPEL process name is TestWS */
http_req:= utl_http.begin_request
( 'http://hostname:7777/orabpel/default/TestWS/1.0'
, 'POST'
, 'HTTP/1.1'
utl_http.set_header(http_req, 'Content-Type', 'text/xml');
utl_http.set_header(http_req, 'Content-Length', length(soap_request));
utl_http.set_header(http_req, 'SOAPAction', 'process');
utl_http.write_text(http_req, soap_request);
http_resp:= utl_http.get_response(http_req);
utl_http.read_text(http_resp, soap_respond);
utl_http.end_response(http_resp);
resp:= XMLType.createXML(soap_respond);
resp:= resp.extract('/soap:Envelope/soap:Body/child::node()',
'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"');
helpStr := '';
i:=0;
loop
helpStr := helpStr || substr(soap_respond,1+ i*255,250);
i:= i+1;
if i*250> length(soap_respond)
then
exit;
end if;
end loop;
return helpStr;
END; -
How to invoke a web service using https
Hi,
I have a few security related questions surrounding BPEL process manager.
1. Does the BPEL engine have the capability to invoke a web service using https (HTTP over SSL)? Does it automatically do that if partner link URI starts with https:// ?
2. If not, what needs to be done to enable accessing a https based web service?
3. I need to write a web service that accepts a message and updates certain information in the database. The web service will be deployed in an OC4J instance in Oracle App Server. We want to allow the web service to be accessed from BPEL only by users registered in the database. What is the recommended way to pass username and password to a webservice if service is invoked from BPEL process manager? Note that specifying username/password in bpel.xml is not an option.
Thanks,
Pranav1. Does the BPEL engine have the capability to invoke a web service using https (HTTP over SSL)? Does it automatically do that if partner link URI starts with https:// ?
We currently don't have support for HTTP over SSl. We are working on it to include this functionality in near future.
2. If not, what needs to be done to enable accessing a https based web service?
I am not sure it is possible with current product offering. I will confirm it after discussing with our concerned development group. There is some work going to integrate with Oblix security mechanism [recently acquired by Oracle].
3. I need to write a web service that accepts a message and updates certain information in the database. The web service will be deployed in an OC4J instance in Oracle App Server. We want to allow the web service to be accessed from BPEL only by users registered in the database. What is the recommended way to pass username and password to a webservice if service is invoked from BPEL process manager? Note that specifying username/password in bpel.xml is not an option.
This will be easier to do if we can use Oblix along with BPEL PM. Could you please let us know more about your application so that we can provide you the customized solution till it's part of the product. You can send this query to [email protected] so that our product management team can give you more detailed roadmap regarding this.
HTH.
Thanks,
Rakesh -
Error invoking SSL web service using pl sql UTL_HTTP
Web Services Gurus,
I am invoking a secure web service based on the following WSDL file from a pl/sql program using UTL_HTTP package.
The web service is secure and prompts for authentication.
The web services certificate is imported in Oracle Wallet on Database Server.
I am listing the WSDL file, the pl/sql code and error message as follows -
1. The WSDL file -
<definitions
name="Webservice"
targetNamespace="http://webservice.airclic.com/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://webservice.airclic.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>
<types>
<xs:schema targetNamespace="http://webservice.airclic.com/" version="1.0" xmlns:tns="http://webservice.airclic.com/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Exception" type="tns:Exception"/>
<xs:element name="sendAuthenticationResponse" type="tns:sendAuthenticationResponse"/>
<xs:element name="sendAuthenticationResponseResponse" type="tns:sendAuthenticationResponseResponse"/>
<xs:complexType name="AuthenticationResponse">
<xs:complexContent>
<xs:extension base="tns:Response">
<xs:sequence>
<xs:element name="success" type="xs:boolean"/>
<xs:element name="username" type="xs:string"/>
<xs:element minOccurs="0" name="password" type="xs:string"/>
<xs:element minOccurs="0" name="firstName" type="xs:string"/>
<xs:element minOccurs="0" name="lastName" type="xs:string"/>
<xs:element minOccurs="0" name="email" type="xs:string"/>
<xs:element minOccurs="0" name="active" type="xs:boolean"/>
<xs:element minOccurs="0" name="timeZone" type="xs:string"/>
<xs:element minOccurs="0" name="group" type="xs:string"/>
<xs:element minOccurs="0" name="role" type="xs:string"/>
<xs:element minOccurs="0" name="errorCode" type="xs:string"/>
<xs:element minOccurs="0" name="errorMessage" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DispatchEvent"></xs:complexType>
<xs:complexType name="sendAuthenticationResponse">
<xs:sequence>
<xs:element minOccurs="0" name="authenticationResponse" type="tns:AuthenticationResponse"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="sendAuthenticationResponseResponse">
<xs:sequence/>
</xs:complexType>
<xs:simpleType name="status"></xs:simpleType>
<xs:simpleType name="source"></xs:simpleType>
<xs:simpleType name="eventType"></xs:simpleType>
</xs:schema>
</types>
<message name="Webservice_sendAuthenticationResponse">
<part name="sendAuthenticationResponse" element="tns:sendAuthenticationResponse"/>
</message>
<message name="Webservice_sendAuthenticationResponseResponse">
<part name="sendAuthenticationResponseResponse" element="tns:sendAuthenticationResponseResponse"/>
</message>
<portType name="Webservice">
<operation name="sendAuthenticationResponse" parameterOrder="sendAuthenticationResponse">
<input message="tns:Webservice_sendAuthenticationResponse"/>
<output message="tns:Webservice_sendAuthenticationResponseResponse"/>
<fault name="Exception" message="tns:Exception"/>
</operation>
</portType>
<binding name="WebserviceBinding" type="tns:Webservice">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sendAuthenticationResponse">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="Exception">
<soap:fault name="Exception" use="literal"/>
</fault>
</operation>
</binding>
<service name="Webservice">
<port name="WebservicePort" binding="tns:WebserviceBinding">
<soap:address location="https://host.airclic.com:443/webservice/product/fieldservice/v1/Webservice"/>
</port>
</service>
</definitions>
2. The pl/sql code that calls the web service operation sendAuthenticationResponse
procedure send_auth_response
as
soap_request varchar2(30000);
soap_respond varchar2(30000);
http_req utl_http.req;
http_resp utl_http.resp;
resp XMLType;
i integer;
begin
-- initiate wallet for AirClic certificate
dbms_output.put_line ('1');
utl_http.set_wallet('file:/etc/oracle/wallet','<wallet password>');
-- create soap request
dbms_output.put_line ('2');
soap_request:= '<?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/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:sendAuthenticationResponse xmlns="https://host.airclic.com:443/webservice/product/fieldservice/v1/Webservice" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<success xsi:type="xsd:boolean">true</success>
<username xsi:type="xsd:string">changlanih</username>
<password xsi:type="xsd:string">abcd1234</password>
<firstName xsi:type="xsd:string">hero</firstName>
<lastName xsi:type="xsd:string">changlani</lastName>
<email xsi:type="xsd:string">[email protected]</email>
<active xsi:type="xsd:boolean">true</active>
<timeZone xsi:type="xsd:string">eastern</timeZone>
<group xsi:type="xsd:string">Northeast</group>
<role xsi:type="xsd:string">Service Manager</role>
<errorCode xsi:type="xsd:string"></errorCode>
<errorMessage xsi:type="xsd:string"></errorMessage>
</ns1:sendAuthenticationResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>';
-- request that exceptions are raised for error Status Codes
dbms_output.put_line ('3');
utl_http.set_response_error_check (true);
-- allow testing for exceptions like UTL_HTTP.http_server_error
dbms_output.put_line ('4');
utl_http.set_detailed_excp_support (true);
--utl_http.set_transfer_timeout (ln_time_out);
dbms_output.put_line ('5');
utl_http.set_body_charset ('UTF-8');
-- begin request
dbms_output.put_line ('5.5');
http_req:= utl_http.begin_request
('https://host.airclic.com:443/webservice/product/fieldservice/v1/Webservice/sendAuthenticationResponse', ------ is the url correct here ?
'POST',
'HTTP/1.1'
dbms_output.put_line ('6');
utl_http.set_authentication(http_req, '<username for webservice>', '<password for webservice user>');
dbms_output.put_line ('7');
utl_http.set_persistent_conn_support (http_req, false);
dbms_output.put_line ('8');
utl_http.set_header(http_req, 'Content-Type', 'text/xml'); -- since we are dealing with plain text in XML documents
dbms_output.put_line ('9');
utl_http.set_header(http_req, 'Content-Length', length(soap_request));
dbms_output.put_line ('10');
utl_http.set_header(http_req, 'SOAPAction', ''); -- required to specify this is a SOAP communication
dbms_output.put_line ('11');
utl_http.write_text(http_req, soap_request);
dbms_output.put_line ('12');
http_resp := utl_http.get_response(http_req);
-- debug messages
DBMS_OUTPUT.PUT_LINE('-------utl_http.get_response---------------------');
DBMS_OUTPUT.PUT_LINE('http_resp.status_code is :'||http_resp.status_code );
DBMS_OUTPUT.PUT_LINE('http_resp.reason_phrase is :'||http_resp.reason_phrase);
DBMS_OUTPUT.PUT_LINE('http_resp.http_version is :'||http_resp.http_version);
DBMS_OUTPUT.PUT_LINE('http_resp.private_hndl is :'||http_resp.private_hndl);
DBMS_OUTPUT.PUT_LINE('-------utl_http.get_response----------------------');
utl_http.read_text(http_resp, soap_respond);
dbms_output.put_line ('13');
utl_http.end_response(http_resp);
dbms_output.put_line ('14');
resp := XMLType.createXML(soap_respond);
dbms_output.put_line ('15');
resp := resp.extract('/soap:Envelop/soap:Body/child::node()',
'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"');
i:=0;
dbms_output.put_line ('16');
loop
dbms_output.put_line(substr(soap_respond, 1 + i * 255, 250));
i := i + 1;
if (i * 250) > length(soap_respond) then
exit;
end if;
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('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(sqlerrm);
end send_auth_response;
3. Output when I run the send_auth_response procedure
Connecting to the database cpdev.
1
2
3
4
5
5.5
ORA-12560: TNS:protocol adapter error
Process exited.
Disconnecting from the database cpdev.
Comments -
The web service operation only has input message. The input message consists of a complex type as seen in WSDL.
Questions -
1. This is my first attempt in invoking a web service from pl/sql program. Is the code in SOAP body correct as mapped to the complex type in WSDL ?
2. As seen from the dbms_out - the last message before ORA-12560 is 5.5, that means the call is erroring at following code line -
http_req:= utl_http.begin_request ------ what am I doing wrong here ?
3. The web service is SSL as seen from WSDLand needs a username/password for access - which is being performed by following code line -
utl_http.set_authentication(http_req, '<username for webservice>', '<password for webservice user>'); ------- is that correct ?
4. I am not using any proxy server - should I be using it ? When is it necessary to use proxy ?
Appreciate any help.
Thanx.Oracle is hosted by HOST A - this is where the pl/sql program resides.
The Web Service being accessed by pl/sql program is hosted by HOST B and there are 4 firewalls in between.
Oracle was not even able to establish connection to web services host.
Escalated the issue with networking folks and they resolved the connectivity problem.
Hope that helps. -
Using a control in a web service
Hi,
I've got a problem where I using a WebServiceControl in a web service is giving me errors when I build.
The error is:
Error with publish task 'WebServicesProjectBuildTask'.
Web services in payment have errors
Web services with errors cannot be compiled.
Error(s) occured during publish assembly. No modules will be published.
I have a web service I've created called PaymentWebService. This web service uses a web service control to call another web service. It seemed to be working fine until I try and use the web service control inside the PaymentWebService. If I comment out the web service control it deploys fine.
The error above is all it gives me, and I've checked through the code quite a few times and there are no build errors or anything like that.
Does anyone have any idea about this? It's driving me nuts.
Thanks,
DanielHi,
Do you have errors in the weblogic log file?
Best regards,
Stéphanie
Maybe you are looking for
-
The problem occurs when I try to respond to an email or forward an attachment with an email. I always get a message that "the silverlight plug-in has crashed". I send a crash report or reload the page but it does not solve the problem.
-
I have a master table and i need to import the rows into the parent and child table. Master table name is Flatfile_Inventory Parent Table name is INVENTORY Child Tables name are INVENTORY_AMOUNT,INVENTORY_DETAILS,INVENTORY_VEHICLE, Error details will
-
Word Starter 2010 for MacBook Air 13"
Does Word Starter 2010 come with the MacBook Air 13"?
-
Very strange broadband question. Please help!
Hi guys. A few days ago I was having problems with my telephone. We could not make or receive calls but our broadband was still working fine, just a little bit slower than usual. I filed a fault report with BT and the issue was resolved within 2 days
-
Here follows a series of questions regarding the misterious fuctionaly of org.w3c.xml and javax.xml.parsers packages that I couldn't answer. I'd appreciate someone could clarify these aspects to me: 1) How is it possible to create a Document, and tog