Perl based client to access weblogic web services
Hello All,
Do we have sample code where Perl (Soap::Lite) client will access weblogic based web services using https protocol?
Regards,
ssaxena
Hello All,
Do we have sample code where Perl (Soap::Lite) client will access weblogic based web services using https protocol?
Regards,
ssaxena
Similar Messages
-
Authenticating to weblogic web service using a client cert with webserver
I am trying to think of how to authenticate a client to a weblogic web service
using a client certificate. The wrinkle is that a Web Server (iis or whatever)
will be handling the ssl part and forwarding non-secure to weblogic. The cert
will still be accessable in the request using: HttpServletRequest req.getAttribute("javax.net.ssl.peer_certificates).
At this point it is not clear to me what I can do. When does CertAuthenticator
get called? Can I even use it? Will I have to write my own version of the weblogic.soap.server.servlet.StatelessBeanAdapter
class?
Any help will be appreciated, even explaining why it can't be done.
Thanks,
ScottI am trying to think of how to authenticate a client to a weblogic web service
using a client certificate. The wrinkle is that a Web Server (iis or whatever)
will be handling the ssl part and forwarding non-secure to weblogic. The cert
will still be accessable in the request using: HttpServletRequest req.getAttribute("javax.net.ssl.peer_certificates).
At this point it is not clear to me what I can do. When does CertAuthenticator
get called? Can I even use it? Will I have to write my own version of the weblogic.soap.server.servlet.StatelessBeanAdapter
class?
Any help will be appreciated, even explaining why it can't be done.
Thanks,
Scott -
How to prevent downloading wsdl in weblogic web service client
Hi,
I get a problem regarding weblogic web service client. My working environment:
weblogic server 8.1
Windows XP SP2
JDK 1.4
I use the weblogic tool to generate the client jar file from the wsdl file.
<target name="generate-client">
<clientgen wsdl="ACCESS.wsdl"
packageName="xxxxxx.client"
clientJar="${client}/${AccessClient_jar_file}"
keepGenerated="true"
saveWSDL="true"
/>
<javac srcdir="${source}"
destdir="${client}"
includes="**/AccessClient.java">
<classpath>
<pathelement path="${client}/${AccessClient_jar_file}"/>
</classpath>
</javac>
</target>
After that, I create a client java file to invoke the service deploy in the server.
public static void main(String[] argv)
throws Exception
int transactionId = 100;
int id = 1000;
// Setup the global JAXM message factory
System.setProperty("javax.xml.soap.MessageFactory", "weblogic.webservice.core.soap.MessageFactoryImpl");
// Setup the global JAX-RPC service factory
System.setProperty( "javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl");
AccessServicePorts ws = new AccessServicePorts_Impl(argv[0]);
AccessService port = ws.getAccessService();
// Resource - create
Resource resource = new Resource();
resource.setRES_CD("Create ResCo");
resource.setCODE_CODE("code_cod");
resource.setRES_TYPE("Resource typ");
resource.setCOMMON_FIELD(common);
AccessDefaultResult resultItems = port.createResource(resource);
System.out.println("createResource : " + resultItems);
I find that this web service client always issue 2 http requests to invoke an web service method deployed in server.
1st http reqeust:
GET /AccessEpol/EpolServiceSoap?WSDL HTTP/1.1
User-Agent: Java/1.4.2_08
Host: 127.0.0.1:8001
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
the return result is the wsdl downloaded from the server.
2nd http request is the real web service request.
The question is how could I eliminate the 1st http request because it's really unnecessary. I use other web service client like Axis 1.x, Axis client never has the http request to download the wsdl from the server.
I read through weblogic web service document. It do mentions that put saveWSDL="true" in the clientgen ant task. the default value for saveWSDL is true already. I did try saveWSDL="false" also. None of them can eliminate the 1st http request.
appreciate for any answer my question?Hi David,
thanks for the reply.
More or less I agree some points you mentioned above.
I did use Axis 1.x to test the inter-operability. The web service was developed in Weblogic 8.1 and is a part of an existing web application. It will be merged to existing application deployed in weblogic 8.1.
I also program the web service client to test the web service.
The implementation of the server and client will be handed over the project team and training for supporting or continuous development have to be conducted by me. So I don't like to use two types of technologies which will make thing complex.
I found this issue when I tried to protected the web service endpoint, eg http://localhost:7001/epol/service, using the web application Basic mechanism. The wsdl URL http://localhost:7001/epol/service?WSDL is also protected in this case. Unfortunately the username/password pair is not sent to the server when the weblogic client download the WSDL from the server. In this case, the client failed and throw exception. -
Accessing XI web service from portal as client
Hi all
I need to access a web service which has been created on XI
server. I want to acess it from enterprise portal as a web service client. please provide related links to achieve this.
thanks in advance
vaishaliVaishali,
never did this before, but some general ideas:
Do you have an WSDL for that web service? Then simply use your NWDS and select New --> Portal Service --> From WSDL (or similar). What I mean is the following: NWDS can read WSDL files and will automatically generate a proxy for you that actually generates an ordinary portal service. This portal service then can be called by standard means in SAP EP.
Regards,
Dominik -
How to access .asmx Web Service using JAVA? Newbie
Hello Experts,
Currently, I have a project where in I have to access a ,NET web service. It is made of C#. I just want to ask how will I start the accessing process? I made this simple equation on how my project is.
Java Project + C#.Net Web Service = Integration
1. Do i need to create a Web Service too for the Java Project? If yes, What are the necessary tools needed for the creation of this Java Web Service?
2. The .NET Web Service is available online. (It is made by other people).
3. Based on the equation, what is the equivalent technology for the + sign?
4. Can you site a concrete example for accessing a web service?
5. I'm new here. Totally I have no idea where to start.
6. Thank you experts.
Edited by: Benedict.Aluan on 05 30, 08 1:38 PM
Edited by: Benedict.Aluan on 05 30, 08 1:39 PMHello
Thanks a lot for your help ...
I am developing simple J2EE based web service client using IBM WSAD 5.1. I have used the following code to call .asmx web service in Java
String url = "http://www.w3schools.com/webservices/tempconvert.asmx?wsdl";
String namespace = "http://tempuri.org/";
name = request.getParameter("txtName");
try
System.out.println("In Internet Service");
ServiceFactory factory = ServiceFactory.newInstance();
Service serv = factory.createService(new URL(url),new QName(namespace,"TempConvert"));
System.out.println("Got Service......");
Call obj = (Call)serv.createCall();
System.out.println("Got Call......");
obj.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY,"");
obj.setProperty(Call.OPERATION_STYLE_PROPERTY,"wrapped");
obj.setTargetEndpointAddress(url);
obj.setPortTypeName(new QName(namespace,"TempConvertSoap"));
obj.setOperationName(new QName(namespace,"FahrenheitToCelsius"));
obj.addParameter("param1",XMLType.XSD_STRING,String.class,ParameterMode.IN);
obj.setReturnType(XMLType.XSD_STRING);
System.out.println("Parameters Set.....");
Object[] params = new Object[]{name};
k = (String)obj.invoke(params);
System.out.println("Result: "+k);
catch(Exception e)
System.out.println("Exception is : "+e);
}But this code is throwing exception that
Invalid Address "http://www.w3schools.com/webservices/tempconvert.asmx?wsdl"I have also tried this URL with Java Proxy. But it showing the same error.
Plz can u tell me how to access .asmx web service ?
Waiting 4 reply. -
HTTP error when trying to access RESTful web service from application
Hi,
We are getting the following error when trying to access a RESTful web service coming from Apex workspace 4.2.1 and Apex listener 2.1:
ORA-29273: HTTP request failed ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-29024: Certificate validation failure
In the Debug report, besides the above I also see:
error_backtrace: ORA-06512: at "SYS.UTL_HTTP", line 1130 ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 543 ORA-06512: at "APEX_040200.WWV_FLOW_WEB_SERVICES", line 1164 ORA-06512: at "APEX_040200.WWV_FLOW_PROCESS", line 396
We get that error whether we use https or http in the URI pointing to the web service. When I test the Web Service in Workspace RESTful service GUI, I get the data back. When I go build an application with a report calling the RESTful Web Service I get that error. Both the Application and the Workspace RESTful services are on the same Apex environment and even the same workspace.
What is odd is that I can actually put the URL of the web service into a browser and I get the data: (using the demo hr data in sample RESTful services.)
IN browser-- https://weblogic-dev.edu/apex/ace/hr/empinfo/
yields:
7839,KING,PRESIDENT,,1981-11-17T05:00:00Z,5000,,10 7698,BLAKE,MANAGER,7839,1981-05-01T04:00:00Z,2850,,30 7782,CLARK,MANAGER,7839,1981-06-09T04:00:00Z,2450,,10 7566,JONES,MANAGER,7839,1981-04-02T05:00:00Z,2975,,20 7788,SCOTT,ANALYST,7566,1982-12-09T05:00:00Z,3000,,20 7902,FORD,ANALYST,7566,1981-12-03T05:00:00Z,3000,,20 7369,SMITH,CLERK,7902,1980-12-17T05:00:00Z,800,,20 7499,ALLEN,SALESMAN,7698,1981-02-20T05:00:00Z,1600,300,30 7521,WARD,SALESMAN,7698,1981-02-22T05:00:00Z,1250,500,30 7654,MARTIN,SALESMAN,7698,1981-09-28T04:00:00Z,1250,1400,30 7844,TURNER,SALESMAN,7698,1981-09-08T04:00:00Z,1500,0,30 7876,ADAMS,CLERK,7788,1983-01-12T05:00:00Z,1100,,20 7900,JAMES,CLERK,7698,1981-12-03T05:00:00Z,950,,30 7934,MILLER,CLERK,7782,1982-01-23T05:00:00Z,1300,,10
Any ideas on what would be causing the Error above in our application?
Thanks,
Pat
Edited by: patfmnd on Mar 11, 2013 3:25 PM
In reviewing the above error, I think we are realizing that we have to have the Weblogic layer SSL cert (actually the CERT from our BigIP load balancer which also does our SSL termination) imported into the Oracle server wallet where Apex is installed. Am I correct?
PMWe resolved our problem. The Apex Administrative Guide made us realize that we had to set up Wallet path in the Instance. This required working with DBAs to follow the Advanced networking guide to get the wallet set up on our server. We then added that path to the Instance configuration. (Manager Instance --> Instance settings). We ran into another other issue related to our implementation of CAS but were able to resolve that, and 'voila' were able to get the sample RESTful service consumed by our application!!
Now to the task of figuring out how to get Basic Auth working between client application and RESTful web service. If anyone has that working, let us know!!
It would be helpful if in the documentation of the Apex 2.x listener or Apex install/configuration there was clear reference to the above steps required for HTTPS access to RESTful web services.
Pat -
Accessing external web service with non-constant URL
Hello, all
I am looking in the documentation on accessing external web services, but either I am looking in the wrong place, or the documentatoin is lacking info.
My clients have several web services in the local network (regular services, not DB-based), the have the same interface, but different URL's.
Versions of the DB are 11, 12, and 16.
First of all, I do not see in the specs an option for a non-hardcoded URL. The logic says that this has to be possible, but I cannot find it.
Second, I need to see an example of accessing an XML or JSon based service, I cannot find it in the specs either.
Can anyone point me to a document with examples?
Thank you
ArcadyThe following will call a web service with whatever URL you pass in as the argument "myurl". I think that is what you are looking for.
CREATE PROCEDURE cli_test2( myurl LONG VARCHAR )
RESULT( httpheaders long varchar, httpvalues long varchars
URL '!myurl'
To deal with the resulting data in XML, use the OPENXML() function.
eg. To turn an XML list of employees that looks like this:
<root>
<row EmployeeID="102" Surname="Whitney" GivenName="Fran" StartDate="1984-08-28"/>
</root>
into a table of results, you would do this (where xmlgetemplist() is the web service call):
CREATE OR REPLACE PROCEDURE xmlgetemplist() RESULT( httpheader long varchar, httpbody long varchar)
URL 'http://localhost/demo/xmlEmployeeList'
TYPE 'HTTP:GET';
create variable res long varchar;
-- call the web service
select httpbody into res from xmlgetemplist() where httpheader = 'Body'
-- extract the XML elements into a SQL result set
select * from openXML( res, '/root/row' ) WITH ( EmployeeID INT '@EmployeeID',
GivenName CHAR(20) '@GivenName',
Surname CHAR(20) '@Surname',
PhoneNumber CHAR(10) '@Phone');
To deal with the resulting data in JSON, use the sp_parse_json() procedure.
eg.
To turn a JSON formatted list of employees that looks like this:
"EmployeeID": 102,
"Surname": "Whitney",
"GivenName": "Fran",
"StartDate": "1984-08-28",
"TerminationDate": null
into a table of results, you would do this (where jsongetemplist() is the web service call):
CREATE OR REPLACE PROCEDURE jsongetemplist() RESULT( httpheader long varchar, httpbody long varchar)
URL 'http://localhost/demo/jsonEmployeeList'
TYPE 'HTTP:GET';
create variable foo long varchar;
--call the webservice
select httpbody into foo from jsongetemplist() where httpheader = 'Body';
--turn the json result into a structured array of data
-- this step is required because of less structured nature of JSON
call sp_parse_json( 'output_array', foo);
--extract the JSON elements from the output array into a SQL result set
SELECT output_array[[row_num]].EmployeeID as EmployeeID,
output_array[[row_num]].SurName as SurName,
output_array[[row_num]].GivenName as GivenName,
output_array[[row_num]].StartDate as StartDate,
output_array[[row_num]].TerminationDate as EndDate
FROM sa_rowgenerator(1, CARDINALITY(output_array))
Hope this helps,
--Jason -
Client apps accessing WL 6 services
Hi All
This is an addendum to the question I posted :
Subject: External clients accessing WL(4.5.1 SP13) JNDI
Date: Thu, 15 Feb 2001 14:07:38 -0500
(BTW, I heard from only one person till now).
I would repeat the question. We all have clients (applications) which
would want to make use of our services (beans, etc). How are they able
to access the Weblogic server's JNDI space?
Only by having WLInitialCtxFactory and other related classes in their
classpath??
If that IS the case, isnt it defeating the purpose of using JNDI. Where
is the transparency of location here. Looks like I still need to bundle
Weblogic server classes to my clients (how many ever they may be).
Support says there was no other way in WL 4.5.1. Is it any different in
WL 6?
If there is another way people are dealing with this situation, I would
be grateful if you can reply to this post.
Thanks
Madhu
(PS Weblogic engineers, please respond to this)Hi
I wish there was a way that one could access using ANY JNDI implementation
PROVIDED the credentials could be verified within the Weblogic security
realm.
Then I could ask the client to use SUN/Netscape or any other vendor's
implementation and give the client a generic guest kind of credentials.
What would be the issues involved if this were to happen?
In our situation, the client might be another team hosting their own
applications on Websphere or SilverStream and I cannot ask them to load up
WL classes too. You know how it works.
Thanks
Madhu
Daniel Hoppe wrote:
Hi,
for WL5.1 there is a fourth approach which needs careful investigation
to work properly but which is successfully used with Java Webstart
within our development team. I guess this will work for WL6.0 in a
similar manner. We use java -verbose and utils.verboseToZip to extract
only the classes needed into one wl specific jar. The advantage is that
there is an overal jar of about 2MB, so it's realistic to distribute
from ISDN connections onwards. The disadvantage is that you need to
follow every code line of your application very carefully - especially
error situations - to get all the necessary classes.
Daniel
-----Original Message-----
From: K.J. van der Bent [mailto:[email protected]]
Posted At: Tuesday, February 27, 2001 11:29 PM
Posted To: jndi
Conversation: Client apps accessing WL 6 services
Subject: Re: Client apps accessing WL 6 services
Yes, dealing with the same problem.
At the moment we think that there are three strategies:
1. Deploy all WL classes on the client (weblogicaux, current
servicepack-jar
and a jar containing the complete classes directory). This takes about
20
MB. Since we will use Java Web Start for deploying our applications we
install this 'weblogic bundle' along with the installation of JWS. From
then
on, only the servicepack jar (~2 MB) will be updated on the server and
therefore downloaded by JWS to the client. It's not an ideal situation
but
it allows 'quick and easy' developing
2. A second approach is to develop applets and use the plugin to execute
them on the client. The plugin allows single class loading (JWS only
loads
jars!) and requests for a class only when it is needed. This way you
don't
need 20 MB of jars on the client but still many weblogic classes are
loaded.
(And aren't we tempted to use Java Web Start instead of applets embedded
in
a browser!)
3. The third approach we are currently looking into is develop an
application totally independent of Weblogic (Thus, no
WLInitialCtxFactory).
Disadvantages are that you can't use some of the benefits of WL (like
optimized t3 connections and maybe easier developing). Advantage however
is
that our applications are independent of the type of application server.
Briefly this is where we are now. We were also a little discouraged
while
browsing the newsgroups and noticing that this seems to be an issue for
many
developers.
Maybe someday...
K.J. van der Bent -
Simple question re invoking non-WebLogic web services
I have a very simple question that I haven't been able to resolve elsewhere.
I need to invoke 3rd-party SOAP interfaces from my WebLogic 6.1 client EJB. All
the Bea documentation I've found refers to invoking "WebLogic Web Services" and
speaks of downloading the client.jar -- however, in my case it's not a "WebLogic
Web Service" I'm invoking, it's a non-WebLogic web service.
Does WebLogic 6.1's WebServiceProxy (or other tool) allow this? Or must I use
some other SOAP tool such as Apache Axis in this case?
Thanks.
Cheers,
allanCould this interopability problem have something to do with a problem
I'm experiencing on 61.sp3?
I have an EJB that accesses SOAP services on a Tomcat server. The SOAP
service sends back a SOAP exception which is correct in what I am asking
in to do. However, the weblogic app server is returning a SOAP
exception to my EJB rather than passing the SOAP exception to the API
that I am using to make my SOAP calls.
Has anyone seen something like this?
Sandy Mustard
john wrote:
>
The 'samples/examples/webservices/rpc/javaClient/XMethodClient'
is an example of how to invoke a non-WL webservice. You can
use that code within your EJB.
The javadocs for the WebServiceProxy class (from BEA's site)
will give you more methods that may be useful to you.
Note that your best bet, if possible, is to use the JAX-RPC
APIs within WebLogic 7. The SOAP support in WL6.1 has
interoperability issues.
-john
"Allan Halme" <[email protected]> wrote:
I have a very simple question that I haven't been able to resolve elsewhere.
I need to invoke 3rd-party SOAP interfaces from my WebLogic 6.1 client
EJB. All
the Bea documentation I've found refers to invoking "WebLogic Web Services"
and
speaks of downloading the client.jar -- however, in my case it's not
a "WebLogic
Web Service" I'm invoking, it's a non-WebLogic web service.
Does WebLogic 6.1's WebServiceProxy (or other tool) allow this? Or must
I use
some other SOAP tool such as Apache Axis in this case?
Thanks.
Cheers,
allan -
How to access the Web Service Browser
Hi,
I need to access the Web Service Browser to generate a Web Service Description.
How can I do it?
I use the follow url:
http://<host_name>:<port_number>/sap/bc/bsp/sap/WebServiceBrowser/search.html?sap-client=<relevant_client>
but I can't say how to determine values for the three placeholders.
Help me please.
THANKSHi Andrea,
you can access the web services in sap transaction SICF. Then right click on the
service and choose "test". The hostname is the host on where the sap system
runs.
The port ´number can be seen in transaction SMICM -> shift + F1. Here you can see
the portnumer assigned to the HTTP protocol.
And the client is the sap client (standard client) for which the service is configured.
Hope this helps.
KR,
Andreas -
How to use Axis to access a web service through Authentication proxy
Using axis access internat web service is success,but access a web service through Authentication proxy is failure.But other java classes connect through a proxy to the internet which works very well:
please help me ,thank you!!!
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
//this is my access webservice faliure codes
public class TestClient
public static void main(String [] args) {
try {
System.getProperties().setProperty("http.proxySet", "true");
System.getProperties().setProperty("http.proxyHost","proxy.com");
System.getProperties().setProperty("http.proxyPort", "8080");
System.getProperties().setProperty("http.proxyUser", "username");
System.getProperties().setProperty("http.proxyPassword","password");
String endpoint =
"http://nagoya.apache.org:5049/axis/services/echo";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName("http://soapinterop.org/", "echoString") );
String ret = (String) call.invoke( new Object[] { "Hello!" } );
System.out.println("Sent 'Hello!', got '" + ret + "'");
} catch (Exception e) {
System.err.println(e.toString());
}I get an "(407)Proxy authorization required" error?I am also looking for a solution. Does any one know how to do through code instead of jvm settings?
Thanks in advance! -
Problem accessing https Web service from behind proxy
Hi all,
I have this constant timeout issue which occurs whenever I try to access the Web service from behind a proxy.
Find below the error logs -
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection timed out: connect
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
at java.net.Socket.connect(Socket.java:452)
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:324)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:136)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:100)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:129)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:389)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:87)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:144)
at org.apache.axis.client.Call.invokeEngine(Call.java:2688)
at org.apache.axis.client.Call.invoke(Call.java:2671)
at org.apache.axis.client.Call.invoke(Call.java:2357)
at org.apache.axis.client.Call.invoke(Call.java:2280)
at org.apache.axis.client.Call.invoke(Call.java:1741)
I am using Tomcat 5.0.19 . Could anyone suggest a possible solution to the same?
The system works fine when I use a http endpoint.Hi,
By default, your application tries to connect to the Net directly : if you have to specify a proxy, use either these lines in your code :
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", "proxy");
System.setProperty("http.proxyPort", "8080");
Or specify them in the command line with the "-D"option.
Ex : java .... -Dhttp.proxySet=true .... MyApp
Hope it helps.
See ya -
Problem with accessing a web service from outside world
Hello SAP experts
I have a custom BAPI for which I have created a webservice.
If I login as an admin to the BOX where I have installed this SAP server and open an internet explorer window and give the URL, I can access the web service without any problem. This is just a simple BAPI that searches for some data from a table based.
However, when I give the same URL from a different PC, it can open the web service and in the fields if I give the data and click on send button, it fails with an error '500 Internal Server Error '.
I looked for the details of this error on internet and it says that this is some general error and solutions that it suggested doesn't help my scenario.
Has anyone seen this problem before? Any help will be highly appreciated.
Tks
Rami have tried the stack trace in the catch but as i said on the statement where i made the object for the service the program just exits. it didn't return any exception or any output.
thanx for refering me any answer....... -
Access a web service from pl/sql
I am trying to access a web service from pl/sql. I have downloaded the code from
http://www.oracle.com/technology/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html
But when I try to execute the sql, I am getting the following error:
SQL> @local.sql
Package created.
Package body created.
No errors.
BEGIN dbms_output.put_line(time_service.get_local_time('94065')); END;
ERROR at line 1:
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1022
ORA-12545: Connect failed because target host or object does not exist
ORA-06512: at "WEB.DEMO_SOAP", line 71
ORA-06512: at "WEB.TIME_SERVICE", line 15
ORA-06512: at line 1
It is failing at:
resp := demo_soap.invoke(req,
'http://www.ripedev.com/webservices/LocalTime.asmx',
'http://ripedev.com/xsd/ZipCodeResults.xsd/LocalTimeByZipCode');
But in the examples that I got from downloading source code, site used was:
'http://www.alethea.net/webservices/LocalTime.asmx',
'http://www.alethea.net/webservices/LocalTimeByZipCode');
This site was not accessible. So I changed to the working site as follows, but still I
am getting the above error.
But I can access this site, if I type in the above address in the address bar of IE.
Can any body help?
I have oracle9i client installed on my machine and able to connect to server thru toad and sql plus.
or IF any body refers me to a good website for the topic of "using webservies from pl/sql" that would be great too!Here is the complete code:
time_service:
CREATE OR REPLACE PACKAGE time_service AS
FUNCTION get_local_time(zipcode IN VARCHAR2) RETURN VARCHAR2;
END;
CREATE OR REPLACE PACKAGE BODY time_service AS
-- Location of Web service definition
-- http://www.alethea.net/webservices/LocalTime.asmx?WSDL
-- http://www.ripedev.com/webservices/LocalTime.asmx?WSDL
-- http://www.xmethods.com/sd/2001/CurrencyExchangeService.wsdl
--'http://ripedev.com/xsd/ZipCodeResults.xsd/LocalTimeByZipCode style=document');
FUNCTION get_local_time(zipcode IN VARCHAR2) RETURN VARCHAR2 IS
req demo_soap.request;
resp demo_soap.response;
BEGIN
dbms_output.put_line('before new request..');
req := demo_soap.new_request('LocalTimeByZipCode',
'xmlns="http://ripedev.com/xsd/ZipCodeResults.xsd"');
dbms_output.put_line('before add param..');
demo_soap.add_parameter(req, 'ZipCode', 'xsd:string', zipcode);
dbms_output.put_line('before invoke..');
resp := demo_soap.invoke(req,
'http://www.ripedev.com/webservices/LocalTime.asmx',
'http://ripedev.com/xsd/ZipCodeResults.xsd/LocalTimeByZipCode');
dbms_output.put_line('before return..');
RETURN demo_soap.get_return_value(resp, 'LocalTimeByZipCodeResult',
'xmlns="http://www.ripedev.com/webservices/"');
END;
BEGIN
dbms_output.put_line('inside main time_service..');
END;
show errors
SET serveroutput ON
exec dbms_output.put_line(time_service.get_local_time('94065'));
Here is demo_soap.sql:
Rem
Rem $Header: soapdemo.sql 21-may-2002.13:48:17 rpang Exp $
Rem
Rem soapdemo.sql
Rem
Rem Copyright (c) 2002, Oracle Corporation. All rights reserved.
Rem
Rem NAME
Rem soapdemo.sql - <one-line expansion of the name>
Rem
Rem DESCRIPTION
Rem A PL/SQL demo package for making SOAP RPC calls.
Rem
Rem NOTES
Rem This demo package can only be used in oracle 9ir2. It utilizes 9iR2's
Rem XDB (XMLType and HttpUriType) and 9iR1's enhancements to UTL_HTTP to
Rem make SOAP RPC calls.
Rem
Rem MODIFIED (MM/DD/YY)
Rem rpang 05/21/02 - created
Rem
Rem A PL/SQL demo package that makes a SOAP RPC calls.
Rem
CREATE OR REPLACE PACKAGE demo_soap AS
/* A type to represent a SOAP RPC request */
TYPE request IS RECORD (
method VARCHAR2(256),
namespace VARCHAR2(256),
body VARCHAR2(32767));
/* A type to represent a SOAP RPC response */
TYPE response IS RECORD (
doc xmltype);
* Create a new SOAP RPC request.
FUNCTION new_request(method IN VARCHAR2,
namespace IN VARCHAR2)
RETURN request;
* Add a simple parameter to the SOAP RPC request.
PROCEDURE add_parameter(req IN OUT NOCOPY request,
name IN VARCHAR2,
type IN VARCHAR2,
value IN VARCHAR2);
* Make the SOAP RPC call.
FUNCTION invoke(req IN OUT NOCOPY request,
url IN VARCHAR2,
action IN VARCHAR2) RETURN response;
* Retrieve the sipmle return value of the SOAP RPC call.
FUNCTION get_return_value(resp IN OUT NOCOPY response,
name IN VARCHAR2,
namespace IN VARCHAR2) RETURN VARCHAR2;
END;
show errors
CREATE OR REPLACE PACKAGE BODY demo_soap AS
FUNCTION new_request(method IN VARCHAR2,
namespace IN VARCHAR2)
RETURN request AS
req request;
BEGIN
req.method := method;
req.namespace := namespace;
RETURN req;
END;
PROCEDURE add_parameter(req IN OUT NOCOPY request,
name IN VARCHAR2,
type IN VARCHAR2,
value IN VARCHAR2) AS
BEGIN
req.body := req.body ||
'<'||name||' xsi:type="'||type||'">'||value||'</'||name||'>';
END;
PROCEDURE generate_envelope(req IN OUT NOCOPY request,
env IN OUT NOCOPY VARCHAR2) AS
BEGIN
env := '<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body><'||req.method||' '||req.namespace||'
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">'||
req.body||'</'||req.method||'></SOAP-ENV:Body></SOAP-ENV:Envelope>';
END;
PROCEDURE show_envelope(env IN VARCHAR2) AS
i pls_integer;
len pls_integer;
BEGIN
i := 1; len := length(env);
WHILE (i <= len) LOOP
dbms_output.put_line(substr(env, i, 60));
i := i + 60;
END LOOP;
END;
PROCEDURE check_fault(resp IN OUT NOCOPY response) AS
fault_node xmltype;
fault_code VARCHAR2(256);
fault_string VARCHAR2(32767);
BEGIN
fault_node := resp.doc.extract('/soap:Fault',
'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/');
IF (fault_node IS NOT NULL) THEN
fault_code := fault_node.extract('/soap:Fault/faultcode/child::text()',
'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/').getstringval();
fault_string := fault_node.extract('/soap:Fault/faultstring/child::text()',
'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/').getstringval();
raise_application_error(-20000, fault_code || ' - ' || fault_string);
END IF;
END;
FUNCTION invoke(req IN OUT NOCOPY request,
url IN VARCHAR2,
action IN VARCHAR2) RETURN response AS
env VARCHAR2(32767);
http_req utl_http.req;
http_resp utl_http.resp;
resp response;
BEGIN
generate_envelope(req, env);
-- show_envelope(env);
http_req := utl_http.begin_request(url, 'POST','HTTP/1.0');
utl_http.set_header(http_req, 'Content-Type', 'text/xml');
utl_http.set_header(http_req, 'Content-Length', length(env));
utl_http.set_header(http_req, 'SOAPAction', action);
utl_http.write_text(http_req, env);
http_resp := utl_http.get_response(http_req);
utl_http.read_text(http_resp, env);
utl_http.end_response(http_resp);
resp.doc := xmltype.createxml(env);
resp.doc := resp.doc.extract('/soap:Envelope/soap:Body/child::node()',
'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"');
-- show_envelope(resp.doc.getstringval());
check_fault(resp);
RETURN resp;
END;
FUNCTION get_return_value(resp IN OUT NOCOPY response,
name IN VARCHAR2,
namespace IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN resp.doc.extract('//'||name||'/child::text()',
namespace).getstringval();
END;
END;
show errors -
Accessing XI Web Service in Web DynPro
Hi Experts,
I have a scenario wherein, I will have to access a Web Service that created in XI.
My Finding still now,
1. I have a web service which is created in XI System.
2. Created a Logical Destination in the Visual Administrator. We have given the wsdl URL, system ID, Client and Basic Authentication Information.
3. When we test the Web Service in the Visual Admin, we get a Message Reponse 200, but the content type says Unknown
4. When we test the Web Service in the SOAP Sonar Web Service Testing Tool, we are getting the correct solution
5. After that, we tried creating an Adaptive Web Service Model, using the WSDL URL.
6. When we deploy the application, we get the following error
Exception on creation of service metadata for WS metadata destination 'POItems' and WS interface 'POitem_WS_OUT'. One possible reason is that the metadata destination 'POItems' has not been properly configured; check configuration
When I tried to access a BAPI that is exposed as a Web Service by default, I end up in the following error
Exception on execution of web service with WSDL URL 'http://mycomp01:1001/sap/bc/soap/wsdl11?services=ZBAPI_POITEM_GETLIST&sap-client=800' with operation 'ZBAPI_POITEM_GETLIST' in interface '{urn ap-com ocument ap:rfc:functions}ZBAPI_POITEM_GETLISTPortType'
I have also tried to create a Deployable Web Service using the WSDL file in the Web Service Perspective. Once I deploy the ear file, it appears in the Visual Admin, but when I try testing it I get an error with Response Code 500
Note: I have tried to create an Adaptive Web Service model for the following Link : http://www.webservicex.net/WeatherForecast.asmx?wsdl that is availbale in the net using a logical destination that refers to the same WSDL URL, the application is working fine.
Server/Studio Config details
J2EE - 7.0
NWDS 2004s SP 12
JDK - 1.4.2_09
Please suggest a solution for the above problem or it would be helpful if you can give links that helps in creating a Web DynPro Application to access the XI Web Service. We have followed as per this Link :
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b2bc0932-0d01-0010-6d8e-cff1b2f22bc7
Regards,
Mathan MPVaishali,
never did this before, but some general ideas:
Do you have an WSDL for that web service? Then simply use your NWDS and select New --> Portal Service --> From WSDL (or similar). What I mean is the following: NWDS can read WSDL files and will automatically generate a proxy for you that actually generates an ordinary portal service. This portal service then can be called by standard means in SAP EP.
Regards,
Dominik
Maybe you are looking for
-
Cannot add WebEx info in CTS-MAN
CTMS = 1.7 CTS-Man = 1.7 Webex = 27 I am trying to integrate One Touch 1.0 and I am at the step wherein in CTS-Man, I have to add the WebEx information. After filling out the fields and click Test(it has to pass test before it adds the WeBex as one
-
Subtract calculation in an expanding table?
Hi I am currently designing a form in Livecycle ES2 and am in need of calculation script. I have an expanding table with add rows on it. In the table i have a drop down list with 2 items that be can selected DR and CR, an Amount field and a total fie
-
hello my question is how to delete incoming email in CIC0 (ICWin)? sap help writes this is possible but i can not see any button for it. if you have it please write what is the name of workspace. is it possible to cut such a function for some users?
-
Iweb problems publish second site
Hi everyone! I use IWeb to make my site with no problem. however now I'm doing another site (diferent file and domain) and can't publish the new site). I've tried to erase my the first site from "sites" but cannot publish the other site! it doesn't r
-
Hi, I have a project where it is imperative that i know the calling class and the called class name. I have a solution working where i place the caled class on a stack and record it as a possible calling class. However there must be a simpler means o