Servlet problem: (Shay Shmeltzer / Steve Muench / Frank Nimphius)

Dear sirs... (Shay Shmeltzer / Steve Muench / Frank Nimphius)
I hope you can give me an answer.
I created an ADF UIX application using JDeveloper 10.1.2. I have created a servlet to download files. my problem is that it works just fine using jdeveloper, while when deployed into oracle application server it causes errors.i am calling this servlet by storing filename and data in the session, then sending redirect request to the browser.
the servlet code is:
package view;
import java.io.OutputStream;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.PrintWriter;
import java.io.IOException;
public class FileDownload extends HttpServlet
public void init(ServletConfig config) throws ServletException
super.init(config);
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
try
String DownloadFileName=(String) request.getSession().getAttribute("downloadfilename");
byte data[]=(byte []) request.getSession().getAttribute("downloadfiledata");
if (DownloadFileName==null)
return;
request.getSession().removeAttribute("downloadfilename");
request.getSession().removeAttribute("downloadfiledata");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename="+DownloadFileName);
response.setContentLength(data.length);
OutputStream OS=response.getOutputStream();
OS.write(data);
catch (Exception e)
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
try
String DownloadFileName=(String) request.getSession().getAttribute("downloadfilename");
byte data[]=(byte []) request.getSession().getAttribute("downloadfiledata");
if (DownloadFileName==null)
return;
request.getSession().removeAttribute("downloadfilename");
request.getSession().removeAttribute("downloadfiledata");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename="+DownloadFileName);
response.setContentLength(data.length);
OutputStream OS=response.getOutputStream();
OS.write(data);
catch (Exception e)
and the error is :
java.lang.IllegalStateException: Response has already been committed
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.EvermindHttpServletResponse.resetBuffer(EvermindHttpServletResponse.java:1902)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:213)
this error is stored in the log file. if i am running this code from JDeveloper I can download the files using either FireFox or Internet Explorer without any error.
but if i am running this code using Oracle Application Server 10g Realse 2, i can not download the files using either FireFox or IE.
so i created another solution, instead of redirecting from a datapage into the servlet, i put the following code in a data page as follows:
public void onDownload(DataActionContext ctx)
String DownloadFileName=getfilename();
byte data[]=getdata();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename="+DownloadFileName);
response.setContentLength(data.length);
OutputStream OS=response.getOutputStream();
OS.write(data);
OS.flash();
this time the application works fine when deployed into Oracle Application Server if you use FireFox, but if you use IE, it causes problem, i can not save the file or view it.
what is the problem?
how can i fix this?
i am certin that the second method is not correct and it should not be used.
thanks for everyone in advance
best regards

Dear Sir...
Thanks alot for your replay
regarding the reset method. Itried it and it does not give any good.
I discovered the following problem:
If you are redirecting from with struts dataaction page to the servlet, you get the error
Otherwise if you called the servlet from directly or redirected to a servlet from within a servlet, you get no problem.
can any one help me please??
Is it possible that the problem is in IE itself? The file is downloaded perfectly fine with firefox(but the error log still appear)?
best regards

