Webservices and XSQL

Hi!
I have a question: I would like to use Oracle's XSQL servlet. I have a .xsql file
which calls a function and returns a data in XML format. Now how can I use this
in weblogic using webservices?
Anybody has an idea?
Thanks in advance
..Madhuri

Currently, WebLogic Web Services only use Stateless Session EJBs (for RPC-style)
and JMS destinations (for Message-style). You can, of course, deploy other Web
Service Platforms (i.e. Apache SOAP, GLUE, WASP, etc.) on WLS 6.1 and use them
;-) They usually support using POJOs (Plain Old Java Objects) as Web service implementations.
Is there some reason why you just aren't using the XSQL stuff by itself? It seems
to be designed specifically for making SQL queries over HTTP, using XML ;-) Why
do you need to create a Web service to "front-end" this capability? Seems like
extra overhead (i.e. SOAP message processing, etc.) with no real "value-added",
if you know what I mean ;-) Is it because you want (or need) to introduce a "layer"
or facade pattern for XSQL, or something?
Regards,
Mike Wooten
"Madhuri" <[email protected]> wrote:
>
Hi Mike!
Thanks for the help. Is there any other way, I mean without using EJBs
can I achieve
the task?
...Madhuri
"Michael Wooten" <[email protected]> wrote:
Hi Madhuri,
Unfortunately, it sounds like you will need more help than I can offer
at this
time. From your original post, I was under the impression that you knew
about
EJBs, Java XML parsers/XSLT processors, etc. I scoped out XSQL a bit
more, and
it looks like fairly powerful technology, but it requires knowledgeof
XML/XSLT.
Personally, I think you might need some "training" help to create aXSQLService
with a WebLogic Web Service ;-) If you don't have time for that, perhaps
you can
search the Web for example code, and start from there.
Regards,
Mike Wooten
"Madhuri" <[email protected]> wrote:
Hi Mike !
Do you have any sample code for the EJB where the method that accepts
an org.w3c.dom.Element
(or org.w3c.dom.Document) as a parameter, and returned the same, asI
am new for
the EJB or direct me the link where I can get info.. I really appresite
your help.
Thanks
..Madhuri
"Michael Wooten" <[email protected]> wrote:
Yeah, that's what I thought ;-)
If you want the party that submitted to wait while the XSQL file isbeing
processed,
you'll want to build a RPC-style WebLogic Web Service, using the Literal
XML encoding
style. For this, you would have the Stateless Session EJB that actsas
the entry-point
into your Web service "implementation", have a method that accepts
an
org.w3c.dom.Element
(or org.w3c.dom.Document) as a parameter, and returned the same. The
remote interface
for this SS would look something like this:
public interface XSQLService extends javax.ejb.EJBObject
     public org.w3c.dom.Element process(org.w3c.dom.Element xsqlParameters)
throws
java.rmi.RemoteException, org.xml.sax.SAXException;
From the information posted on Oracle's OTN site, the .xsql file(s)will
live
on the "server side", so all you need the Web service client to send
is the parameters
for the .xsql, right? That's why I called the input argument "xsqlParameters"
in the method signature above ;-) Okay, so now we need a way for the
client to
tell us which .xsql file to use, right? If the client knows this,
it's
probably
simpler if they put that in the parameter file too! So using the flighFinder
example
on OTN, that leaves us with a parameter file that looks kind of like
this:
<query uri="fly.xsql" stylesheet="none">
<parameters>
     <FROM>LAX</FROM>
     <TO>SFO</TO>
