Calling destroy()  in service() method

hi,
can we call destroy() method in service() method of servlets

It is possible, but you should not. The destroy() method is used by the servlet container as a signal that the servlet is being taken out of service. If you call destroy yourself, you could be setting your servlet into an inconsistant state. Calling destroy() does not make the container take the servlet out of service.

Similar Messages

  • Calling Web Service Methods in  Web Dynpro

    1. Created a Bean with get & set methods..Created a portal Service around it
    2. Created a Web Service and checked the same using EP Web Checker
    3. Created a Web Dynpro app having two screens (First one for setting String value and second  for getting string value)
    4. Configured the Web Service in the model...I can see the Request and Response in the Context...Mapped the request to first view and Response to Second View
    How do I call the Web Service method to Set the Paramter and how do I extract the value from the response?
    Rgds

    Hello Gulshan,
    Did you check this:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/webdynpro/tutorial on accessing an email web service - 6_0_.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/webdynpro/tutorial on accessing the car rental web service - 7.htm
    Best regards, Maksim Rashchynski.

  • TimeoutException - when calling web services method that opens a PDF

    I am updating a legacy program which uses Adobe Acrobat 7.0 Professional.  The idea is that the client will call web service methods, which handle opening a PDF, reading from or writing to the PDF, saving if necessary, and closing.  It then returns the data (if reading) to the client.
    The only issue with this that I'm having is that the client will pause for about 60 seconds, and throw a TimeoutException.
    I know that the method on the web services end is working, because I wrote a quick driver which calls the very same method, but it executes normally, and works perfectly.
    My question is basically, is there anything that would cause the client to hang/freeze when calling the web services method to do this task? Everything is running on my workstation, and I've debugged to see that the filename being passed is the same in both tests.
    Thanks!

    Thank you, I somehow missed seeing that subforum. I reposted it in that forum instead. This thread can be deleted/closed. Thanks!

  • Calling a WCF service from pl sql using a scheduler.

    Hi
    I am completely new to everything pl sql related. Right now, I need to call a WCF service method that returns a dataset. Then i need to take that dataset and insert the data into a table in the database. I want to do this by having a scheduler be called once a day.
    Does anyone have any code, examples etc?
    thanks

    And WCF stands for what? In what version of the product?
    First rule for someone new ... don't make the assumption that we can look over your shoulder or read your mind.
    What you seem to want is the built-in scheduler. The docs are at http://tahiti.oracle.com.
    Demos are at:
    http://www.psoug.org/reference/dbms_scheduler.html

  • Access custom service method

    in a jsf backing bean, i'm getting a reference to the application module (in order to call a custom service method and pass in parameters) in the following way:
    FacesContext fc = FacesContext.getCurrentInstance();
    ValueBinding vb = fc.getApplication().createValueBinding("#{data.LoginServiceDataControl.dataProvider}");
    LoginService service = (LoginService)vb.getValue(fc);
    I find myself rewriting this code over and over to get a reference to the application module. Researching this to find a better way, I saw a thread that suggested using the following code:
    MyAM appModule = (MyAM) getBindings().getDataControl().getApplicationModule();
    I've added the oracle.binding.BindingContainer bindings property to my backing bean, along with getters/setters. However, when i call getBindings(), I do not see getDataControl() as an option with the code insight dialog that pops up. Can someone tell me a clean/efficient way to access a custom service method and pass in appropriate parameters from a backing bean? Thanks.

    Jammer,
    It is not best practice to use the second way you suggest.
    If you are repeating writing code like that, the best thing is to create a helper class.
    For example, I use the helper class that I posted here:
    http://radio.weblogs.com/0118231/stories/2006/12/18/sourceForMyFavoriteElHelperClass.html
    Using that class, I do what you're doing with one line like this:
      LoginService ls = (LoginService)EL.get("#{data.LoginServiceDataControl.dataProvider}}");Alternatively, if you will be doing this a lot in your backing beans, one thing you can consider is creating yourself a base class for all your backing beans to inherit from that can contain helper methods to simply their individual code.
    For example, if you had a class like:
    public class MyBackingBeanBase {
      protected LoginService getLoginService() {
        return (LoginService)EL.get("#{data.LoginServiceDataControl.dataProvider}}");
    }Then any one of your backing beans for a specific page can extend this class and simply call getLoginService() to have typesafe access to the LoginService interface.

  • How to return a service method result to JSF Page w/ request-scope bean?

    From a .jspx page, I call a request-scoped backing bean which in turn calls an AM service method. The AM service method will return an object with multiple values. Based on the results, I will set the navigation case and then call another .jspx page.
    How can I pass the result values from the AM service method to the next .jspx page? Note I will only use request-scoped beans and do not want to use session-scope bean.
    Thanks.

    Ok - I can set a new processScope var in the backing bean and then reference it in the next .jspx page:
    backing bean:
    EL.setBCVal("#{processScope.newcustidhex}", svcresult);
    where EL is utility class
    public static void setBCVal(String expr, Object value) {
    FacesContext fc = FacesContext.getCurrentInstance();
    ValueBinding vb = fc.getApplication().createValueBinding(expr);
    vb.setValue(fc,value);
    return;
    }

  • Service method  of servlet  is called repetitively as response time is more

    Problem: when we try to retrieve data for a particular input, then the retrieve
    query takes longer time which is as expected i.e more than five minutes as our data ware house is large and the where clause is very complex. After 5 mins what happens is that the service
    method in the servlet call is made again and so the retrieve process as if it was
    triggered again,where as no one has triggered it. This happens every 5 mins and the overall
    process hangs forever.pl help if any answer
    thanks in adv.
    M.S.Chandrasekhar

    Hi ,
    Hello ,
    Try this code ,
    Class classObject = Class.forName("SecondServlet");
    SecondServlet servlet = (SecondServlet)classObject.newInstance();
    servlet.init(getServletConfig());
    System.out.println("Before calling the service() from TestServlet");
    servlet.service(req,res);
    servlet.destroy();
    Regards ,
    Venkat

  • Calling destroy() method explicitly.

    All we know,we can call destroy() method explicitly in servlets.Does the explicit call to destroy() will affect the default garbage collection mechanism?
    e.g
    public class MyServlet extends HttpServlet
                 public void service() {  destroy(); }
                public void destroy() {       }
            }After the code in service() gets executed,will the container can call destroy() again at server shutdown?? What are possible ill effects of calling destroy() explicitly ??

    It's just a Java method. There's nothing special about it at all in terms of Java programming. So it doesn't have any special effects on garbage collection or anything else.
    Likewise, if you call it then it executes the code in its body. If the container calls it again then the code in its body is executed again. Nothing more than that (and how would the server even know you called it?) That may be a bad thing or not, depending on the code.

  • What happening when we call destroy method

    when we are calling destroy method from init method why it will not destroy the servlet object?

    By default I think that the destroy method is empty and it dosend do anything unless you override it do do some specific work.
    Enve if you somehow destroy a servlet object successfully and make it somehow garbage collect but still when the next request arrives the servlet container will create a new instence and service it.
    Why do you want to destroy a servlet from init and if what you want is to avoid a servlet object from being used to service the request I think that you can throw an exception from init so the container will not use that object for servicing.

  • Calling https web service POST method from ABAP

    Hi all,
    I'm having some problems trying to call a credit card https web service from ABAP on 2004s SP11. I'm not using a proxy server and a call from a test https page on my local machine works fine. The page does not require a certificate.
    Do I need to do anything in particular to make https work ? I've done calls to http services without any problems. The only difference from a programming perspective as far as I know is the scheme 2 instead of 1, and the server protocol changed to HTTPS.
    All is fine until  I call method http_client->receive, at that point I get a return code of 1, http_communication_failure. 
    Your suggestions & contributions will be greatly appreciated.
    Cheers,
    Wouter.
    report zcreditcardtest .
    data: wf_user type string .
    data: wf_password type string .
    data: rlength type i,
          txlen type string  .
    data: http_client type ref to if_http_client .
    data: wf_string type string .
    data: wf_string1 type string .
    data: wf_proxy type string ,
          wf_port type string .
    selection-screen: begin of block a with frame .
    parameters: crcard(16) type c lower case default '4242424242424242',
                cvn(4)     type c lower case default '564',
                year(2)    type c lower case default '07',
                month(2)   type c lower case default '11',
                amount(10) type c lower case default '100.00',
                cukey(4)   type c lower case default 'AUD',
                order(10)  type c lower case default 'AB1322-refund'.
    selection-screen skip 1.
    parameters: user(50) lower case,
                password(50) lower case ,
                p_proxy(100) lower case default '' ,
                p_port(4) default ''.
    selection-screen: end of block a .
    at selection-screen output.
      loop at screen.
        if screen-name = 'PASSWORD'.
          screen-invisible = '1'.
          modify screen.
        endif.
      endloop.
    start-of-selection .
      clear wf_string .
      concatenate
      'order.type=capture&customer.username=SOMEUSER'
      '&customer.password=SOMEPASSWORD'
      '&customer.merchant=SOMEMERCHANT'
      '&card.PAN=' crcard
      '&card.CVN=' cvn
      '&card.expiryYear=' year
      '&card.expiryMonth=' month
      '&order.amount=' amount
      '&customer.orderNumber=' order
      '&card.currency=' cukey
      '&order.ECI=IVR'
      '&customer.captureOrderNumber=' order
      '&order.priority=1'
      '&message.end=null'
      into wf_string .
      break-point.
      clear :rlength , txlen .
      rlength = strlen( wf_string ) .
      move: rlength to txlen .
      clear: wf_proxy, wf_port .
      move: p_proxy to wf_proxy ,
            p_port to wf_port .
      call method cl_http_client=>create
        exporting
          host          = 'api.somewhere.com'
          service       = '80'
          scheme        = '2'                        "https
          proxy_host    = wf_proxy
          proxy_service = wf_port
        importing
          client        = http_client.
      http_client->propertytype_logon_popup = http_client->co_disabled.
      wf_user = user .
      wf_password = password .
    * proxy server authentication
      call method http_client->authenticate
        exporting
          proxy_authentication = 'X'
          username             = wf_user
          password             = wf_password.
      call method http_client->request->set_header_field
        exporting
          name  = '~request_method'
          value = 'POST'.
      call method http_client->request->set_header_field
        exporting
          name  = '~server_protocol'
          value = 'HTTPS/1.0'.
      call method http_client->request->set_header_field
        exporting
          name  = '~request_uri'
          value = '/post/CreditCardAPIReceiver'.
      call method http_client->request->set_header_field
        exporting
          name  = 'Content-Type'
          value = 'application/x-www-form-urlencoded; charset=UTF-8'.
      call method http_client->request->set_header_field
        exporting
          name  = 'Content-Length'
          value = txlen.
      call method http_client->request->set_header_field
        exporting
          name  = 'HOST'
          value = 'api.somewhere.com:80'.
      call method http_client->request->set_cdata
        exporting
          data   = wf_string
          offset = 0
          length = rlength.
      call method http_client->send
        exceptions
          http_communication_failure = 1
          http_invalid_state         = 2.
      call method http_client->receive
        exceptions
          http_communication_failure = 1
          http_invalid_state         = 2
          http_processing_failed     = 3.
      if sy-subrc <> 0.
        message e000(oo) with 'Processing failed !'.
      endif.
      clear wf_string1 .
      wf_string1 = http_client->response->get_cdata( ).
    * Further Processing of returned values would go here.

    Well, finally got this running !
    First of all I needed to download SAP Cryptographic Software and install it on the Web Application Server. Added some parameters to the profile, then set up some nodes in strust. Note 510007 describes the full process.
    I then installed the certifcate I needed by opening the website in internet explorer and exporting it to a CER file and then importing it into the SSL client (Anonymous). The blog from Thomas Yung, "BSP a Developer's Journal Part XIV - Consuming WebServices with ABAP" describes the process of exporting and importing certificates.
    I then had to start the HTTPS service on my NW 2004s ABAP preview edition SP11. I set this up for port 443.
    /osmicm --> GOTO --> SERVICES --> SERVICE --> CREATE
    Then finally, the program needed a few changes :
      call method cl_http_client=>create
        exporting
          host          = 'api.somewhere.com'
          service       = '443'                       " <<-----  443 NOT 80
          scheme        = '2'                        "https
          ssl_id        = 'ANONYM'              " <<----- SSL_ID Added
          proxy_host    = wf_proxy
          proxy_service = wf_port
        importing
          client        = http_client.
    and further in the program (thanks Andrew !) :
      call method http_client->request->set_header_field
        exporting
    *   name  = '~server_protocol'             " <<<--- DELETE
          name  = '~request_protocol'         " <<<-- INSERT must be request
          value = 'HTTPS/1.0'.
    and presto, we can now consume a https webservice via a POST method from within an ABAP program ! Nice.... Can I give myself 10 points ?

  • Calling a asynchronous web service method

    I am designing a game using web services(asp.net)
    one player write to array and waite till other modify that
    array.Assume i am player 1 and wait till player 2 modify array
    in web service.Writing to array part is working.But reading part
    is not working .I implement asynchronous call to web service
    call reLabelAsync and pass argument 1.That means i am player 2
    modify the array and return to my program onces other player(player 1)
    modify the array.And modify my program according his updates.
    private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {                                    
    jLabel1.setText("O");//this my player
    // jProgressBar1.setIndeterminate(true);
    writeArra(2,1);//this is working
    reLabelAsync(1);
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new NewJFrame().setVisible(true);
    public void reLabelAsync(int player){
    // Call Web Service Operation(async. callback)
    as.Service service = new as.Service();
    as.ServiceSoap port = service.getServiceSoap();
    // TODO initialize WS operation arguments here
    javax.xml.ws.AsyncHandler<as.ReLabelResponse> asyncHandler = new javax.xml.ws.AsyncHandler<as.ReLabelResponse>() {
    public void handleResponse(javax.xml.ws.Response<as.ReLabelResponse> response) {
    // java.awt.EventQueue.invokeLater(new Runnable() {
    // public void run() {
    String s;
    try {
    // TODO process asynchronous response here
    s = response.get().reLabelResult();
    s=removeTags(s);//this to remove tags.working
    System.out.println(s);
    if (s=="1"){
    jLabel1.setText("X");//update my program
    else{
    jLabel2.setText("X");//update my program
    } catch(Exception ex) {
    // TODO handle exception
    jProgressBar1.setIndeterminate(false);
    can some one please help me. I try to call asynchronous method in loop.
    I think it's the way to do this. But it didn't work.Thanks..

    Looking a bit at your history here... this is the fourth go around at least for dancing around this question.
    To summarise the advice given to you previously "Please stop blathering on about asynchonous blah blah and start by sending and recieving a message correctly"
    You really seem way over your head here. An empty catch block is a bad bad bad sign. You can run before you can walk and right now you're having problems crawling.

  • Service method of servlet is called repeatedly by 9ias

    Problem: when we try to retrieve data for a particular input, then the retrieve
    query takes longer time which is as expected i.e more than five minutes as our data ware house is large and the where clause is very complex. After 5 mins what happens is that the service
    method in the servlet call is made again and so the retrieve process as if it was
    triggered again,where as no one has triggered it. This happens every 5 mins and the overall
    process hangs forever.pl help if any answer
    thanks in adv.
    M.S.Chandrasekhar

    Hi MS,
    My guess (and it can only be a guess, I'm afraid, based on the [lack
    of] information you have supplied) is that you are hitting some sort
    of timeout value, which is determined by a setting in one of your
    configuration files.
    So as Prasad has already mentioned, more information would help us
    to help you.
    Good Luck,
    Avi.

  • HTTP-Post/Get method of calling the query service allows us to build URL

    Hi,
    I am new to webservices.i have requirement that, using a HTTP-Post/Get method of calling the query service that allows us to build an URL and if we call that url it wil populate XML object.i need query LDAP server for getting users manager details ,in request query we wil pass user details.thanks in advance..

    check same issue in java forum and this link:
    http://jakarta.apache.org/commons/httpclient/methods/post.html

  • Calling a service method from a DataAction

    Hello!
    I'm trying to call a service method from a DataAction, cobbling ideas from the Oracle JDeveloper 10g Handbook and the Oracle ADF Data Binding Primer.
    I have created a service method and exposed it using the client interface node of the application module editor. It is called "process()" and it now appears in the data control palette under MyAppDataControl->Operations (just above the built-in action bindings Commit and Rollback). As part of this procedure, I modified MyAppImpl.java and put the process() method there.
    I don't want to call process() by dragging and dropping it onto a Data Action because depending on the outcome, I want to branch to different pages. process() returns an int that will tell me where to branch. Thus, I am trying to call it from an overridden invokeCustomMethod() method of the lifecycle of a DataAction, where I can get the int, create a new ActionForward, and set it in the DataActionContext. (If I'm barking up the wrong tree, let me know!)
    So, I need to call MyAppImpl.process() from within the invokeCustomMethod() method of my DataAction. Looking at the class declaration, I noticed that it extends ApplicationModuleImpl. I figure that, if I can get the ApplicationModule, I can cast it to MyAppImpl and call the process() method. Unfortunately, that doesn't work. When I got the application module, I checked the class and it's oracle.jbo.common.ws.WSApplicationModuleImpl. I tried casting it and got a class cast exception.
    Here's the code I'm using:
    protected void invokeCustomMethod(DataActionContext actionContext) {
    BindingContext ctx = actionContext.getBindingContext();
    DCDataControl dc = ctx.findDataControl("MyAppDataControl");
    log.debug("invokeCustomMethod(): dc.getClass().getName()=" + dc.getClass().getName()); // result is: oracle.jbo.uicli.binding.JUApplication
    ApplicationModule am = null;
    MyAppImpl myAppImpl = null;
    int processResult = 0;
    if (dc instanceof DCJboDataControl) { // this is true
    am = dc.getApplicationModule();
    log.debug("invokeCustomMethod(): am.getClass().getName()=" + am.getClass().getName()); // result is: oracle.jbo.common.ws.WSApplicaitonModuleImpl
    if (am instanceof ApplicationModuleImpl) { // this is false
    log.debug("invokeCustomMethod(): am is an instanceof ApplicationModuleImpl.");
    if (am instanceof MyAppImpl) { // this is false
    log.debug("invokeCustomMethod(): am is an instanceof MyAppImpl.");
    processResult = ((MyAppImpl)am).process();
    log.debug("invokeCustomMethod(): processResult=" + processResult);
    super.invokeCustomMethod(actionContext);
    What am I doing wrong? Can anyone explain the different class hierarchies and why my application module isn't the class I'm expecting?
    Thanks,
    -Anthony Carlos

    Georg,
    it was in the javadoc of oracle.adf.model.binding.DCBindingContainer
    http://www.oracle.com/webapps/online-help/jdeveloper/10.1.2/state/content/vtTopicFile.bc4jjavadoc36%7Crt%7Coracle%7Cadf%7Cmodel%7Cbinding%7CDCBindingContainer%7Ehtml/navId.4/navSetId._/
    However, I see it's not the case in other sub-classes of JboAbstractMap like DCControlBinding and DCDataControl.
    Weird... I'm keeping you informed if I find more information.
    Regards,
    Didier.

  • Serialization error when calling web service method

    Hi,
    In JDeveloper 10.1.3.1, I'm working on an EJB that will be deployed as a web service. There is a method in the EJB that is defined to return a generic Object, but in the implementation, it really returns one of several possible specialized bean objects. I can deploy the EJB successfully to IAS 10.1.3.1.
    I created a web service proxy from the wsdl that was generated from deploying the EJB. Using the proxy, I try to call the EJB method and cast the method's return value to the bean object I know should be returned. However, I get an error like this:
    java.rmi.ServerException:
    start fault message:
    Internal Server Error (serialization error: no serializer is registered for (class com.test.TestBean, null))
    :end fault message
    Does anyone know how this serialization error can be resolved? If I change the web service method signature to return the bean object that is actually being returned (instead of Object), then it works fine. But I want to be able to define the method to return a generic Object because I plan to make the method flexible enough to return several different types of bean objects. Whenever the client calls the method, it will know what is the actual object being returned and I had planned to cast the return value to its actual class.
    Thanks for any ideas.

    Well, I think so... I've followed all the steps, and my merged WSDL file seems like the one in page 12...
    Any suggestion, please?
    Thank you,

Maybe you are looking for