Calling a WebService from a BSP
Hi,
I have to call a web service published in another web server from a BSP (SAP WAS 620). I know how to use the WAS as client and I also know how to create the XML. The problem is that I dont know if there is some technique or function module or something like this to create the SOAP message to send to the webservice publisher (something to automate the process).
Also If someone has some code to share it will be welcome...
Thanks
Ariel
Message was edited by: Ariel Ferreiro
The following is the code example. We just put all of our input parameters on the request URL. The response body then contains the results which we parse out. This is very similar to the HTTP interface to SAP's own content and cache server. This example happens to be a SMS Message Provider in Eastern Eurpoe.
data: client type ref to if_http_client,
url type string.
****Build the Sending URL
concatenate
page_srv-send_url
`&Message=`
message
`&Class=`
class
`&Number=`
sms_number
`&Priority=`
priority
`&Project=`
page_srv-project_name
`&Sendingnumber=`
page_srv-sending_number
into url.
****Create the HTTP client
call method cl_http_client=>create_by_url
exporting
url = url
ssl_id = page_srv-ssl_id
importing
client = client
exceptions
others = 1.
****Set the Request type to GET
client->request->set_header_field( name = '~request_method'
value = 'GET' ). "#EC *
****Make the call
client->send( ).
****Receive the Response Object
call method client->receive
exceptions
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
others = 4.
****Get the response content in Character format
p_content = client->response->get_cdata( ).
data: result_string type string,
id_string type string,
junk type string.
****Pull out the Result and the ID
split p_content at `&` into result_string id_string.
if result_string cs `Result`.
split result_string at `=` into junk status.
else.
raise unknown_error.
endif.
Hope this helps.
Similar Messages
-
Calling a webservice from within Bex Web Application Designer
Hi
I have a web-template built with BEx web application designer which also contains textboxes. This text should be stored by calling a webservice (standard BI-documents are not an option).
Can anyone tell me how I could call a webservice from within the BEx web template to store the text contained in the textbox? The webservice-call should include some of the filter-varialbes of the web application.
Is this only possible by the use of a JavaScript WebItem? If so - does anyone have an example of such a JavaScript.
Thanks a lot in advance.
Kind regards.
ChristophThanks for your response. The BSP page would work out fine if I only needed to save the data.
But the next time I call the webtemplate, the textarea should be filled by another webservice call with the stored text (so the text can be modified und saved again). This will not be possible by calling a BSP page.
Do yoiu have any suggestions how to integrate the text (return value from the webservice call) into the textbox in the webtemplate?
Kind regards.
Christoph -
How can i call a zreport from my bsp page.
Hi friends,
How can i call a zreport from my bsp page.
MoosaHi Friend,
These are the codings to be wirtten in BSP for transferring values to the REPORT
DATA:wf_date TYPE ztable-ID.
data:seltab type standard table of rsparams,
wa_seltab like line of seltab,
event TYPE REF TO if_htmlb_data.
DATA:p_value TYPE REF TO CL_HTMLB_INPUTFIELD.
event = cl_htmlb_manager=>get_event( runtime->server->request ).
p_requ ?= CL_HTMLB_MANAGER=>GET_DATA(
request = runtime->server->request
name = 'inputField'
id = 'i1'
if p_requ is not initial.
wf_date = p_requ->value.
endif.
clear wa_seltab.
if wf_date is not initial.
wa_seltab-selname = 'P_REQU'.
wa_seltab-kind = 'P'.
wa_seltab-option = 'EQ'.
wa_seltab-low = wf_date.
append wa_seltab to seltab.
endif.
submit *ZSAMPLEAP1* with selection-table seltab AND RETURN .(ZSAMPLEAP1 refers to the report name and AND RETURN for coming back to the BSP page after the completion of its operation in Report )
IMPORT int_name TO int_name FROM MEMORY ID '*zid*'.(For importing the obtained value from Report)
In Report
REPORT ZSAMPLEAP1.
SELECT-OPTIONS: p_requ FOR ztable-id NO INTERVALS.
SELECT SINGLE name from ztable into int_name WHERE id = p_requ-low.
WRITE:int_name.
EXPORT int_name TO MEMORY ID 'zsharmila'.
With Regards,
SHARMILA BRINDHA.M -
Error while calling PI webservice from EJB
Hi Experts,
We are getting exception while calling PI webservice from EJB which is deployed in CE 7.2. Earlier we used to call the same webservice but from different PI system at that it worked fine. Now we have changed the consumer proxies required in CE and tried to call from CE and it is throwing error. We have checked usernames and passwords that we are using to call the service and that is working fine. PI team tested from their side and li is also fine. We have also restarted the CE system but invain. Can somebody help on this. The below is the trace that we got.
Location: com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding
Text: Connection IO Exception. Check nested exception for details. (Connection reset).
[EXCEPTION]
com.sap.engine.services.webservices.espbase.client.bindings.exceptions.TransportBindingException: Connection IO Exception. Check nested exception for details. (Connection reset).
at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.outputSOAPMessage(SOAPTransportBinding.java:419)
at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.call_SOAP(SOAPTransportBinding.java:1364)
at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.callWOLogging(SOAPTransportBinding.java:990)
at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.call(SOAPTransportBinding.java:944)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.processTransportBindingCall(WSInvocationHandler.java:168)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invokeSEISyncMethod(WSInvocationHandler.java:121)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invokeSEIMethod(WSInvocationHandler.java:84)
at com.sap.engine.services.webservices.espbase.client.jaxws.core.WSInvocationHandler.invoke(WSInvocationHandler.java:65)
at $Proxy780.mioaRDMDataDistribution(Unknown Source)
at com.MDMEventListener.callToPIWS(MDMEventListener.java:100)
at com.MDMEventListener.ListenerMethod(MDMEventListener.java:173)
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 com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_WS.invoke(Interceptors_WS.java:31)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:39)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:23)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)
at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138)
at com.sap.engine.services.ejb3.webservice.impl.DefaultImplementationContainer.invokeMethod(DefaultImplementationContainer.java:203)
at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.process0(RuntimeProcessingEnvironment.java:730)
at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.preProcess(RuntimeProcessingEnvironment.java:682)
at com.sap.engine.services.webservices.espbase.server.runtime.RuntimeProcessingEnvironment.process(RuntimeProcessingEnvironment.java:324)
at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPostWOLogging(ServletDispatcherImpl.java:199)
at com.sap.engine.services.webservices.runtime.servlet.ServletDispatcherImpl.doPost(ServletDispatcherImpl.java:65)
at com.sap.engine.services.webservices.servlet.SoapServlet.doPost(SoapServlet.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:152)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:38)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:404)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:204)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:440)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:429)
at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:82)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:268)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:54)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:42)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:447)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:264)
at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.readLine(HTTPSocket.java:950)
at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.getInputStream(HTTPSocket.java:414)
at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.getResponseCode(HTTPSocket.java:319)
at com.sap.engine.services.webservices.espbase.client.bindings.ClientHTTPTransport.getResponseCode(ClientHTTPTransport.java:209)
at com.sap.engine.services.webservices.espbase.client.bindings.impl.SOAPTransportBinding.outputSOAPMessage(SOAPTransportBinding.java:385)
... 78 more
Regards,
PradeepHi Pradeep,
this looks like if the server is not reachable. Have you checked if both server are able to communicate? Maybe firewall rules block the request.
Regards,
Tobias -
Error getting while calling a webService from XI
Hi
We are getting the follwoing error while calling a webservice from XI. We Could call the same webservice from XML spy. Have checked the SOAP adapter it was running fine and the communication channel parameters too.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!-- Inbound Message --> <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1"><SAP:Category>XIAdapterFramework</SAP:Category><SAP:Code area="MESSAGE">GENERAL</SAP:Code><SAP:P1/><SAP:P2/><SAP:P3/><SAP:P4/><SAP:AdditionalText>com.sap.aii.af.ra.ms.api.MessagingException: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault</SAP:AdditionalText><SAP:ApplicationFaultMessage namespace=""/><SAP:Stack/><SAP:Retry>M</SAP:Retry></SAP:Error>
Please try to help.
Thanks
RameshHi
Thanks a lot for your kind support.
Hi Moorthy
We have created one Asyn MI and wrapped the external definition into that, Haven't done any mapping for responce. Please find the trace below.
Hi Bhavesh
It was great helpful link but the payload days is not visible for this message it was containing details about sending. For some other message i could see payload.
I Could see one differnce in the XML Spy and "XI payload before entering SOAP Adapter"
The following line doesnt appear in the XI payload.
<m:StatusUpdate xmlns:m="http://localhost/StatusUpdate" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
</m:StatusUpdate>
Is this line would be embeded in the SOAP Adapter??? Please find the trace below. Please help me if you have any additional info.
The message was successfully received by the messaging system. Profile: XI URL: Using connection AFW. Trying to put the message into the receive queue.
Message successfully put into the queue.
The message was successfully retrieved from the receive queue.
The message status set to DLNG.
Delivering to channel: CC_SOAP_Rcvr_D_Pick_ZALEAUD
SOAP: request message entering the adapter
SOAP: completed the processing
SOAP: response message received 4cb3fab0-7fc5-11db-8c5a-000f203c93e0
SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault
SOAP: sending a delivery error ack ...
SOAP: sent a delivery error ack
Exception caught by adapter framework: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault
Delivery of the message to the application using connection AFW failed, due to: SOAP: response message contains an error Application/UNKNOWN/APPLICATION_ERROR - application fault.
The asynchronous message was successfully scheduled to be delivered at Wed Nov 29 16:23:51 GMT 2006.
The message status set to WAIT.
Retrying to deliver message to the application. Retry: 1
Kind Regards
Ramesh
Message was edited by:
Ramesh Reddy Pothireddy -
Calling a webservice from webdynpro ABAP.
Hi,
Anybody have doc/material with screenshots on calling a webservice from webdynpro ABAP (In WAS 7.0 version using service calls ) with clear steps ?
Thanks in advance. Ponts will not be a constraint for right answers
Praveen
Edited by: Praveen kumar Kadi on Feb 23, 2009 11:19 AMHi Praveen,
1st Step : configure Logical Port
http://help.sap.com/saphelp_nw70/helpdata/EN/16/285d32996b25428dc2eedf2b0eadd8/frameset.htm
2nd Step : Generate Proxy Object
http://help.sap.com/saphelp_nw70/helpdata/EN/16/285d32996b25428dc2eedf2b0eadd8/frameset.htm
3rd Step : Instantiating the proxy object & calling the methods exposed by webservice
data: sys_exception type ref to cx_ai_system_fault,
sys_exception2 type ref to cx_ai_application_fault,
client_proxy type ref to zco_myesa, "MY PROXY CLASS
lv_ret_code type int4,
lv_input type zsend_email_input,
lv_response type zsend_email_response.
data: lv_from type string,
lv_from_address type string,
lv_to type string,
lv_to_address type string,
lv_subject type string,
lv_msg type string.
lv_input-from = 'MYSAPTEST'.
lv_input-from_address = '<someAddress>'.
lv_input-to = 'Prashant'.
lv_input-to_address = '<someAddress>'.
lv_input-subject = ' TEST'.
lv_input-msg_body = ' Hi this is wonderfull to see it work'.
try.
create object client_proxy
exporting
logical_port_name = 'BASIC'. " Basic is a TYPE G RFC Destination
call method client_proxy->send_email
exporting
input = lv_input
importing
output = lv_response .
catch cx_ai_system_fault into sys_exception .
data lv_err type string.
lv_err = sys_exception->if_message~get_text( ).
write: / lv_err.
catch cx_ai_application_fault into sys_exception2 .
lv_err = sys_exception->if_message~get_text( ).
write: / lv_err.
endtry.
if lv_response is initial.
write: /'Not Executed'.
else.
write: /'Did Execute'.
endif.
Greetings
Prashant -
Hi,
I have a requirement of calling BI webservices from Plsql stored procedure. I generated all my wsdl java classes and loaded them into the database. However, when I tried to call one of my java class using stored procedure, it is giving me"ORA-29532: Java call terminated by uncaught Java exception: java.lang.NoClassDefFoundError".
*Cause: A Java exception or error was signaled and could not be
resolved by the Java code.
*Action: Modify Java code, if this behavior is not intended.
But all my dependency classes are present in database as java class objects and are valid. Can some one help me out of this?Stiphane,
You can look in USER_ERRORS to see if there's anything more specific reported by the compiler. But, it could also be the case that everything's OK (oddly enough). I loaded the JavaMail API in an 8.1.6 database and also got bytecode verifier errors, but it ran fine. Here are the errors I got when loading Sun's activation.jar, which ended up not being a problem:
ORA-29552: verification warning: at offset 12 of <init> void (java.lang.String, java.lang.String) cannot access class$java$io$InputStream
verifier is replacing bytecode at <init> void (java.lang.String, java.lang.String):12 by a throw at offset 18 of <init> void (java.lang.String, java.lang.String) cannot access class$java$io$InputStream
verifier is replacing bytecode at <init> void (java.lang.String, java.lang.String):18 by a throw at offset 30 of <init> void (java.lang.String, java.lang.String) cannot access class$java$io$InputStream
verifier is replacing bytecode at <init> void (java.lang.String, java.lang.String):30 by a throw
Hope this helps,
-Dan
http://www.compuware.com/products/devpartner/db/oracle_debug.htm
Debug PL/SQL and Java in the Oracle Database -
Calling Java WebService from Adobe
Hi,
Iam using a simple java service. I need to call this WebService from my Online/Offline forms.
When Iam running the form in Portal , Iam getting the following error:
Error attempting to read from file :
http: / / hostname:port/ServiceName/Config1?Style=document.
The way I imported the wsdl. Saved wsdl , merged 3 wsdls and imported in Adobe Form.
Please let me know is there anything else missing here?
Thanks,
Uma.A
Edited by: Uma Anbazhagan on Sep 28, 2009 8:20 PMHi,
Regarding this question, I was able to save the wsdl file, make relevant changes as mentioned in help document and consume it.
However , without authentication WS worked fine. The WS with authentication is having issues.
Need to try with latest version and see if this is resolved.
Thanks,
Uma. -
How to call a webservice from JSP
I want to call a webservice from JSP? How can I do that .
Check out this OBE and I think it's pretty well documented in JDeveloper help.
http://www.oracle.com/technology/obe/obe1013jdev/10131/wsfromplsqlpackage/devwsfrom%20plsql.htm
Thanks, Rob -
How to call a webService from WebDynPro ABAP ?
We are trying to call a webService from WebDynPro-ABAP application. It is not working, While if we are calling the WebService from a Report, it is working.
How exactly do we call a WebService from a WebDynPro-ABAP application?
What are the main steps involved ?Hi Phani,
You will need to create a service call as follows.
Right click on your WD component name and select Create->Service Call
The wizard will guide you through a series of steps to make a Web Service Call. On the 3rd screen, it will give you options such as Function Module, Web Service, etc
Before making a service call, you will need to create a proxy for the Web service in the ABAP Workbench using a WSDL document as a basis. To create or consume Web services, you will need the authorizations associated with the role SAP_BC_WEBSERVICE_ADMIN. -
Calling function modules from a BSP page
Hi all
How do we call function modules from a BSP page.
regards,
PaulOk, You want to construct the URL pointing to a BW report and want to execute the same when a button is clicked right? if yes here is the answer.
for constructing the BW query URL
http://<bwserver>:<port>/sap/bw/BEx?sap-language=ENCMD=LDOC&infocube=<cube anme>&query=<query name>&var_name_1=<variable name1>&var_value_ext_1=<variable value 1>&var_name_2=<variable name2>&var_value_ext_2=<variable value 2>
(for more info on how to pass parameters to BW query URL refer to the BW web designer reference manual which can be found at http://services.sap.com/bw)
and for executing this from a button use onclientclick property of htmlb:button along with window.open
<htmlb:button id ="BWQ"
onClientClick = "javascript:window.open("<%= BW_URL %>" );"/>
Hope this is clear.
Regards
Raja -
How to call java webservice from plsql procedure.
Hi,
Could any one please provide any reference document for invoking a java webservice from pl/sql procedure.
regards,
VenkatHi,
There are basically various platforms where u develop the code with different patterns, though the idea is same everywhere.
1. If you want develop a Java Client to call a WebService from NWDS then Pls refer >>
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/cb2e29578c0262e10000000a11466f/frameset.htm
Note: By default the WebService developed under NWDS is Document Based WebService (i.e. In WSDL the style element would be 'document')
2. If you want to call a WebService from the platform other than NWDS than, Sun's official site would be the best choice to go for.
Pls refer >>
http://java.sun.com/developer/technicalArticles/J2EE/j2ee_ws/#design
Would appreciate if you reward the points if the answer is helpful.
Regards,
Arvind Kugasia [[email protected]] -
Calling Web Service from a BSP
Has anyone successfully called one of the Google search engine web services from <b><u>6.20</u></b>? Or any external, non-R/3 web service for that matter? When I run test connection on a RFC destination type G (HTTP connection to External Server), it returns ICM_HTTP_CONNECTION_FAILED message. I am using api.google.com for Target Host and /search/beta2/ for Path Prefix; all other fields are blank/default. I was able to setup the RFC destination for type H (HTTP connection to R/3 system) correctly and run the sample ABAP web service client program (from SAP Help which calls STFC_CONNECTION).
Any help will be appreciated.
Thanks, PradeepDoes your company use an Internet Proxy? Have you setup the global or RFC specific proxy settings?
This is what we had to do. We were calling a psedo webservice in 620 via HTTP Client methods and we had to setup the Proxy settings.
See the following weblog for details:
/people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap
But keep in mind that even if you are able to make the connection that the WebService will most likely require a SOAP response and request. There are some ways to do this in 620, but it is a lot of development on your part and it is not forward compatible with 640. In 640 you can generate Proxy Classes - which makes calling external webservices very easy. -
Calling a webservices from Oracle 10G ( 10.2.0.2)
Hi:
I am in the process of putting a database Java stored procedure that can call an external webservices.
PL/SQL Wrapper -> Java Stored Procedure-> External Web services
I loaded the following jars in the dataase.
dbwsa.jar
dbwsclient.jar
1. I am having issues consuming this external webservice from SQL*PLUS. Do you know whether I need to load any other JARS ?
2. How can I debug this issue ? I enabled TCP Monitor in JDeveloper and don't see anything when I call the PL/SQL wrapper in SQL*PLUS.
3. I can use a Java client and tested the Web services OK.
error message:
SQL> l
1 declare
2 x varchar2(100);
3 begin
4
5 x := tester.test_db1();
6* end;
SQL> /
calling
http://XX.XX.YY.121:8988/Application9-ViewController-context-root/MyWebService1S
oapHttpPort
java.rmi.RemoteException: Error parsing envelope; nested exception is:
javax.xml.soap.SOAPException: Error parsing envelope
at
view.proxy.runtime.MyWebService1SoapHttp_Stub.sayhello2(MyWebService1SoapHttp_St
ub.java:99)
at
prpd.MyWebService1SoapHttpPortClient.sayhello2(MyWebService1SoapHttpPortClient.j
ava:41)
at prpd.TEST_DB.TEST_DB1(TEST_DB.java:21)
Caused by: javax.xml.soap.SOAPException: Error parsing envelope
at
oracle.j2ee.ws.saaj.soap.soap11.SOAPImplementation11.createEnvelope(SOAPImplemen
tation11.java:103)
at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
at oracle.j2ee.ws.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:934)
at
oracle.j2ee.ws.client.StreamingSender._preHandlingHook(StreamingSender.java:692)
at oracle.j2ee.ws.client.StubBase._preHandlingHook(StubBase.java:688)
at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:207)
at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:112)
at
view.proxy.runtime.MyWebService1SoapHttp_Stub.sayhello2(MyWebService1SoapHttp_St
ub.java:76)
... 2 more
Caused by: java.lang.IllegalArgumentException
at oracle.xml.parser.v2.XMLParser.setAttribute(XMLParser.java:794)
at
oracle.j2ee.ws.saaj.soap.soap11.SOAPImplementation11.createEnvelope(SOAPImplemen
tation11.java:54)
... 9 more
PL/SQL procedure successfully completed.
SQL> /
thx
Rajthanks Tugduall for the comments. here are the instructions I followed to create a java stored procedure that can call a webservices. Unfortunately, this seems like a very complex task. Do you have any ideas how I could debug or troubleshoot this issue ?
Please note that I used JDeveloper to generate the client code.
========================================================
1. download the dbws-callout-utility-10R2.zip from OTN at:
http://www.oracle.com/technology/sample_code/tech/java/jsp/dbwebservices.html
2. create an application/project with 1.4 JDK.
3. create a web service by ‘Business Tier’->Web Service->Web Service Proxy->UDDI
4. next… to ‘Search for’, type ‘quote’.
5. from the list select one. For me ‘Quote of day’ was picked.
6. click Next all the way to Finish.
7. from the ‘Application Sources’ select ‘QuotoProxy’ then find its main method.
8. at the section
// Add your own code here, add the line like:
System.out.println("quote "+myPort.getQuote());
9. run it to see its return.
10. cteate a class that has a method to call client method to be invoked (static)
like the following:
package dbws;
import dbws.QotdPortClient;
public class MainClientStub {
public MainClientStub() {
public static String getMyQoute(){
QotdPortClient myClient = null;
try {
myClient = new QotdPortClient();
return myClient.getQuote();
} catch (Exception e) {
e.printStackTrace();
return null;
note that the package name in your project.
11. create a deployment profile as ‘JAR File’. Uncheck the box ‘Project Dependencies’
12. deploy it to the local box. ‘Deploy to JAR File’.
13. unzip the dbws-callout-utility-10R2.zip to get dbwsa.jar.
14. execute the following from command line:
loadjava –user test/[email protected] -resolve –verbose –synonym –grant public to dbwsa.jar myarchive1.jar
loadjava -user test/test@orcl1020 -resolve -verbose -synonym -genmissing -grant public myarchive1.j
ar dbwsa.jar
loadjava -user sys/<sys_pass> -resolve -verbose -synonym -genmissing -grant public myarchive1.jar dbwsa.jar
15. create a function like the following:
CREATE OR REPLACE FUNCTION teststub RETURN VARCHAR2 AS
LANGUAGE JAVA NAME ‘dbws.MainClientStub.getMyQoute() return java.lang.String’;
16. Run at sqlplus: Select teststub from dual;
====================================================== -
How To : Call External Webservice from BPEL and pass SOAP Message to the WS
Hello All-
Greetings to all BPEL gurus. I am currently facing difficulties in calling an External Webservice from my BPEL Process and passing SOAP Message to it. The details are below:
<strong>1. The BPEL process, using database polling feature of DB Adapter, will get the records from the database.</strong>
<strong>2. Transform the message</strong>
<strong>3. Call the External Webservice and pass the transformed message as the input to it. However the Webservice expects the BPEL process to send SOAP headers in the input message.</strong>
I am struggling on how to put the transformed message within a SOAP envelope in the BPEL process.
If anyone had similar requirements and have successfully been able to send SOAP messages from BPEL process to an external webservice, kindly let me know.
Also if there is some kind of documentation or any link in the forum that I can refer, please let me know that as well.
I am new to Webservice integration using BPEL and would really appreciate your help.
Thanks In Advance
Regards,
DibyaHi Dharmendra,
I am trying to send a SOAP message from my BPEL process to a web service. I have a complete SOAP message in a complex variable defined in the wsdl for the partnerlink (web service). My problem is that when I invoke the partnerlink it fails even though the content shown in the BPEL console looks valid.
I have set up obtunnel to see what I am actually sending out from BPEL. You mention that BPEL creates the SOAP envelope automatically.
I think that my problem is a result of this automatic SOAP envelope that BPEL is creating. Do you know if there is a way to turn it off?
This is what I see in the TCP monitor, please note the double SOAP env:Body:
<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"> <env:Body> <RCMR_IN000002NR01 xmlns="urn:hl7-org:v3" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<env:Header>
<wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">http://testhost/CCS/Service_Endpoint</wsa:To>
<wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Address>http://localhost/CCS/Service_Endpoint</wsa:Address>
<wsa:Metadata>
<device xmlns:hl7="urn:hl7-org:v3">
</device>
</wsa:Metadata>
</env:Header>
<env:Body>
<RCMR_IN000002NR01>
</RCMR_IN000002NR01>
</env:Body>
</RCMR_IN000002NR01>
</env:Body>
</env:Envelope>
Any help is appreciated.
Regards,
Aagaard
Edited by: Aagaard on Oct 30, 2008 8:59 PM
Should have mentioned. I am using BPEL 10.1.3.4
Edited by: Aagaard on Oct 31, 2008 8:43 AM
I have opened a new thread for this question so as to not confuse the issue more than necessary.
How many SOAP envelopes do you really need?
Maybe you are looking for
-
Install on external hard drive?
If I buy and download Lion, can I install it on an external hard drive or do I have to install it on the drive it was downloaded to? Also how do I make a DVD copy for myself? Richard
-
How to make the menu fonts larger in Bridge CC 2014?
I just upgraded my monitor to a 3840x2160 HiRez & Photoshop CC 2014 /Bridge CC 2014. I have been able to make the menu fonts large enough to read in Photoshop CC but not for Bridge. Any suggestions on how to enlarge the fonts in Bridge? Thanks!
-
My Skype number is not ringing
My skype number is not ringing or answering when it called it worked great for a few weeks
-
Hi All, Can anyone please help me in dealing with subcontracting scenario with scrap taken into account. Please provide the screen shots from BOm creatio to challan closing. the requirement is urgent. please help me. all replies will be suitablly rew
-
Camera flash disabled due to heat issue
I left my iPhone 4 charging for about 3 hours until it was fully charged. I went to take a picture and the camera flash switch had a warning symbol. When I clicked it, it stated that my flash was disabled due to excessive heat. I quit the camera app