XML using HTTPS
I am trying to use the XML class in Flash Media Server to
read an XML web page. However, the XML web page that I want to use
needs to be secure and therefore uses HTTPS. It appears that Flash
Media Server is unable to get the XML web page when the HTTPS
protocol is used. The code I’m using has tested successfully
using the HTTP protocol.
Is HTTPS supported by FMS for getting a XML web page? Is
there a way or work around to get FMS to read the XML web page
using HTTPS?
Thanks!
Well, it'll depend on the database version of course but
this should work:
DECLARE
url varchar2(500);
req utl_http.req;
resp utl_http.resp;
data VARCHAR2(200);
name VARCHAR2(256);
value VARCHAR2(1024);
BEGIN
url :='https://<some URL>';
utl_http.set_wallet('file:<Wallet directory>','<Wallet password>');
req:=utl_http.begin_request(url, 'POST', utl_http.HTTP_VERSION_1_1);
utl_http.set_authentication(req, '<username>', '<password>');
resp := utl_http.get_response(req);
dbms_output.put_line('code: '||resp.status_code);
dbms_output.put_line('reason: '||resp.reason_phrase);
FOR i IN 1..utl_http.get_header_count(resp) LOOP
utl_http.get_header(resp, i, name, value);
dbms_output.put_line('H>'||name || ': ' || value);
END LOOP;
begin
loop
utl_http.read_text(resp,data,200);
dbms_output.put_line('D>'||data );
end loop;
exception
when utl_http.end_of_body then
dbms_output.put_line(D'>end');
end;
utl_http.end_response( resp );
END;
You need to set up a wallet (using the Wallet Manager) on
the database or at least put a wallet file in adirectory
accessible from the database. The wallet needs to include
the public part of the certificate for the web server you
want to talk to. This can be saved from Internet Explorer
(File/Properties certificates button, second tab...).
There is a document on Metalink on this.
Hope you fix it
Kind regards
Tomas Albinsson
Stockholm, Sweden
Similar Messages
-
Hi Friends,
Is there any possibilities to Convert IDOCs as XML using HTTP Adapter in SAP PI?
Because in my Scenario i need to send Idocs from ECC to Red Prariie using SAP PI.
Also is it there any possibilities using FTPS?
Please help me.
Thanks.Hi PIstarter,
Sure this is possible. Just treat the IDoc like any other Service Interface that you use in the HTTP Receiver Adapter. You can even use the no-mapping approach if no additional processing is required by PI.
Hope this helps,
Greg -
Hi All,
I have requirement where 2 trading partners will be posting a custom XML payload (same schema for both partners) through a B2B http url.
I need your help in configuring the Generic-Http channel for both the partners and based up on a particular value in the payload, respective agreement needs to get triggered.
Currently, I am getting Document Identification Protocol error.
Please help.
Thanks,
MonicaHi Prasanna,
Thank you for the reply.
I tried setting the identification Xpath under document definition as mentioned in the above mentioned link. But I am getting the "Description: Agreement not found for trading partners: FromTP null, ToTP HTP with document type BRCD_AB_DATA-V1.0-INBOUND." error.
I have placed my doc definition under Custom-->V1.0-->BRCD_AB_DATA
I have the XPath for XML as shown below:
Identification Expression (XPath) ://*[local-name()='BRCD_AB_DATA']/*[local-name()='TRANSACTION_NUMBER']/text()
Identification Value :1234
Am I missing anything??
Thanks,
Monica -
I am trying to understand if the following interface options can occur (without the use of SAP PI or any other middleware):
Option 1A: Can I process an SAP ECC outbound IDoc in XML using TCP/IP to a non-SAP 3rd party system? Can you please explain the reason for why I can or can NOT do this. If possible, please provide supporting documentation on how-to do this?
Option 1B: Can I process an SAP ECC inbound XML-IDOC from a non-SAP calling system that used TCP/IP? Can you please explain the reason for why I can or can NOT do this. If possible, please provide supporting documentation on how-to do this?
Option 2A: Can I process an SAP ECC outbound IDOC in XML using HTTP to a non-SAP 3rd-party system? Can you please explain the reason for why I can or can NOT do this. If possible, please provide supporting documentation on how-to do this?
Option 2B: Can I process an SAP ECC inbound XML-IDOC from a non-SAP calling system that used HTTP? Can you please explain the reason for why I can or can NOT do this. If possible, please provide supporting documentation on how-to do this?
Option 3A: Can I process an SAP ECC outbound IDOC in XML using FTP to a non-SAP 3rd-party system? Can you please explain the reason for why I can or can NOT do this. If possible, please provide supporting documentation on how-to do this?
Option 3B: Can I process an SAP ECC inbound XML-IDOC from a non-SAP calling system that used FTP? Can you please explain the reason for why I can or can NOT do this. If possible, please provide supporting documentation on how-to do this?Hello Kirk ,
The answers for your question are:
Option 1A: Yes you can .you can use TCP/IP but you must have a middleware component for that such as BC/JCO .
Please see the link : [http://help.sap.com/saphelp_nw04/helpdata/EN/09/c88442a07b0e53e10000000a155106/frameset.htm]
Option 1B: See the link above.
Option 2A: You can use ABAP code :
[http://help.sap.com/saphelp_nw04/helpdata/EN/e5/4d3514c11411d4ad310000e83539c3/frameset.htm]
Option 2B: [http://help.sap.com/saphelp_nw04/helpdata/EN/90/4f3c2ec3c511d6b2b400508b6b8a93/frameset.htm]
Option 3A: Only with ABAP code :[Reg: FTP Connection;
Option 3B: See the link of Option 3A.
Good Luck,
Boaz
Edited by: Boaz Ornan on Feb 21, 2010 4:33 PM -
I am trying to invoke FinancialUtilService using HTTP proxy client. I am getting below error while i am trying to invoke this service. Using FusionServiceTester i am able to invoke service and upload file to UCM. Using oracle.ucm.fa_client_11.1.1.jar also i am able to upload file to UCM without any issue. But using HTTP proxy client i am facing below error. Can anyone please help me. PFA code i am using to invoke this service.
javax.xml.ws.soap.SOAPFaultException: InvalidSecurity : error in processing the WS-Security security header
at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:197)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:122)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:125)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
at $Proxy43.uploadFileToUcm(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.wsee.jaxws.spi.ClientInstance$ClientInstanceInvocationHandler.invoke(ClientInstance.java:363)
at $Proxy44.uploadFileToUcm(Unknown Source)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.invokeUpload(FinancialUtilServiceSoapHttpPortClient.java:299)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.main(FinancialUtilServiceSoapHttpPortClient.java:273)
Process exited with exit code 0.
Message was edited by: Oliver Steinmeier
Removed attachmentHi Jani,
Thanks for your reply.
I am new to webservices and we are trying to do a POC on invoking FinancialUtilService using HTTP proxy client. I am following steps mentioned in attached pdf section "Invoking FinancialUtil Service using Web Service Proxy Client". I have imported certificate using below command.
keytool -import -trustcacerts -file D:\Retek\Certificate.cer -alias client -keystore D:\Retek\default-keystore.jks -storepass welcome1
Invoking
SecurityPolicyFeature[] securityFeature =
new SecurityPolicyFeature[] { new
SecurityPolicyFeature("oracle/wss11_saml_token_with_message_protection_client_policy")};
financialUtilService_Service = new FinancialUtilService_Service();
FinancialUtilService financialUtilService= financialUtilService_Service.getFinancialUtilServiceSoapHttpPort(securityFeature);
// Get the request context to set the outgoing addressing properties
WSBindingProvider wsbp = (WSBindingProvider)financialUtilService;
WSEndpointReference replyTo =
new WSEndpointReference("https://efops-rel91-patchtest-external-fin.us.oracle.com/finFunShared/FinancialUtilService", WS_ADDR_VER);
String uuid = "uuid:" + UUID.randomUUID();
wsbp.setOutboundHeaders( new StringHeader(WS_ADDR_VER.messageIDTag, uuid), replyTo.createHeader(WS_ADDR_VER.replyToTag));
wsbp.getRequestContext().put(WSBindingProvider.USERNAME_PROPERTY, "fin_user1");
wsbp.getRequestContext().put(WSBindingProvider.PASSWORD_PROPERTY, "Welcome1");
wsbp.getRequestContext().put(ClientConstants.WSSEC_RECIPIENT_KEY_ALIAS,"service");
wsbp.getRequestContext().put(ClientConstants.WSSEC_KEYSTORE_LOCATION, "D:/Retek/default-keystore.jks");
wsbp.getRequestContext().put(ClientConstants.WSSEC_KEYSTORE_PASSWORD, "welcome1" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_KEYSTORE_TYPE, "JKS" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_SIG_KEY_ALIAS, "client" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_SIG_KEY_PASSWORD, "password" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_ENC_KEY_ALIAS, "client" );
wsbp.getRequestContext().put(ClientConstants.WSSEC_ENC_KEY_PASSWORD, "password" );
SEVERE: WSM-00057 The certificate, client, is not retrieved.
SEVERE: WSM-00137 The encryption certificate, client, is not retrieved due to exception oracle.wsm.security.SecurityException: WSM-00057 : The certificate, client, is not retrieved..
SEVERE: WSM-00161 Client encryption public certificate is not configured for Async web service client
SEVERE: WSM-00005 Error in sending the request.
SEVERE: WSM-07607 Failure in execution of assertion {http://schemas.oracle.com/ws/2006/01/securitypolicy}wss11-saml-with-certificates executor class oracle.wsm.security.policy.scenario.executor.Wss11SamlWithCertsScenarioExecutor.
SEVERE: WSM-07602 Failure in WS-Policy Execution due to exception.
SEVERE: WSM-07501 Failure in Oracle WSM Agent processRequest, category=security, function=agent.function.client, application=null, composite=null, modelObj=FinancialUtilService, policy=oracle/wss11_saml_token_with_message_protection_client_policy, policyVersion=null, assertionName={http://schemas.oracle.com/ws/2006/01/securitypolicy}wss11-saml-with-certificates.
oracle.wsm.common.sdk.WSMException: WSM-00161 : Client encryption public certificate is not configured for Async web service client
at oracle.wsm.security.policy.scenario.executor.Wss11SamlWithCertsScenarioExecutor.sendRequest(Wss11SamlWithCertsScenarioExecutor.java:173)
at oracle.wsm.security.policy.scenario.executor.SecurityScenarioExecutor.execute(SecurityScenarioExecutor.java:545)
at oracle.wsm.policyengine.impl.runtime.AssertionExecutor.execute(AssertionExecutor.java:41)
at oracle.wsm.policyengine.impl.runtime.WSPolicyRuntimeExecutor.executeSimpleAssertion(WSPolicyRuntimeExecutor.java:608)
at oracle.wsm.policyengine.impl.runtime.WSPolicyRuntimeExecutor.executeAndAssertion(WSPolicyRuntimeExecutor.java:335)
at oracle.wsm.policyengine.impl.runtime.WSPolicyRuntimeExecutor.execute(WSPolicyRuntimeExecutor.java:282)
at oracle.wsm.policyengine.impl.PolicyExecutionEngine.execute(PolicyExecutionEngine.java:102)
at oracle.wsm.agent.WSMAgent.processCommon(WSMAgent.java:915)
at oracle.wsm.agent.WSMAgent.processRequest(WSMAgent.java:436)
at oracle.wsm.agent.handler.WSMEngineInvoker.handleRequest(WSMEngineInvoker.java:393)
at oracle.wsm.agent.handler.wls.WSMAgentHook.handleRequest(WSMAgentHook.java:239)
at weblogic.wsee.jaxws.framework.jaxrpc.TubeFactory$JAXRPCTube.processRequest(TubeFactory.java:220)
at weblogic.wsee.jaxws.tubeline.FlowControlTube.processRequest(FlowControlTube.java:98)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
at com.sun.xml.ws.client.Stub.process(Stub.java:259)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:152)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:115)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
at $Proxy43.uploadFileToUcm(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.wsee.jaxws.spi.ClientInstance$ClientInstanceInvocationHandler.invoke(ClientInstance.java:363)
at $Proxy44.uploadFileToUcm(Unknown Source)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.invokeUpload(FinancialUtilServiceSoapHttpPortClient.java:111)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.main(FinancialUtilServiceSoapHttpPortClient.java:86)
Caused by: oracle.wsm.security.SecurityException: WSM-00161 : Client encryption public certificate is not configured for Async web service client
at oracle.wsm.security.policy.scenario.processor.Wss11X509TokenProcessor.insertClientEncCertToWSAddressingHeader(Wss11X509TokenProcessor.java:979)
at oracle.wsm.security.policy.scenario.processor.Wss11X509TokenProcessor.build(Wss11X509TokenProcessor.java:206)
at oracle.wsm.security.policy.scenario.executor.Wss11SamlWithCertsScenarioExecutor.sendRequest(Wss11SamlWithCertsScenarioExecutor.java:164)
... 30 more
Caused by: oracle.wsm.security.SecurityException: WSM-00057 : The certificate, client, is not retrieved.
at oracle.wsm.security.jps.WsmKeyStore.getJavaCertificate(WsmKeyStore.java:534)
at oracle.wsm.security.jps.WsmKeyStore.getCryptCert(WsmKeyStore.java:570)
at oracle.wsm.security.policy.scenario.processor.Wss11X509TokenProcessor.insertClientEncCertToWSAddressingHeader(Wss11X509TokenProcessor.java:977)
... 32 more
SEVERE: WSMAgentHook: An Exception is thrown: WSM-00161 : Client encryption public certificate is not configured for Async web service client
File upload failed
javax.xml.ws.WebServiceException: javax.xml.rpc.JAXRPCException: oracle.wsm.common.sdk.WSMException: WSM-00161 : Client encryption public certificate is not configured for Async web service client
at weblogic.wsee.jaxws.framework.jaxrpc.TubeFactory$JAXRPCTube.processRequest(TubeFactory.java:231)
at weblogic.wsee.jaxws.tubeline.FlowControlTube.processRequest(FlowControlTube.java:98)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
at com.sun.xml.ws.client.Stub.process(Stub.java:259)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:152)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:115)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:135)
at $Proxy43.uploadFileToUcm(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.wsee.jaxws.spi.ClientInstance$ClientInstanceInvocationHandler.invoke(ClientInstance.java:363)
at $Proxy44.uploadFileToUcm(Unknown Source)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.invokeUpload(FinancialUtilServiceSoapHttpPortClient.java:111)
at com.oracle.xmlns.apps.financials.commonmodules.shared.financialutilservice.FinancialUtilServiceSoapHttpPortClient.main(FinancialUtilServiceSoapHttpPortClient.java:86)
Caused by: javax.xml.rpc.JAXRPCException: oracle.wsm.common.sdk.WSMException: WSM-00161 : Client encryption public certificate is not configured for Async web service client
at oracle.wsm.agent.handler.wls.WSMAgentHook.handleException(WSMAgentHook.java:395)
at oracle.wsm.agent.handler.wls.WSMAgentHook.handleRequest(WSMAgentHook.java:248)
at weblogic.wsee.jaxws.framework.jaxrpc.TubeFactory$JAXRPCTube.processRequest(TubeFactory.java:220)
... 19 more -
XML over HTTP using BPEL (not using SOAP)... is this possible?
Hi there.
We're trying to expose a BPEL process which will be exclusively triggered from a HTTP POST. The Client Partner Link in the BPEL process models Oracle's Transparent PunchOut standard. This standard is strict XML-over-HTTP, SOAP is not involved.
However, I am getting issues when I POST the XML to BPEL. It is telling me that it requires a SOAPAction in the header. Again, the design dictates that this is raw XML over HTTP, so we are not to use any SOAP specific header values nor any kind of SOAP wrapper.
I deployed the sample 'HTTPPostService' process which was delivered with BPEL. I am seeing the same error when I try to POST XML to this process as well. I get a response (in a SOAP wrapper) saying that it wants a SOAPAction in the header. The WSDL used to create this sample process clearly does not bind to SOAP, (there are no mentions of the SOAPAction in the operation, etc) so I do not understand.
So, my question is: Is is possible to POST raw XML to a BPEL process? Or does BPEL require all processes to follow the SOAP 'protocol' ?
Thanks for any help.
Message was edited by:
[email protected]I am also trying to do the same stuff. If i deploy the sample application HttpGetService, will i be able to send the request from browser the way we send typical http get request?
here is the url which i want to use to invoke Http get BPEL
http://cybage1:9700/httpbinding/default/HTTPGetService?ssn=10&id=20
but i am getting following exception
500 Internal Server Error
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.RangeCheck(ArrayList.java:507)
at java.util.ArrayList.get(ArrayList.java:324)
at com.collaxa.cube.ws.http.HttpBindingServlet.call(HttpBindingServlet.java:113)
at com.collaxa.cube.ws.http.HttpBindingServlet.doGet(HttpBindingServlet.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:810)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:798)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:278)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:120)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534) -
[HTTP Sender]How to send different XML using static URL
Hi all,
I have a problem, my legacy system send XML messages to SAP XI by HTTP, I know that I need to use HTTP Sender adapter, the problem is that legacy system support only a static URL. I have more than one interface, how could I fix this problem?
Can I send the XML message to SAP XI without define INTERFACE on URL? How can I handle this?
Thank in advance,
Daniel TorresHi Srinivas,
The legacy system is a java application, that send XML messages to SAP XI server using HTTP protocol. So I just ask to legacy system team to change the application to add <b>server</b>, <b>namespace</b> and <b>interface</b> attributes to the URL querystring.
So for each XML message you should especify mesage interface that it belongs to. You do it by especifying on URL as message atribute for exemple:
HTTP://[SAPXISERVER]:80[SYSTEM ID]/sap/xi/adapter_plain?service=[BS SERVICE]&namespace=[MESSAGE INTERFACE NAMESPACE]&interface=[MESSAGE INTERFACE]
So if you have for example information belows:
<b>MESSAGE INTERFACE</b> = MI_MYMESSAGEINTERFACE_IB
<b>MESSAGE INTERFACE NAMESPACE</b> = urn:teste:mymessageinterface
<b>SERVICE</b> = MY_LEGACY
<b>SYSTEM ID</b> = 10
<b>SAPXISERVER</b> = MYSAPXI
Your url should looks like: http://MYSAPXI:8010/sap/xi/apadter_plain?service=MY_LEGACY&namespace=urn:teste:mymessageinterface &interface=MI_MYMESSAGEINTERFACE_IB
You should have a different message interface for each XML that you send to SAP XI.
Message was edited by:
Daniel Torres
Message was edited by:
Daniel Torres -
How to send te XML data using HTTPS post call & receiving response in ML
ur present design does the HTTP post for XML data using PL/SQL stored procedure call to a Java program embedded in Oracle database as Oracle Java Stored procedure. The limitation with this is that we are able to do HTTP post; but with HTTPS post; we are not able to achieve because of certificates are not installed on Oracle database.
we fiond that the certificates need to be installed on Oracle apps server; not on database server. As we have to go ultimately with HTTPS post in Production environment; we are planning to shift this part of program(sending XML through HTTPS post call & receiving response in middle layer-Apps server in this case).
how i can do this plz give some solutionIf you can make the source app to an HTTP Post to the Oracle XML DB repository, and POST contains a schema based XML document you can use a trigger on the default table to validate the XML that is posted. The return message would need to be managed using a database trigger. You could raise an HTTP error which the source App would trap....
-
Can´t read page containing XML using GET HTTP Document
Hello forum users,
I'm have a problem with the LabVIEW Internet Toolkit and I'm woundering if its me that is doing something wrong or if it is a limitation of the VI.
I have a robotic application which comunicates with LabVIEW via internet.
the robots sends and receives information via XML which is posted on a webpage.
I've been trying to use the LabVIEW Internet Toolkit's GET HTTP Document. while I can obtain HTML data from any webpage when I try to access my webpage containing XML data I get an Error 66 (connection closed by peer message).
What is even stranger is that on two distinct occasions the program returned the XML data
The page is set up so that when accesed (for example http://192.168.0.102:4950/move.cgi?op=setVel&vel=300). It will define the robot's speed at 300 mm/s and return a page with a simple XML data such as
<result>true</result>
When I access the page in using the Get HTTP Document, the request is sent. the robot does the action required but the XML data I need isn't returned.
I have applications that do this in C++, python, and MatLab, without a problem and I didn't want to have to resort to low level TCP/IP functions.
any suggestions???
Is this a limitation of the GET HTTP Document VI (it only gets HTML documents)
Thanks in advanced
Bruno Noronha
Certified LabVIEW Associate Developer
Using LabVIEW 8.6Hi, Bruno.
Maybe my case will help you. I've faced a problem similar than yours. I have a network camera whose API is HTTP based, I mean, I can control it using HTTP requests, i.e. http://myserver/axis-cgi/bitmap/image.bmp
takes a picture and returns it in bmp format.
There are other requests that can send data back, i.e.
http://<servername>/axis-cgi/com/ptz.cgi?query=position
retrieves pan and tilt degrees and zoom value (it is a PTZ camera or pan-tilt-zoom, it has two joints that rotate left-right and up-down, and a zoom). In this case, the information is sent in plain text. But I had like you an error 66 in TCP Read.vi.
After debugging "Get HTTP document.vi" I noticed this information is sent back, but due to the error in "TCP Read.vi", it's not transmitted to the remaining TCP functions in execution order, and finally is lost.
In order to debug "Get HTTP document.vi" you'll need to unmark "Reentrant execution" and mark "Allow debugging" in VI Properties->Execution.
The information string enters "TCP Read.vi" by the terminal "buffer in", and leaves it by "buffer out". The next function, "TCP Read Stream.vi" receives also this string, but it's lost in case there's an error in the entry error cluster. So I removed the wire the connects this two TCP VIs, and finally got the string at the "content" terminal.
It may not be the most orthodox solution, but at least it let me continue working. If anybody has fixed this issue conveniently, it'd would interesting to share it with us.
Regards,
Francisco
PS. I was with an internship in USP (Sao Carlos, Brazil) for three months in 2007. In this time I visited many times Campinas and its university. Nice place and really good moments :
Hi, Bruno.
Maybe my case will help you. I've faced a problem similar than yours. I have a network camera whose API is HTTP based, I mean, I can control it using HTTP requests, i.e.
http://myserver/axis-cgi/bitmap/image.bmp
takes a picture and returns it in bmp format.
There are other requests that can send data back, i.e.
http://<servername>/axis-cgi/com/ptz.cgi?query=position
retrieves pan and tilt degrees and zoom value (it is a PTZ camera or pan-tilt-zoom, it has two joints that rotate left-right and up-down, and a zoom). In this case, the information is sent in plain text. But like you I got an error 66 in "TCP Read.vi".
After debugging "Get HTTP document.vi" I noticed this text information is sent back, but due to the error in "TCP Read.vi", it's not transmitted to the remaining TCP functions in execution order, and finally is lost.
In order to debug "Get HTTP document.vi" you'll need to unmark "Reentrant execution" and mark "Allow debugging" in VI Properties --> Execution.
The information string enters "TCP Read.vi" by the terminal "buffer in", and leaves it by "buffer out". The next function, "TCP Read Stream.vi" receives also this string, but it's lost if there's an error in the entry error cluster. So I removed the wire that connects this two TCP VIs, and finally got the string at the "content" terminal.
It may not be the most orthodox solution, but at least it let me continue working. If anybody has fixed this issue conveniently, it'd would interesting to share it with us.
Regards,
Francisco
PS. I was with an internship in USP (Sao Carlos, Brazil) for three months in 2007. In this time I visited many times Campinas and its university. Nice place, nice people and really good moments -
Post an XML on HTTPS URL using XI
Hi All,
My scenario is SAP SRM - XI - HTTP, where I am posting an XML message from XI to HTTPS URL using HTTP receiver adapter.
Can you tell me what all step needs to be done to configure HTTP receiver adapter in this case. Also, since I have to post an XML message on HTTPS URL (Which is outside the domain), do I need to apply SSL certificates as well?
Appreciate your help!!!
Thanks & Regards,
AmitHi Amit
regarding HTTP URl just check these
You can use the HTTP adapter. Refer to following SDN TV demo of the HHTP adapter for details steps involved into it.
https://media.sdn.sap.com/SDNTV/main.asp?mediaId=107
HTTPS using XMLSPY
http://help.sap.com/saphelp_nw04/helpdata/en/14/ef2940cbf2195de10000000a1550b0/frameset.htm
The HTTPS configuration data of the Adapter Engines has to be configured in the SLD.
More Information in the "SAP Security Guide XI"
http://help.sap.com/saphelp_nw04/helpdata/de/f7/c2953fc405330ee10000000a114084/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/43/64db4daf9f30b4e10000000a11466f/content.htm
Under Security Check for Inbound Messages, you can specify which HTTP Security Level is to be assumed for incoming messages. You can choose from the following security levels:
○ HTTP (default value)
○ HTTPS without client authentication
○ HTTPS with client authentication
http://help.sap.com/saphelp_nw04/helpdata/en/14/ef2940cbf2195de10000000a1550b0/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79
http://help.sap.com/saphelp_nw04/helpdata/en/f1/2de3be0382df45a398d3f9fb86a36a/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/65/6a563cef658a06e10000000a11405a/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/f1/2de3be0382df45a398d3f9fb86a36a/frameset.htm
<b>Pls reward if useful </b> -
How to convert XML message in text format by using HTTPS-Receiver adapter
Is it possible to convert XML message in text format when we use HTTPS as the receiver adapter?
If yes, how?
Thanks!
MrudulaHi Mrudula,
As far as i know there are no content conversion methodology for HTTPS as the recevier adapter.
Also you can read through these links to confirm the same:
http://help.sap.com/saphelp_nw04/helpdata/en/0d/5ab43b274a960de10000000a114084/content.htm
http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_adapters.doc/doc/sap_xi/sapximst30.htm
SAP NetWeaver - XML Communication Interface (CA-XML) [original link is broken]
Regards,
abhy
note: reward the helpful. -
Using Business Service that supports XML over HTTP in OSB
Hi,
I needed to integrate my system with another legacy system that supports communication only through XML over HTTP. I am just trying to understand much about this XML over HTTP. I think in OSB, this is possible only possible through REST interfaces.
Is there any other way and what about HTTP bindings in WSDLs? can you please let me know if you have any insights.
I have gone through the urls about REST interfaces given in these forums. But just wanted to confirm the following scenaiors possible in OSB.
- Client will connect to SOAP based proxy service which will in turn call REST based business service.
- Client will connect to REST base proxy service which will in turn call SOAP based business service.
Following point is not clear from the URLs i went through so just wanted to confirm the following too:
- Client will connect to REST base proxy service which will in turn call SOAP based business service. And is it possible to add anything in soap header before calling soap based business service..
Thanks & Regards
SivaHi Siva,
XML over HTTP is a general use case and OSB supports it very well. REST is a special case and should be used when required. To know more about REST you may refer -
http://www.infoq.com/articles/rest-introduction
Now coming to OSB, SOAP and simple XML are two different cases. If you are creating XML type service then it is not binded to a WSDL/XSD but SOAP based service should always be binded with a WSDL. You may add/modify transport headers in OSB.
Evaluate your requirements and then decide what exactly you need to use. Few links which may be of your use -
http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/configuringandusingservices.html#wp1150438
http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/configuringandusingservices.html#wp1154255
http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/configuringandusingservices.html#wp1141071
section "Configuring Business Services using the HTTP Transport" here - http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/httppollertransport/transports.html#wp1083292
http://blogs.oracle.com/jeffdavies/2009/06/restful_services_with_oracle_s_1.html
http://blogs.oracle.com/jamesbayer/2008/07/using_rest_with_oracle_service.html
Regards,
Anuj -
Client call using XML over Http using HttpClient
Using HTTPClient while calling HTTPPost method to generate request for external system using XML over http using below code
client.getState().setCredentials(new AuthScope(ipAddress,portNumber),new UsernamePasswordCredentials(username, password));
PostMethod method = new PostMethod(url);
String str = accDoc.toString();
method.setRequestEntity(new InputStreamRequestEntity(new ByteArrayInputStream(str.getBytes())));
method.setDoAuthentication( true );
int result = client.executeMethod(method);
server system getting 2 request. first request without basic authentcation details and second request with full auhentication details.
So unnecessary eatra call without authentication details is going during calling the client program using above code.
Please let me know which part of the above code is generationg extra call.
Thanks in advance for your helpI don't see nothing wrong with your code, there must be something else happening.
You sure you are not being some proxy server?? but even then you are making a post request so it shouldn't be happening.
MeTitus -
Virtual directory when using xml db http
Is it possible to create a virtual web directory (reachable using http) to a physical directory in my server?
I am running apex using xml db http with oracle 11.2.
thanksApache/Lighttpd. is it a free product?Yes both of them are free.
Please see http://www.beyondoracle.com/2008/04/05/reverse-proxying-apex-in-a-dmz/
I personally feel that Lighttpd works better specially if there is too much Ajax involved in your application but unfortunately I did not find any tutorial ready for that. Also for starters (in this particular subject) I recommend Apache since there is enough documentation available and you can get many people who can be helpful to setup this.
Zulqarnain
MaxApex Hosting
http://www.maxapex.com -
Connecting to XML Repository Using HTTPS?
Is it possible to use HTTPS to connect to the repository using WebDAV or secure FTP? I can't run a web server using HTTP.
Thanks,
BillThe following may help... However please note at the moment we have not certified XML DB HTTP with a HTTPS /SSL / TCPS connection. Nor have I tried this myself..
Please follow the following steps to configure HTTPS:
1. Make sure Oracle Advance Security is installed
a. It installs by default for Enterprise Edition
2. Create and configure a Wallet
a. Refer to Oracle Advance Security Administrator�s Guide, Chapter 17 � Using Oracle Wallet Manager, for creating the Wallet
i. From $ORACLE_HOME/bin run owm
b. Import the trusted certificate in the Wallet
3. Configure SSL on the Server
a. Refer to Oracle Advance Security Administrator�s Guide, Chapter 7 � Configuring Secure Sockets Layer Authentication
b. Follow the steps in Task 3: Configure SSL on the Server, in the Enabling SSL section
4. Edit the xdbconfig.xml configuration file to specify http-protocol as tcps
a. Locate the <httpconfig> section
b. Change the value of <http-protocol> tag from tcp to tcps
5. Edit the Database initialization file to start a TCPS dispatcher
6. Restart the Database
Maybe you are looking for
-
Want to make a career in SAP BI
Hello, This is Sanjay Sreedhar from Bangalore. Currently, I am working as a Senior Software Engineer on Java/J2EE and related technologies and have an overall experience of 2 and a half years. I am not really interested to continue doing Java develop
-
Looping recorded data (project specific)
Hi everyone, I've recently got logic studio and absolutely loving it - it's great. I've got this project that I started quite recently and whenever I record in it (be it audio or MIDI) as soon as you hit the space bar to stop recording your region ge
-
Replication broken after demoting DC
Hi, I am in the process of upgrading our Domain Controllers to Server 2012 R2. Today I was about to demote on of my Server 2008 R2 DCs. I ran dcpromo on the server and it went through without errors. The DC that was demoted was the inbound replicatio
-
P.O rate for required on parent material
I am using sub contracting PO for processing material. I need to send parent material 'Á' for processing & converting it into child material 'B'. But I want P.O rate to be based on qty processed of parent material. In sub contracting PO, I have to gi
-
My macbook has Itunes and I am trying to download some songs that I bought on my Ipad onto the macbook. It has worked in the past, but one song has been downloading for the last day. No more will download it seems stuck downloading. I don't need the