</parameters>
</query>
The implementation for the process(org.w3c.dom.Element xsqlQuery)method,
is where
you want to create the java.net.URL and java.net.URLConnection toconnect
to the
actual XSQL Servlet, I think. You could them use the getOutputStream()
method
on URLConnection, to get the XML returned by the XSQL Servlet, andmake
it the
return value. Knowing Oracle, they have defined a MIME-type extension
for xsql,
which is how they can "automagically" route http://localhost:7070/fly.xsql
to
the XSQL Servlet. Anyway, I haven't worked with XSQL Servlet before,
but I would
hope it is just a J2EE Web Application (.war file) that can be deployed
into WLS.
If so, it should be relatively simple to do what you want to do.
Regards,
Mike Wooten
"Madhuri" <[email protected]> wrote:
Hi Mike, Thanks for your prompt reply. I would like to send the XSQL
file to a
Web Service, and have it send it to the Oracle XSQL Servlet for processing.
As
XSQL Servlet processes SQL queries and outputs the result set as
XML,and
servlet
takes an XML file containing embedded SQL queries (XSQL file), asits
input. It
returns the data in XML format and that's what exactly I would liketo
do.
Thanks ..Madhuri
"Michael Wooten" <[email protected]> wrote:
Hi Madhuri,
What kind of WebLogic Web Service do you want to use? Document-oriented
(i.e.
where you pass in an XML document/well-formed fragment), or RPC-style
(i.e. where
you pass in function arguments)? What does the client pass to the
Web
Service?
What, if anything, does it get back?
From what I know, the Oracle XSQL Servlet processes SQL queries
and
outputs
the
result set as XML. This servlet takes an XML file containing embedded
SQL queries
(XSQL file), as its input. Do you want to send the XSQL file to
a
Web
Service,
and have it send it to the Oracle XSQL Servlet for processing? Doyou
want the
Web Service to create the XSQL file, from arguments passed in theSOAP
Body element?
Sorry to ask so many questions, but the answers will help me answeryour
"original"
question ;-)
Regards,
Mike Wooten
"Madhuri" <[email protected]> wrote:
Hi!
I have a question: I would like to use Oracle's XSQL servlet. I
have
a .xsql file
which calls a function and returns a data in XML format. Now howcan
I use this
in weblogic using webservices?
Anybody has an idea?
Thanks in advance
...Madhuri