Similar Messages

  • Have problem wiht "Deploying The SRDemo on WebLogic Servers"-Shay Shmeltzer

    hi :
    I have read "Deploying The SRDemo ADF Sample Application on WebLogic Servers " Written by Shay Shmeltzer
    in the link :http://www.oracle.com/technology/products/jdev/howtos/weblogic/deployingwls.html
    i follow the step in the file :but i can't find the "SRDemoWebLogic.deploy"
    Please help me ,thank you very much.
    Shay Shmeltzer:can you help me?Thank you.

    Shay Shmel:
    i have find the some of the difference .
    the Oracle ADF SRDemo Application (ADF BC Version) version from "Help > Check for Updates" is 10.1.3.0.82.
    the Oracle ADF SRDemo Application (ADF BC Version) version from your link is 10.1.3.0.36.2.
    i always think the higer version is bettter the lower one,but this make an exception

  • Displaying Images in ADF/JSF: Error Using Steve Muench's Example #69

    Hi,
    I've been able to load images into the database using Steve Muench's Example 69. However, I'm having issues displaying the images.
    Jdeveloper: 10.1.3.3.0
    Database: 10gR2 with ORDSYS active.
    I'm getting the following error:
    07/08/20 12:09:20.993 JSFOrdImageExample-ViewController-webapp: Servlet error
    java.lang.NullPointerException
         at oracle.ord.html.OrdPlayMediaServlet.renderContent(OrdPlayMediaServlet.java:403)
         at oracle.ord.html.OrdPlayMediaServlet.deliver(OrdPlayMediaServlet.java:263)
         at oracle.ord.html.OrdPlayMediaServlet.doGet(OrdPlayMediaServlet.java:204)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:623)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.3.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:613)I'm not sure why I'm getting a NullPointerException...
    Previous to this, I had to include the bc4jhtml.jar file as a library in application.xml, and I've tried using the two bc4jhtml.jar files, but neither one seems to work.
    I'm thinking that there must be something simple that I'm missing with the servlet setup...
    Thanks!
    Kenton

    I tried the wayback machine, but unfortunately, it doesn't cache the SWF files either :( I do have a copy of some (ok one) of Steve's old videos (the one that shows how to do a dropdown list in an editable table, back before it was easy to do), but unfortunately, none of the search ones.
    John

  • Issue with Steve Muench's latest eg. How to resolve it?

    I have gone through the example "Compelling Dialog" By Steve Muench. Which is available at below link
    "http://www.oracle.com/technology/oramag/oracle/10-jul/o40frame.html";
    This example is perfectly good even great. There are two issues with this example which i have found and need a solution for those
    1. Any LOV or error message that opens from the popup is confined within the pop-up window. Resulting in ugly looks and a tedious way to maneuver. How to work this out?
    2. I don't want to give any width or height for this popup. It should adjust as per the required width of the fields.
    I have issues with above mentioned two problems. Can any of you come up with the solution of above two problem.
    I am working with JDEV11.1.1.2.0 with ADF11g
    Thank You in advance

    I have had exactly the same problem now with two mini iPads.  Everything was tried; 1) restarting; 2) restoring factory settings etc.  NONE worked.  Eventually Apple agreed to replace it.  I have had the replacement now for two to three months and exactly the same thing is happening again. So off to Apple tomorrow to get another replacement.
    I am quite a heavy user of the iPad so wonder if this is something to do with the fault.
    It is so frustrating as sometimes reset works, and then after 10/20/30/40 minutes (you pick) it goes unstable again.

  • For those who used the solution by Steve Muench,Dynamic JDBC Credentials

    hi every body
    is there any body used the solution by Steve Muench, Dynamic JDBC Credentials .
    thanks
    Yaser
    Edited by: 842127 on Mar 13, 2011 9:24 AM

    Hi,
    in the login page i have a button to make login which work perfect
    How can you say ?
    Whenever i click any control in the login page i see this message invalid username/passowrd . i do not why i face this problem ?I have tried changing the username,password and database using http://www.oracle.com/technetwork/developer-tools/jdev/dynamicjdbchowto-101755.html which works perfect.
    refer my thread
    Changing the database for a particular user session
    Regards,
    Santosh
    Edited by: Santosh Vaza on Mar 17, 2011 11:29 AM

  • Error while running a sample XSQL from XML bible book from Steve Muench

    I am running the sample XSQL code from Chapter 03, which deals with exporting XML and transform into SQL statements. I'm using JDeveloper and I believe I've setup libraries and HTML root directory etc. I'm getting the following error:
    XSQL-011 Error processing XSLT stylesheet.
    XSL-1009 Attribute xsl:version not found in xsl:stylesheet.
    Can I get some help in fixing this error?
    Thanks a lot,
    Murali
    null

    Hi,
    This is the example I took from Steve Muench's book.
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text"/>
    <xsl:template match="/">
    </xsl:template1>
    </xsl:stylesheet>
    As you can see, I do have the version=1.0 attribute. Why is it complaining still?

  • Error while running the tutorial posted by Steve Muench

    Hi Guys,
    I have been trying to run the tutorial published by Steve Muench on October 9 2006. I've followed all the steps as specified in the tutorial.
    Chapter 3.4:Run the Application, should supposed to compile and run my application using stand-alone embedded OC4J. It was compiled witout any error. But gave me the following error while running the application.
    [Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
    C:\oracledevday\jdeveloper\jdev\system\oracle.j2ee.10.1.3.39.14\embedded-oc4j\config>
    C:\oracledevday\jdeveloper\jdk\bin\javaw.exe -client -classpath C:\oracledevday\jdeveloper\j2ee\home\oc4j.jar;C:\oracledevday\jdeveloper\jdev\lib\jdev-oc4j-embedded.jar -Xverify:none -DcheckForUpdates=adminClientOnly -Doracle.application.environment=development -Doracle.j2ee.dont.use.memory.archive=true -Doracle.j2ee.http.socket.timeout=500 -Doc4j.jms.usePersistenceLockFiles=false oracle.oc4j.loader.boot.BootStrap -config C:\oracledevday\jdeveloper\jdev\system\oracle.j2ee.10.1.3.39.14\embedded-oc4j\config\server.xml
    [waiting for the server to complete its initialization...]
    2006-10-12 22:47:17.250 NOTIFICATION JMSServer[]: OC4J JMS server recovering transactions (commit 0) (rollback 0) (prepared 0).
    2006-10-12 22:47:17.265 NOTIFICATION JMSServer[]: OC4J JMS server recovering local transactions Queue[jms/Oc4jJmsExceptionQueue].
    2006-10-12 22:47:22.609 ERROR J2EE HTTP-00004 Internal error raised tyring to instantiate web-application: webapp defined in web site OC4J 10g (10.1.3) Default Web Site. Application: datatags does not exist. Error creating Web application: webapp
    Ready message received from Oc4jNotifier.
    Embedded OC4J startup time: 14015 ms.
    Target URL -- http://10.10.10.10:8988/MyDemo/faces/pages/EmployeesTable.jspx
    06/10/12 22:47:22 Oracle Containers for J2EE 10g (10.1.3.1.0) initialized
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(javax.faces.Short,null)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(null,java.lang.Short)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(javax.faces.Byte,null)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(null,java.lang.Byte)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(javax.faces.Integer,null)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(null,java.lang.Integer)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(javax.faces.Long,null)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(null,java.lang.Long)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(javax.faces.Float,null)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(null,java.lang.Float)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(javax.faces.Double,null)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(null,java.lang.Double)
    22:47:26 WARN (Digester) -[ValidatorRule]{faces-config/validator} Merge(javax.faces.LongRange)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(javax.faces.DateTime,null)
    22:47:26 WARN (Digester) -[ConverterRule]{faces-config/converter} Merge(javax.faces.Number,null)
    22:47:27 WARN (Digester) -[NavigationRuleRule]{faces-config/navigation-rule} Merge(*)
    22:47:27 WARN (Digester) -[NavigationRuleRule]{faces-config/navigation-rule} Merge(*)
    22:47:27 WARN (Digester) -[NavigationRuleRule]{faces-config/navigation-rule} Merge(/pages/EmployeesTable.jspx)
    22:47:27 WARN (Digester) -[NavigationRuleRule]{faces-config/navigation-rule} Merge(/pages/DepartmentsTable.jspx)
    22:47:27 WARN (Digester) -[NavigationRuleRule]{faces-config/navigation-rule} Merge(/pages/LocationsTable.jspx)
    22:47:27 WARN (Digester) -[NavigationRuleRule]{faces-config/navigation-rule} Merge(/pages/CountriesTable.jspx)
    22:47:27 WARN (Digester) -[NavigationRuleRule]{faces-config/navigation-rule} Merge(/pages/RegionsTable.jspx)
    22:47:27 WARN (Digester) -[NavigationRuleRule]{faces-config/navigation-rule} Merge(/pages/JobsTable.jspx)
    2006-10-12 22:47:29.546 TRACE Setting JAZN Config property ...
    2006-10-12 22:47:29.625 NOTIFICATION ---- JAZNSecurityContext.getUserPrincipal(): NULL
    2006-10-12 22:47:32.015 NOTIFICATION ADF Faces is running with time-stamp checking enabled. This should not be used in a production environment. See the oracle.adf.view.faces.CHECK_FILE_MODIFICATION property in WEB-INF/web.xml
    22:47:32 DEBUG (JhsPageLifecycle) -Executing prepareModel, page=/pages/EmployeesTable.jspx, pagedef=EmployeesPageDef
    22:47:32 DEBUG (JhsNavigationHandlerImpl) -Executing checkRoles
    22:47:32 DEBUG (BreadcrumbStack) -Adding breadcrumb to stack: "Employees" (/pages/EmployeesTable.jspx)
    22:47:32 DEBUG (JhsPageLifecycle) -Executing prepareRender, page=/pages/EmployeesTable.jspx, pagedef=EmployeesPageDef
    22:47:32 DEBUG (BreadcrumbStack) -Breadcrumb already on stack; rolling back the stack
    22:47:32 DEBUG (BreadcrumbStack) -Adding breadcrumb to stack: "Employees" (/pages/EmployeesTable.jspx)
    2006-10-12 22:47:34.468 ERROR
    Please advise and let me know if you need any other information from me.
    Thanks,
    Magesh.

    Thanks Steven.
    That makes sense. Is there anything I can do to make this demo work without de-installing 10.1.3.1 Preview? Or If I also install 10.1.3.0.4 with SU5 on another folder, does that affect my 10.1.3.1 Preview version?
    I'm using 10.1.3.1 Preview version to learn Oracle's SOA suite.
    Thanks again,
    Magesh.

  • Dynamic JDBC credentials example application from Steve Muench

    Apologies for this newbie question...but I'm trying to understand the Dynamic JDBC credentials example application from Steve Muench:
    http://radio.weblogs.com/0118231/stories/2004/09/23/notYetDocumentedAdfSampleApplications.html#14
    I think I understand most of it but the one bit I dont understand is why it customizes the ADF Page Lifecycle (DynamicJDBCADFPhaseListener, DynamicJDBCPageLifecycle, DynamicJDBCPageLifecycleContext).
    Can anyone explain to an ex-forms developer why this code is there?
    I'm also trying to work out a way for the session to be invalidated when the user logins again
    e.g. a user logins, he doesnt use the logout function but uses the back button to go back to the login page. when he logs in with another set of credentials, would a new session start or as i supsect, it would use the original login credentials?
    Thanks

    You can ignore those three classes in the example. They are not related to the dynamic credential solution, and must have been left over from some other example I evolved into what you see. Sorry to have cluttered up the implementation with stuff that isn't really contributing to the actual solution. DOH!

  • Dynamic JDBC Credentials: Example 14 from  Steve Muench

    Hi,
    Im trying example from Steve Muench, it's working fine.
    But I have some questions about it.
    If I want to connect to the db with a wrong username/password I see that it tries 5 times to connect to the database, Where Can I change this number of retries?
    Before the password should be used, it must be encrypted. I have two encryption methods, wich one should be used varies.
    If the first encryption gives a wrong result(no login) the second encryption should be used.
    What is a good place to encrypt the password?
    I was thinking of DynamicJDBCSessionCookieFactory because that is called more than 1 time if login fails.

    I placed my code to encrypt now in the DynamicJDBCBindingFilter.
    This how I try to connect twice
    catch (Exception e) {
                        if (isFailedLoginException(e)) {
                            System.out.println("Poging="+poging);
                            attemt+=1;
                            if (attemt<3){
                                FacesContext    fctx = FacesContext.getCurrentInstance();
                                ExternalContext ectx = fctx.getExternalContext();
                                HttpSession session2 = (HttpSession)ectx.getSession(false);
                                if (session2 != null) {
                                  session2.invalidate();
                                this.doFilter(request,response,chain);
                            }else{
                                signalFailedLoginAttempt(svrRequest);
                                redirectToLoginPageOnLogonError(request, response);
                        }As you can see I invalidate the session and then I call doFilter again.
    This is almost working, but when I'm forwarded to main.jsp with the table I see access denied istead of the table, I also get this error on the Jdev console:
    08/03/25 15:09:14 java.lang.IllegalStateException: Session was invalidated
    08/03/25 15:09:14      at com.evermind.server.http.EvermindHttpSession.setAttribute(EvermindHttpSession.java:151)
    08/03/25 15:09:14      at test.DynamicJDBCBindingFilter.doFilter(DynamicJDBCBindingFilter.java:84)
    08/03/25 15:09:14      at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
    08/03/25 15:09:14      at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
    08/03/25 15:09:14      at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
    08/03/25 15:09:14      at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
    08/03/25 15:09:14      at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
    08/03/25 15:09:14      at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
    08/03/25 15:09:14      at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
    08/03/25 15:09:14      at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
    08/03/25 15:09:14      at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
    08/03/25 15:09:14      at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
    08/03/25 15:09:14      at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
    08/03/25 15:09:14      at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    08/03/25 15:09:14      at java.lang.Thread.run(Thread.java:595)
    The session is invalidated, but If I don't to that it looks like that the new login credentials are not used. Because then I go back to the login page and see the message that the login\password was not correct.
    Someone who knows what I do wrong? I realy need to know this!!
    Message was edited by:
    KdeGraaf

  • Q&A interview with Steve Muench published

    Steve Muench has been kind enough to allow me to web-publish a Q&A interview with him that I wrote and was published in 2006 AUSOUG Summer Foresight magazine edition.
    The article has been published here for your reading pleasure:
    http://one-size-doesnt-fit-all.blogspot.com/
    Regards,
    CM.

    nice and keep up the good work
    fadi hasweh
    http://oracle-magic.blogspot.com/
    Oracle is not Magic, it just takes years of experience

  • Example 5-11 in Steve Muench's Oracle-XML book

    Hi,
    Anyone who studied the book Building Oracle XML Applications by Steve Muench (O'Reilly), could clarify this query. When I tried to execute Example 5-11:Test,Extract and Retrieve an XPath Expression Value (page 132) I get the following error:
    PLS-00307: too many declarations of 'SELECTNODES' match this call (complete source code given at the end of this message).
    Could you please explain why this error is occurring.
    Best wishes,
    Balu
    Code
    SQL> SET SERVEROUTPUT ON
    SQL> DECLARE
    2 doc xmldom.DOMDocument;
    3 approvers xmldom.DOMNodeList;
    4 PROCEDURE p(msg VARCHAR2, nl BOOLEAN := TRUE) IS BEGIN
    5 dbms_output.put_line(msg);IF nl THEN dbms_output.put(CHR(10)); END IF;
    6 END;
    7 FUNCTION yn(b BOOLEAN ) RETURN VARCHAR2 IS
    8 BEGIN IF b THEN RETURN 'Yes'; ELSE RETURN 'No'; END IF; END;
    9 BEGIN
    10 doc := xml.parse(BFileName('XMLFILES','claim77804.xml'));
    11
    12 p('What is the value of the Policy number for this claim?');
    13 p( xpath.valueOf(doc,'/Claim/Policy') );
    14
    15 p('Does this claim have any settlement payments over $500 approved by JCOX?');
    16 p(yn(xpath.test(doc,'//Settlements/Payment[. > 500 and @Approver="JCOX"]')));
    17
    18 -- Demonstrate Saving and Re-getting the XML document
    19 xmldoc.save('claim77804',doc);
    20 doc := xmldoc.get('claim77804');
    21
    22 p('What is XML document fragment contained by the <DamageReport> element?');
    23 p(xpath.extract(doc,'/Claim/DamageReport'));
    24
    25 p('Who approved settlement payments for this claim?');
    26 approvers := xpath.selectNodes(doc,'/Claim/Settlements/Payment');
    27 FOR j IN 1..xmldom.getLength(approvers) LOOP
    28 p(xpath.valueOf(xmldom.item(approvers,j-1),'@Approver'),nl=>FALSE);
    29 END LOOP;
    30 xml.freeDocument(doc);
    31 END;
    32
    33 /
    DECLARE
    ERROR at line 1:
    ORA-06550: line 26, column 16:
    PLS-00307: too many declarations of 'SELECTNODES' match this call
    ORA-06550: line 26, column 3:
    PL/SQL: Statement ignored

    I tried the wayback machine, but unfortunately, it doesn't cache the SWF files either :( I do have a copy of some (ok one) of Steve's old videos (the one that shows how to do a dropdown list in an editable table, back before it was easy to do), but unfortunately, none of the search ones.
    John

  • BeginRequest on previously used DataControls (for Oracle guys/Steve Muench)

    Hi,
    We are using JDeveloper 10g (10.1.2.1.0) and ADF BC+JSP in our application.
    In our developer team, in tuning tasks we have detected, that all DataControls that were been used be the user in the past (same session) are activated each request (beginRequest) that user realizes, activated and taking an AM out of the pool and maybe this AM not will be used in this request, and maybe neither in any other future request from the user. Then we have that each AM that were used in the past by the user, must will be activated/passivated if pool is small size limited or pool must will be oversized (server big load situations).
    When the user ends using this AM, we call its resetState method, like is recommended by Steve Muench at
    Re: application modules and a logoff event (for Steve Muench)
    but the next ones user requests will make the ADFBindingFilter call beginRequest on all previous AM anyway. Seems that initially the user BindingContext contains references to DataControls (DCDataControlReference) but when the user uses/gets an DataControl its reference is replaced with the real DataControl instance (DCJboDataControl), and seems that DCJboDataControl.beginRequest, gets an AM instance out of pool, I think that this will make that the AM will not be expired/cleared by the PoolMonitor.
    We have hard coded a test in our application that seems to work with the normal ADF and application lifecycle (but I don't like this test too much, too much low level coding), basically the DataControl is replaced by its reference when the user ends using it.
    And now the questions. Is it a normal situation? Why we must suppouse that all the AM/DataControl previously used by the user will be used in the current request? There's a normal way to do this, maybe a method that when the DataControl is marked with a flag releases it till the next time user needs it (I'd try release(int) and it didn't works in this way)? Any suggestions/explanations about this?
    Comments will be very well received. Thanks in advanced.

    Hi Steve,
    firstly, thank you very much for your so fast answer.
    Ok, I'll open a TAR in metalink. I've searched for the bug# 4566186 in metalink, but I didn't found nothing in metalink for this bug number.

  • Erroneous link to blog Steve Muench

    Don't know if this is the right place to tell, but on http://www.oracle.com/technology/tech/java/index.html the link called "Steve Muench" actually points to Chris Chalk's blog.

    It is; thanks for letting us know.
    Cheers, OTN

  • Steve Muenchs file upload sample (No. 69) does not work with JDev 10.1.3.1

    Hi,
    I installed and started Steves sample about uploading and storing OrdImage types (http://otn.oracle.com/products/jdev/tips/muench/jsfordimage/JSFOrdImageExample.zip).
    When I try to upload a file I get an exception:
    java.io.EOFException: Per-request disk space limits exceeded.
         at oracle.adfinternal.view.faces.webapp.UploadedFileImpl.loadFile(UploadedFileImpl.java:187)
         at oracle.adfinternal.view.faces.webapp.UploadedFileProcessorImpl.processFile(UploadedFileProcessorImpl.java:96)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doUploadFile(AdfFacesFilterImpl.java:247)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:163)
         at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:106)I have found other postings concerning uploading a file with JDev10.1.3.1 (af:inputFile bug JDev10131 production ignores Per-request disk space limit
    Is it a bug with JDev 10.1.3.1? Any workaround available?
    I'm using JDev 10.1.3.1 on WinXP.
    Thanks,
    Markus

    I managed to correct this problem.
    The situation is the following:
    A CRUD page (Example: userList.jsp and userForm.jsp).
    The first page there is a af:table with tableSelectOne and a Edit button. (theres also other components, like af:menuBar and af:form, html, body and head)
    On submit, the backing bean(requestScope) gets the selected object (table.getSelectedRowData()), copy the values to the form fields and send (redirect=false) to the form page.
    When i try to update, the fileupload does not work and ignores the valueChangeListener. All the other fields are updated correctly.
    The form page is used to do Inserts and the upload works correctly.
    The problem is, when you redirect (redirect=false) from userList.jsp (usesFileUpload="false")
    to the other page, that uses the upload, the form page does not get the enctype="multipart/form-data"
    To solve it, put usesUpload="true" in both page , and you will get enctype="multipart/form-data", and upload to work.
    Changing components, the af:menuBar has a similar problem.
    I got a menubar with 2 goMenuItem.
    On each page the corresponding goMenuItem has selected="true".
    On redirect, from list page to form page, the selected goMenuItem is the one on the ListaPage, and not the form page! It only changes if I click on the tab I want!

  • Mildet connect to oracle DB using servlet problem ,help please

    hi guys i have a problem am tring to connect my midlet to databse through midlet but i don`t know what is the problem so far the midlet already connect to my servlet url but the servlet cant read the parameters to open the connection for database
    my servlet code
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    import java.io.*;
    import java.net.*;
    import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.text.*;
    * @author freddy
    public class getconnection extends HttpServlet {
        Statement statement;
    ResultSet rs=null;
    String bstr=null;
    String bstr1=null;
    String bstr2=null;
    public void init()
        * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
        * @param request servlet request
        * @param response servlet response
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            try {
                /* TODO output your page here
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Servlet getConnection</title>"); 
                out.println("</head>");
                out.println("<body>");
                out.println("<h1>Servlet getConnection at " + request.getContextPath () + "</h1>");
                out.println("</body>");
                out.println("</html>");
            } finally {
                out.close();
        // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
        * Handles the HTTP <code>GET</code> method.
        * @param request servlet request
        * @param response servlet response
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
      doPost(request,response);
        * Handles the HTTP <code>POST</code> method.
        * @param request servlet request
        * @param response servlet response
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
            DataInputStream in = new DataInputStream(
                    (InputStream)request.getInputStream());
            String sid = in.readUTF();
            String user = in.readUTF();
            String pwd = in.readUTF();
          //  "jdbc:oracle:thin:@localhost:1521"+": "+sid
            String message = message = "Name:"+bstr+" telephone:"+bstr1+" burthday:"+bstr2;
             try {
                connect(sid,user, pwd);
                message += "100 ok connected";
            } catch (Throwable t) {
                message += "200 " + t.toString();
            response.setContentType("text/plain");
            response.setContentLength(message.length());
            PrintWriter out = response.getWriter();
            out.println(message);
            in.close();
            out.close();
            out.flush();
        private void connect(String sid, String user,String pwd)
        throws Exception {
            // Establish a JDBC connection to the MYSQL database server.
            //Class.forName("org.gjt.mm.mysql.Driver");
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:"+sid,user,pwd);
            System.out.print("connected");
            try{
               statement =conn.createStatement();
                rs=statement.executeQuery(" Select*from WOH.P_DEMGRAPHICS where P_ID='P1000 '");
            catch(SQLException e)
            System.err.print(e);
           try{
    while (rs.next()) {
    bstr=rs.getString(2);
    bstr1=rs.getString(3);
    bstr2=rs.getString(4);
    statement.close();
       catch (SQLException e) {
    //bstr += e.toString();
    System.err.println(e);
    System.exit(1);
            // Establish a JDBC connection to the Oracle database server.
            //DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
            //Connection conn = DriverManager.getConnection(
            //      "jdbc:oracle:thin:@localhost:1521:"+db,user,pwd);
            // Establish a JDBC connection to the SQL database server.
            //Class.forName("net.sourceforge.jtds.jdbc.Driver");
            //Connection conn = DriverManager.getConnection(
            //      "jdbc:jtds:sqlserver://localhost:1433/"+db,user,pwd);
        * Returns a short description of the servlet.
        public String getServletInfo() {
            return "Short description";
        // </editor-fold>
    }Midlet code
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    import java.io.*;
    import java.util.*;
    import javax.microedition.io.*;
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    * @author freddy
    public class testOrcl extends MIDlet  implements CommandListener {
       protected String url;
        private String username;
        private Display display;
        private Command exit = new Command("EXIT", Command.EXIT, 1);;
        private Command connect = new Command("Connect", Command.SCREEN, 1);
        private TextField tb;
        private Form menu;
        private TextField tb1;
        private TextField tb2;
        DB db;
        public testOrcl() throws Exception
            display=Display.getDisplay(this);
            url="http://localhost:8084/getConnection/getconnection";
        public void startApp() {
            displayMenu();
        public void displayMenu()
        menu= new Form("connect");
         tb = new TextField("Please input database: ","",30,
                    TextField.ANY );
            tb1 = new TextField("Please input username: ","",30,
                    TextField.ANY);
            tb2 = new TextField("Please input password: ","",30,
                    TextField.PASSWORD);
            menu.append(tb);
            menu.append(tb1);
            menu.append(tb2);
            menu.addCommand(exit);
            menu.addCommand(connect);
            menu.setCommandListener(this);
            display.setCurrent(menu);
        public void pauseApp() {
        public void destroyApp(boolean unconditional) { }
        public void commandAction(Command command, Displayable screen) {
            if (command == exit) {
                destroyApp(false);
                notifyDestroyed();
            } else if (command == connect) {
                db  = new DB(this);
                db.start();
                db.connectDb(tb.getString(),tb1.getString(),tb2.getString());
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    import java.io.*;
    import java.util.*;
    import javax.microedition.io.*;
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    import java.lang.*;
    * @author freddy
    public class DB implements Runnable  {
        testOrcl midlet;
         private Display display;
            String sid;
            String user;
            String pwd;
            public DB( testOrcl midlet)
            this.midlet=midlet;
            display=Display.getDisplay(midlet);
        public void start()
        Thread t = new Thread(this);
                t.start();
        public void run()
         StringBuffer sb = new StringBuffer();
                try {
                    HttpConnection c = (HttpConnection) Connector.open(midlet.url);
                   c.setRequestProperty(
                       "User-Agent","Profile/MIDP-2.1, Configuration/CLDC-1.1");
                    c.setRequestProperty("Content-Language","en-US");
                    c.setRequestMethod(HttpConnection.POST);
                    DataOutputStream os =
                            (DataOutputStream)c.openDataOutputStream();
                    os.writeUTF(sid.trim());
                    os.writeUTF(user.trim());
                    os.writeUTF(pwd.trim());
                    os.flush();
                    os.close();
                    // Get the response from the servlet page.
                    DataInputStream is =(DataInputStream)c.openDataInputStream();
                    //is = c.openInputStream();
                    int ch;
                    sb = new StringBuffer();
                    while ((ch = is.read()) != -1) {
                        sb.append((char)ch);
               showAlert(sb.toString());
                    is.close();
                    c.close();
                } catch (Exception e) {
                    showAlert(e.getMessage());
         /* This method takes input from user like db,user and pwd and pass
                to servlet */
            public void connectDb(String sid,String user,String pwd) {
                this.sid = sid;
                this.user = user;
                this.pwd = pwd;
            /* Display Error On screen*/
            private void showAlert(String err) {
                Alert a = new Alert("");
                a.setString(err);
                a.setTimeout(Alert.FOREVER);
                display.setCurrent(a);
       

    Comment out process request or rewrite & move it to a position after you read the parameters and connect to the db. Decide where you want to write to the output stream. Also, you have some superfluous casting.
    I take it that you are using netbeans? If you debug and step through the code you will get an idea of the flow. The steps should be, midlet connects with POST, doPost is called, server reads parameters, server opens connection, executes query, releases/closes connection, and writes a response to the midlet.
    Some notes about the connect method; The scope of rs may cause problems. It is unlike you will have a valid result set if you have a problem with create statement or execute. Take a look at connection pooling and be mindful how the connections are opened, used, and closed; put all the important cleanup operations in a finally. Remove system.exit from your servlet. Actually I would suggest limiting the scope of all your vars;
    If you store the username, password, and sid on the midlet, you may have trouble updating the installation base if you need to change the values for any reason. Also, you have clients which contain your database u/p, susceptible to snooping and decompilation. Use the servlet to abstract the db from the client. And use a datasource (with connection pooling) for obtaining connections to db.

Maybe you are looking for

  • Posting Subsequent Debit via EDI(MIRO)

    Hello All, Any idea how to post the subsequent debit or credit via EDI using transaction code MIRO. We were able to post invoice/credit memo through EDI but not subsequent debit/credit. Advance thanks for the reply. Thanks MP

  • CB68LP

    Hi Last time, you said I don't need to connect bias resistor from  AI+ to AIGND. Right now, I would like to make sure with you or somebody that wheather I need to put another wire from AI+ to AIGND. See attached. If the ansewer is no, I don't ned to

  • NSInternalInconsistencyExcepyion

    Hello I have no problem every time I try to download an application from the App Store I get this in writing (NSInternalInconsistencyException)

  • Xperia z3 compact - cannot find 4K video files in file manager or on sd card

    Hi all, This is my first post so hello to everyone. This is also my first smartphone and up until now I have not had any problems. I took a 12 minute 4K video the other day which is showing in my album but when I come to transfer it to my PC using th

  • OS X mountain lion operating system

    I bought my macbook in september 2012, should it have the OS X mountain lion operating system?