Similar Messages

  • Consuming a webservice and attributes

    I'm trying to noodle my way thru consuming a webservice and
    it is not making sense when I'm trying to get attributes from a
    webservice. Can someone point me in the right direction. I've
    included what the xml output looks like and my cfinvoke and a
    cfdump of the invoke return variable. I just don't know how to
    bring back that array of course ids??
    The service returns course ids
    <?xml version="1.0" encoding="utf-8" ?>
    - <Courses>
    <Course CourseID="1167" CourseName="Human Performance
    Tools - Self Checking" />
    <Course CourseID="1168" CourseName="Human Perfomance
    Tools - 3 Way Communication" />
    <Course CourseID="1169" CourseName="Human Performance
    Tools - Phonetic Alphabet" />
    <Course CourseID="1170" CourseName="Human Performance
    Tools - Pre-Job Briefing" />
    <Course CourseID="1171" CourseName="Initial Plant Access
    Training" PadsCode="PAT034" />
    <Course CourseID="1172" CourseName="Initial Radiation
    Worker Training" PadsCode="RWT" />
    <Course CourseID="1224" CourseName="Plant Access Requal
    Training" PadsCode="PAT034" />
    <Course CourseID="1225" CourseName="RWT Requal Training"
    PadsCode="RWQ" />
    <Course CourseID="1226" CourseName="Proctoring
    Responsibilities" />
    <Course CourseID="1235" CourseName="Generic Confined
    Space" />
    <Course CourseID="1236" CourseName="Generic Fall
    Protection" />
    </Courses>
    object of
    org.tempuri.LMSWebSvc.LMS_Interface.GetCoursesResponseGetCoursesResult
    Methods hashCode (returns int)
    equals (returns boolean)
    getSerializer (returns interface
    org.apache.axis.encoding.Serializer)
    getDeserializer (returns interface
    org.apache.axis.encoding.Deserializer)
    getTypeDesc (returns org.apache.axis.description.TypeDesc)
    get_any (returns [Lorg.apache.axis.message.MessageElement;)
    set_any (returns void)
    getClass (returns java.lang.Class)
    wait (returns void)
    wait (returns void)
    wait (returns void)
    notify (returns void)
    notifyAll (returns void)
    toString (returns java.lang.String)

    I found a way to get the soap request into an xml document.
    It was not intuitive to me but works.
    Basically rereading this post:
    http://www.houseoffusion.com/cf_lists/messages.cfm/forumid:4/threadid:44797#233359
    gave me more insight. The tostring function appears to allow me to
    get the raw xml that CF is struggling to noodle out.

  • Webservice and BPM; connection AFW failed

    I have created the following integration process:
    1. Asynchronous receive step of a xml file;
    2. Synchronous send step to invoke webservice;
    3. Asynchronous send step of the response file.
    In this process XI will read a xml file from a directory on the server, convert this file to a SOAP request, call the webservice and convert the SOAP response to a xml file. This file is then sent to the same server directory.
    When I look in SXMB_MONI the whole process is set to ok. The response of the webservice is in the payload of the XI response message. (This is the message from my integration process to the inbound message interface.).
    But the response file never reached its destination.
    When I look at the file adapter monitor it reports: "Up and running - no message processing until now".
    And when I look at the message monitoring, there are the following messages:
    2005-07-29 11:30:55 Success The message was successfully received by the messaging system.
    Profile: XI URL: http://nthvsnw4:50000/MessagingSystem/receive/AFW/XI
    2005-07-29 11:30:55 Success Using connection AFW. Trying to put the message into the receive queue.
    2005-07-29 11:30:55 Success Message successfully put into the queue.
    2005-07-29 11:30:55 Success The message was successfully retrieved from the receive queue.
    2005-07-29 11:30:55 Success The message status set to DLNG.
    2005-07-29 11:30:55 Error Delivery of the message to the application using connection AFW failed, due to: RecoverableException.
    2005-07-29 11:30:55 Success The asynchronous message was successfully scheduled to be delivered at Fri Jul 29 11:35:55 CEST 2005.
    2005-07-29 11:30:55 Success The message status set to WAIT.
    2005-07-29 11:35:55 Success The message was successfully retrieved from the receive queue.
    2005-07-29 11:35:55 Success The message status set to DLNG.
    2005-07-29 11:35:55 Error Delivery of the message to the application using connection AFW failed, due to: RecoverableException.
    2005-07-29 11:35:55 Success The asynchronous message was successfully scheduled to be delivered at Fri Jul 29 11:40:55 CEST 2005.
    2005-07-29 11:35:55 Success The message status set to WAIT.
    2005-07-29 11:40:55 Success The message was successfully retrieved from the receive queue.
    2005-07-29 11:40:55 Success The message status set to DLNG.
    2005-07-29 11:40:55 Error Delivery of the message to the application using connection AFW failed, due to: RecoverableException.
    2005-07-29 11:40:55 Success The asynchronous message was successfully scheduled to be delivered at Fri Jul 29 11:45:55 CEST 2005.
    2005-07-29 11:40:55 Success The message status set to WAIT.
    2005-07-29 11:45:55 Success The message was successfully retrieved from the receive queue.
    2005-07-29 11:45:55 Success The message status set to DLNG.
    2005-07-29 11:45:55 Error Delivery of the message to the application using connection AFW failed, due to: RecoverableException.
    2005-07-29 11:45:55 Error The message status set to NDLV.
    I looked at several postings with the subject "Error Delivery of the message to the application using connection AFW failed, due to: RecoverableException", but I could not find any which seems to meet my problem.
    I would highly appreciate any help on this.

    Sorry for my late response, but I did not look at this after it was solved and I did not receive any mail. So please let me know if you still need some support.
    I could send you a document with some screen shots. If so send me an email ([email protected])

  • IDoc to webservice and get the response back into another IDoc.

    Hi guys
    We have a scenario where we need to send an IDoc to webservice and get the response back into another IDoc.
    Questions:
    1. Is this scenario possible without a BPM? or do we need to use BPM (Sync-Async bridge).
    2. Is there a Async to Sync bridge in BPM?
    3. How do I use this bridge in my scenario and customize it?
    4. If not possible, provide me the related docs using BPM for the same scenario.
    Appreciate your quick response
    Regards
    Naidu

    Hi,
    this link may help u............,
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1134. [original link is broken] [original link is broken] [original link is broken]
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1403. [original link is broken] [original link is broken] [original link is broken]
    Regards,
    Azeez khan.

  • Webservice and UI codes in one application

    Hi,
    We have two applications, one for the UI and one for web services. Both of them have Model project. Hence, we are thinking of merging then into one application which contains three projects: UI, Web services and Model so that both UI and Web services share the same Model project, no redundant codes. Just wondering is that a good design, will there be any issues? So can it be generated two deployment EARs files within one application?
    Please advise.
    Thanks
    -Mina

    you can have your approach itself.. but.. both webservice and the UI project will be have a dependency on the model project.. but you cannot reuse the model project any where else..
    the suggestion given by shay, helps you to use the model library in both UI and webservice.. and can also extend to any other project which needs to access the model project..
    in this case you are refering only the libraries of model project.. so no direct depenedency..

  • Differences  between webservice and proxy

    Hi guys.
    Which are the differences between webservices and proxys?
    If I have a XI adapter (proxy) or Soap Adapter in Pi in both a Proxy Abap is created in SEECC to consume the service so I cant see the differences...
    Regards

    If I wanted to consume a webservice exposed in Pi by a Sender SOAP Sender, what would I have to do?
    Nothing exceptional.....just define a message structure in PI....create a message interface....generate a WSDL for this Message Interface.....use the URL from this WSDL to send message.....it is a normal SOAP --> XI scenario.....many references are readily available on How to do this.
    Regards,
    Abhishek.

  • Oracle's XML Publisher in JDeveloper and XSQL Servlet

    A While ago, in this thread JDeveloper 10g, XSQL and FOP , was mentioned an ongoing effort for the "integration of Oracle's XML Publisher in JDeveloper and XSQL Servlet", Is this still happening ?, will this be something will be able to use without having to be an Oracle Apps shop? Any additional info would be appreciated.

    Hi,
    is there any progress about XML publisher integration with JDeveloper. I'm right now examining XML publisher but there is no explicit directions and explanations of using XML publisher with jdeveloper.
    any news !?
    best regards...
    --barisk                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Query SAP BW via XMLA Webservice and save response to HD

    Hi,
    I´m currently working for an QM Project to create an Overview-page with figures from various BW-Querys. Unfortunatly the the BW-Performance isn´t fast enough to execute a lot of Querys in realtime, so I can´t use the Web App Designer.
    To improve performance I want to execute those querys once a day and save the result sets on hard disk. To get the data out of the BW I want to use the XMLA-Webservice which is already running.
    Is there a simple way or application to send my XMLA to the webservice and save the response on hard disk?

    You can use XMLA web service or the queryview web service to get the data in XML format. The queryview XML service is only available from BW 3.5, see attached documentation.
    http://help.sap.com/saphelp_nw04/helpdata/en/d8/3bfc3f8fc2c542e10000000a1550b0/content.htm
    Ther is also an How to document available for XMLA under the BW 3.0B section.
    If you are looking at a report with no navigation you can use the pre-calculation of the web reports with reporting agent which will create a pre-calculated HTML output on the BW server. Everytime you access the web report the pre-calculated HTML output will be displayed and the performance is great as the data is not accessed at runtime.
    http://help.sap.com/saphelp_nw04/helpdata/en/9e/9f653ade969f4de10000000a114084/content.htm
    Thanks.

  • Can we wrap a RFC as webservice  and use from external java application ?

    Hi Friends ,
                         Our scenario is  call a webservice ( wrapped form of RFC)  from a external  java application  which will pass the input to that webservice and get back the result  .
                          How XI will play a role here ?
                          Can we wrap a rfc as web service  ?
                           Any blogs for that ?
                          Can you please give a brief details about this ?
                          Expecting yoour asap
    Best Regards .,
    V.Rangarajan

    Hi
    Can we wrap a rfc as web service ?
    Yes.
    <i>To use the SAP Web AS 6.40 you need to build a wrapper in the 6.40 system. This is a remote function call (RFC) enabled function module with the same interface or a similar interface that internally calls the required RFC-enabled function module in the old 4.6x system via RFC. The wrapper then can be exposed to the outside world as a Web service. Another option is to use the Integration Broker capabilities for calling Web services in an older system.</i>
    How XI will play a role here ?
    XI will pass the input to the external java application and get back the result to the webservice
    regards
    krishna

  • How to use Adaptive WebService Model with CAF WebService and Complex Type

    Hi All,
    I am trying to use the Adaptive Web Service Model and call a WebService generated by the CAF. The return type of the WebService is a Complex Type.. I receive an exception when trying to instantiate the Model Node.
    Does anybody know how to use the Adpative Web Service Model with CAF WebServices and Complex Types as return type?
    Help is appreciated..
    Thanks, Johannes

    Thanks Mukesh.
    It is not possible to apply the Service Controller Template on Enterprise Java Bean Models as described in the Document. When I try to aply the template on the EJB Model, NWDS says: Only Webservice Models and RFC Models are supported...???
    I did not find any information about how to return complex types in AWS.. in this document???
    Is there such information available? Has anybody ever done that? There must be a way to do that.. Is is the standard approach, isn't it...? Please help me out there.. I need to get this running..
    Thanks, Johannes

  • BAPI - XI - webservice and response back to BAPI

    HI experts,
    could anyone please explain the step by step procedure for the below scenario in XI.
    1.Bapi ->2.XI -> 3.webservice -> 4.XI -> 5.Bapi
    BAPI must invoke a service in XI which invokes a webservice and fetches the data from external system, the response received back in XI is mapped to the BAPI.
    a) How to configure BAPI in SAP R/3 to invoke XI service
    b) how to configure the communication channel for RFC and SOAP
    please provide links for step by step procedure.
    Thanks & Regards,
    Shan

    Hi,
    Check these
    RFC -> XI -> WebService - A Complete Walkthrough (Part 1)
    /people/shabarish.vijayakumar/blog/2006/03/23/rfc--xi--webservice--a-complete-walkthrough-part-1
    RFC -> XI -> WebService - A Complete Walkthrough (Part 2)
    /people/shabarish.vijayakumar/blog/2006/03/28/rfc--xi--webservice--a-complete-walkthrough-part-2
    Regards
    Seshagiri

  • Weblogic webservices and JSP

    Hi Folks,
    I have been stuck with this issue for quite sometime now. I have developed a simple webservice using a java class. It looks something like this..
    public class ReceiveMessageClass{
       public void receiveMessage(String msg){
          logIt(msg);
          //Store 'msg' in a memory variable so that the JSP can ping it every 10 sec and read it..
    }Now, I need a webpage to look at all the messages I recieve at this webservice. Sounds pretty easy? I have done this with Axis. I can create a WAR and my webservice and my JSP can co-exist and share a variable in memory. But with weblogic, a EAR is created and I am not sure how to get my JSP into the EAR. I am not sure how I can store this 'msg' into memory(some static vbl) and then have my JSP read it and display it.
    Any suggestions?

    I do not see any weblogic classes in the stack trace. So could this
    be something to do with tomcat?
    If you are just using the client side of the web services stack, you
    only need the Client.jar and webserviceclient.jar file in your war.
    Regards,
    -manoj.
    http://manojc.com
    "Stephen Zeng" <[email protected]> wrote in message
    news:3ef1d72c$[email protected]..
    >
    I have packed Client.jar, weblogic.jar, webservices.jar and jsp as aseperated
    war to call web sevice and run sucessfully in WLS7.0. But when I ran inTomcat
    4.0.1, I got the following error. I try set javax.xml.rpc.ServiceFactoryas context
    param in web.xml, but no use. <p>
    java.lang.ClassCastException <br>
    atjavax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.
    java:93)<br>
    atorg.apache.jasper.parser.ParserUtils.parseXMLDocument(ParserUtils.java:183)<
    br>
    atorg.apache.jasper.compiler.TldLocationsCache.processWebDotXml(TldLocationsCa
    che.java:165)<br>
    atorg.apache.jasper.compiler.TldLocationsCache.(TldLocationsCache.java:138)
    atorg.apache.jasper.EmbededServletOptions.(EmbededServletOptions.java:324)
    at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:266)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:852)
    atorg.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:615)
    atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
    va:214)
    atorg.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
    66)
    atorg.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    Stephen

  • Call a webservice and get back a value within an ESB...

    Hi!
    I'd like to call a webservice and get back a value from it within an ESB. But I don't know how.
    I think, I must create a routing service, then a SOAP service, but how can I get back the value from the webservice, which I called in the SOAP service?
    Or it is not possible to realize this within an ESB?
    Thank You very much!
    Viktor

    When you take a look at the Soa Orderbooking example you can see how it works. You create a webservice that accepts certain parameters and these are bundled into an object. This object, in case of the Soa Orderbooking example a 'PurchaseOrder', is described using an Xml Schema. The XML Schema is used to create the ESB with. Using this xsd the ESB knows which object it can expect and this object can be used inside your ESB or inside a bpel process.

  • JAX-WS Webservices and WSServlet

    Hi,
    I am new to Webservices and started using JAX-WS services in Netbeans 6.8. In some tutorials I have seen that we need to configure the com.sun.xml.ws.transport.http.servlet.WSServlet class in web.xml for the webservice to respond the the particular URL. But in Netbeans6.8 I checked the web.xml but donot find any such thing but still the webservice is running perfectly.
    Can anyone please explain if anything of the sort is required and if not,why is such thing mentioned in some of the tutorials? Also is services.xml or webservices.xml is required if we develop webservices in JAX-WS?
    Thanks

    Another question Kalyan,
    We also have experienced problems providing a mechanism for API for Web Service clients to set keystore per service for two-way SSL implementation, implementing SSL with certificate for each connection.
    We want to create a SSL conection with different keystore in each SSL connection.
    Do you know how can do this task?
    I've seen in http://docs.oracle.com/cd/E13222_01/wls/docs92/issues/known_resolved.html#wp1180999 Oracle WebLogic can do the following to solve it:
    WlsSSLAdapter adapter = new WlsSSLAdapter();
    adapter.setKeystore("./DemoIdentity.jks",
    *"DemoIdentityKeyStorePassPhrase".toCharArray(), "JKS" );*
    adapter.setClientCert("DemoIdentity","DemoIdentityPassPhrase".toCharArray());
    *adapter.setTrustManager( new TrustManager(){*
    public boolean certificateCallback(X509Certificate[] chain, int
    *validateErr){*
    return true;
    *}); weblogic.wsee.connection.transport.https.HttpsTransportInfo info = new*
    weblogic.wsee.connection.transport.https.HttpsTransportInfo(adapter);
    *SimpleImplService service = new SimpleImplService_Impl(args[0] +*
    *"?WSDL",info);*
    Simple port = service.getSimpleSoapPort();
    Stub stub = (Stub)port;
    stub._setProperty('weblogic.wsee.client.ssladapter', adapter);
    Are you agree with that lines?

  • Trouble with WebServices and LiveCycle Designer ES 8.2.1.3

    Hi,
    Eventually I want to create a rather complex form that users will use to create a Change Request in our ticketing system through a webservice exposed by the same ticketing solution.  However, right now I'm just attempting to create a very simple form as proof of concept.  It's connected to a webservice that accepts two inputs a string and a datetime and returns 4 or 5 values that aren't necessary to display on the form but would be nice.
    I've made the Data connection using the wizard and input the correct WSDL location and ES2 does see the webservice and pulls in the fields, including the execute button, that corresponds to the webservice.  However, once I populate the fields and attempt to execute the call with the pre-packaged button, nothing happens. No errors and the call is never sent to the server.  I've independantly verified that the webservice is reachable via the computer that I'm testing with and also that's it's accessible via others on the network.  What appears to happen is that the call to the webservice is never sent from the PDF.  If I change the execution option from Client to Server then I get an error message as such "Couldn't post data to''.  Which makes sense, I think, since I don't have a LiveCycle Server.
    Can anyone help?  What am I doing wrong?  I'd attach the file, but I don't seem to have the option.
    Thanks,
    CJ

    Are you testing in Acrobat or Reader. My guess is Reader.....Reader does not support Web Service calls on its own. You can Reader Extend the form to allow Reader to do the Web Service call. To be able to do that you will need LiveCycle Reader Extensions server to do the extending for you.
    For testing I suggest that you download the trial version of Acrobat (it does not have this restriction) and see if it satisfies your needs. Then you can decide if it is more economical to buy Reader Extensions server or buy copies of Acrobat for your users.
    Hope that helps
    Paul

Maybe you are looking for