Why has getInputStream() in oracle.jbo.domain.ClobDomain been deprecated?

Hi,
I'm wondering why getInputStream() which returns java.io.InputStream has been deprecated?
There are so many classes that readily take InputStreams and yet ClobDomain will only give me a java.io.Reader using getCharacterStream()
Is there an easy way to convert a Reader into an InputStream?
cheers,
Brenden

Hi Frank,
I was using:
BufferedReader data = new BufferedReader(getClobDocument().getCharacterStream());
which is working ok - sort of.......
Once I have read from the Clob I can't read from it again. To read from the Clob again I have to re-execute the VO.
getCharacterStream() returns null on subsequent operations on the VO. It's as if the input stream has been closed as part of getCharacterStream().
There was a bug in getCharacterStream() in JDev 9.0.4.3:
BUG 3781365 CLOBDOMAIN.GETCHARACTERSTREAM() returns a closed reader when called a sec. time
I suspect I'll get the same result with ClobReader. have you come across this before?
thanks,
Brenden

Similar Messages

  • Cannot convert type class java.lang.String to class oracle.jbo.domain.Clob

    Cannot convert type class java.lang.String to class oracle.jbo.domain.ClobDomain.
    Using ADF Business Components I have a JSFF page fragment with an ADF form based on a table with has a column of type CLOB. The data is retrieved from the database and displayed correctly but when any field is changed and submitted the above error occurs. I have just used the drag and drop technique to create the ADF form with a submit button, am I missing a step?
    I am using the production release of Jdeveloper11G

    Reproduced and filed bug# 7487124
    The workaround is to add a custom converter class to your ViewController project like this
    package oow2008.view;
    import javax.faces.application.FacesMessage;
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.convert.Converter;
    import javax.faces.convert.ConverterException;
    import oracle.jbo.domain.ClobDomain;
    import oracle.jbo.domain.DataCreationException;
    public class ClobConverter implements Converter {
         public Object getAsObject(FacesContext facesContext,
                                   UIComponent uIComponent,
                                   String string) {
           try {
             return string != null ? new ClobDomain(string) : null;
           } catch (DataCreationException dce) {
             dce.setAppendCodes(false);
             FacesMessage fm =
               new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                "Invalid Clob Value",
                                dce.getMessage());
             throw new ConverterException(fm);
         public String getAsString(FacesContext facesContext,
                                   UIComponent uIComponent,
                                   Object object) {
           return object != null ?
                  object.toString() :
                  null;
    }then to register the converter in faces-config.xml like this
    <faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee">
      <application>
        <default-render-kit-id>oracle.adf.rich</default-render-kit-id>
      </application>
      <converter>
        <converter-id>clobConverter</converter-id>
        <converter-class>oow2008.view.ClobConverter</converter-class>
      </converter>
    </faces-config>then reference this converter in the field for the ClobDomain value like this
              <af:inputText value="#{bindings.Description.inputValue}"
                            label="#{bindings.Description.hints.label}"
                            required="#{bindings.Description.hints.mandatory}"
                            columns="40"
                            maximumLength="#{bindings.Description.hints.precision}"
                            shortDesc="#{bindings.Description.hints.tooltip}"
                            wrap="soft" rows="10">
                <f:validator binding="#{bindings.Description.validator}"/>
                <f:converter converterId="clobConverter"/>
              </af:inputText>

  • Urgent: oracle.jbo.domain.Number Bug (continued)

    Dear Shailesh(JDeveloper Team):
    To catch your attention, I posted the topic here again:
    [original topic]
    We are developing a BC4J application for our US customer. Our web server (iAS) and database (Oracle 8i) are installed on RS/6000, AIX 4.3.3
    When we try to set a Number type field value (Number is the only type in Oracle database to stand for a number, either a float field or sequence number). On AIX iAS, if the value is integer, larger than 100 and is not multiple of 100 ( such as 123, 112, 5676, 43435 ), the system(ont our jsp, web bean, but handled by low level classes) will automatically add two zeroes at the end of the number before insert to database table. For example:
    123---->12300
    112---->11200
    5676--->567600
    43435-->4343500.
    It is incorrect! On the other hand, when we try to retrieve value from a field which type is Number, if the value is a integer but larger than 100, and is not multiple of 100 ( such as 123, 112, 5676, 43435 ), the system will automatically add two zeroes at the end of the number after got from database table. For example:
    123---->12300
    112---->11200
    5676--->567600
    43435-->4343500
    We check the xml file of the BC4J, Number field type in the middle-tier is denoted as oracl.jbo.domain.Number, so we wrote a program (JSP) without accessing database, like this one:
    <%
    for (int i=0 ; i<1000; i++) {
    %>
    <p> <%=new oracle.jbo.domain.Number(i).toString() %></p>
    <%}%
    The program runs correctly in JDeveloper developing environment on NT workstation( in the developing environment, NT mimic a local virtual middle-tier):
    0
    1
    99
    100
    101
    598
    599
    600
    999
    But after we deployed the jsp to iAS on RS/6000 and browse it, the output result is very inconceivable:
    0
    1
    99
    100
    10100 (Should be 101)
    59800 (Should be 598)
    59900 (Should be 599)
    600
    99900 (Should be 999)
    We checked all through the deployed Jar files on iAS and the oracl.jbo.domain.Number class, we found that the class is extended from oracle.sql.NUMBER, and the toString method is also inherited from oracle.sql.NUMBER.
    We even test below simple jsp program using oracl.jbo.domain.Number type:
    <%@ page contentType="text/html" autoFlush="true" import="java.lang.*,LocaMotion.*"%>
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    <META NAME="GENERATOR" CONTENT="Oracle JDeveloper">
    <TITLE>
    Hello World
    </TITLE>
    </HEAD>
    <BODY>
    <%
    String strI="123";
    %>
    <p> <%=new oracle.jbo.domain.Number(strI)%></p>
    </BODY>
    </HTML>
    In JDeveloper developing environment, it prints 123 in browser, but when deployed to iAS, it prints 12300.
    Why the same Java class has different behavior under different OS (NT and RS/6000)? We think it is a bug on implementation of oracle.sql.NUMBER. We assume this is caused by the machine CPU register length: NT: 32 bits, RS/6000: 64 bits.
    This bug must be fixed to ensure the BC4J application workable. Would you please resolve this problem for us at your time?
    We are eager to waiting for your answer, as we are in FVT phase, our customer is BITCO enterprises inc. in Virginia.
    Thanks,
    [Answer from Shailesh(JDeveloper Team)]:
    I'd suspect this is an issue in oracle.sql.NUMBER implementation. Could you help us by verifying that oracle.sql.NUMBER.toString() also reproduces the same problem. A potential fix I could think of is to use the jdbc libraries that come with RS/6000-AIX version of the database.
    [Our test result]:
    We test the oracle.sql.NUMBER.toString() method, it also reproduces the same problem.
    What's the "jdbc libraries that come with RS/6000-AIX version of the database"?
    ,who offer it? IBM or Oracle. Where could I find it and how to use it? Will oracle.sql.NUMBER problem for AIX fixed?
    null

    As a follow up , could you tell the specific database version of Oracle8i you are using.(i.e 8.1.6 or 8.1.7/ also if you have applied any patches)
    . Just wondering if you had tried a simple JDBC program (without BC4J) (eg: a command line program) which uses oracle.sql.Number and produced the same erroneous results.
    appericiate if you could provide any additional information.
    thanks and best regards
    raghu

  • Urgent: oracle.jbo.domain.Number Bug (continued I)

    Dear Shailesh and Raghu (JDeveloper Team):
    To catch your attention, I posted the topic here again:
    ------------------------------------------------------------------------------------------[original topic]
    We are developing a BC4J application for our US customer. Our web server (iAS) and database (Oracle 8i) are installed on RS/6000, AIX 4.3.3
    When we try to set a Number type field value (Number is the only type in Oracle database to stand for a number, either a float field or sequence number). On AIX iAS, if the value is integer, larger than 100 and is not multiple of 100 ( such as 123, 112, 5676, 43435 ), the system(ont our jsp, web bean, but handled by low level classes) will automatically add two zeroes at the end of the number before insert to database table. For example:
    123---->12300
    112---->11200
    5676--->567600
    43435-->4343500.
    It is incorrect! On the other hand, when we try to retrieve value from a field which type is Number, if the value is a integer but larger than 100, and is not multiple of 100 ( such as 123, 112, 5676, 43435 ), the system will automatically add two zeroes at the end of the number after got from database table. For example:
    123---->12300
    112---->11200
    5676--->567600
    43435-->4343500
    We check the xml file of the BC4J, Number field type in the middle-tier is denoted as oracl.jbo.domain.Number, so we wrote a program (JSP) without accessing database, like this one:
    <%
    for (int i=0 ; i<1000; i++) {
    %>
    <p> <%=new oracle.jbo.domain.Number(i).toString() %></p>
    <%}%
    The program runs correctly in JDeveloper developing environment on NT workstation( in the developing environment, NT mimic a local virtual middle-tier):
    0
    1
    99
    100
    101
    598
    599
    600
    999
    But after we deployed the jsp to iAS on RS/6000 and browse it, the output result is very inconceivable:
    0
    1
    99
    100
    10100 (Should be 101)
    59800 (Should be 598)
    59900 (Should be 599)
    600
    99900 (Should be 999)
    We checked all through the deployed Jar files on iAS and the oracl.jbo.domain.Number class, we found that the class is extended from oracle.sql.NUMBER, and the toString method is also inherited from oracle.sql.NUMBER.
    We even test below simple jsp program using oracl.jbo.domain.Number type:
    <%@ page contentType="text/html" autoFlush="true" import="java.lang.*,LocaMotion.*"%>
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    <META NAME="GENERATOR" CONTENT="Oracle JDeveloper">
    <TITLE>
    Hello World
    </TITLE>
    </HEAD>
    <BODY>
    <%
    String strI="123";
    %>
    <p> <%=new oracle.jbo.domain.Number(strI)%></p>
    </BODY>
    </HTML>
    In JDeveloper developing environment, it prints 123 in browser, but when deployed to iAS, it prints 12300.
    Why the same Java class has different behavior under different OS (NT and RS/6000)? We think it is a bug on implementation of oracle.sql.NUMBER. We assume this is caused by the machine CPU register length: NT: 32 bits, RS/6000: 64 bits.
    This bug must be fixed to ensure the BC4J application workable. Would you please resolve this problem for us at your time?
    We are eager to waiting for your answer, as we are in FVT phase, our customer is BITCO enterprises inc. in Virginia.
    Thanks,
    [Answer from Shailesh(JDeveloper Team)]:
    I'd suspect this is an issue in oracle.sql.NUMBER implementation. Could you help us by verifying that oracle.sql.NUMBER.toString() also reproduces the same problem. A potential fix I could think of is to use the jdbc libraries that come with RS/6000-AIX version of the database.
    [Our test result]:
    We test the oracle.sql.NUMBER.t oString() method, it also reproduces the same problem.
    What's the "jdbc libraries that come with RS/6000-AIX version of the database"?
    ,who offer it? IBM or Oracle. Where could I find it and how to use it? Will oracle.sql.NUMBER problem for AIX fixed?
    [Answer from Raghu(JDeveloper Team)]:
    JDev Team
    unregistered posted January 04, 2001 10:14 AM
    Hi
    we are trying to follow up internally on this. Did you file a bug with Oracle Support on this. ?
    If not I would suggest to do that, but at the same time we would be following up on that with the respecitive product group which works on that.
    thanks and best regards
    raghu
    IP: Logged
    JDev Team
    unregistered posted January 04, 2001 04:08 PM
    As a follow up , could you tell the specific database version of Oracle8i you are using.(i.e 8.1.6 or 8.1.7/ also if you have applied any patches)
    . Just wondering if you had tried a simple JDBC program (without BC4J) (eg: a command line program) which uses oracle.sql.Number and produced the same erroneous results.
    appericiate if you could provide any additional information.
    thanks and best regards
    raghu
    Larry's answer:
    Yes. We opened a Tar on http://metalink.oracle.com (Tar number is 1350841.999), but still no solution provided.
    Our software platform is AIX 4.3.3., Oracle 8i is 8.1.6, iAS is 1.0.
    Below program is a very simple Jsp that uses oracle.sql.NUMBER but no BC4J classed used.
    <%@ page contentType="text/html" autoFlush="true" import="java.lang.*,oracle.sql.*"%>
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    <META NAME="GENERATOR" CONTENT="Oracle JDeveloper">
    <TITLE>
    Hello World
    </TITLE>
    </HEAD>
    <BODY>
    <%
    String strI="123";
    %>
    <p> <%=new oracle.sql.NUMBER(strI).stringValue()%></p>
    </BODY>
    </HTML>
    In JDeveloper developing environment (WINDOWS NT), it prints 123 in browser, but when deployed to iAS on AIX, it prints 12300.
    null

    thanks for the extra information. We have passed the information to specific product group and they are looking into it.
    As it looks like specific issue we can take this offline.
    can you send your email id [email protected]
    and we can let you know on the status.
    raghu

  • PL/SQL Object Type - Java oracle.jbo.domain

    PL/SQL Object Type <-> Java oracle.jbo.domain
    can anybody help me, getting my domains to work?
    Following scenario:
    in pl/sql we have an object type called MULTI_LANGUAGE. This type is used for storing multilingual texts as nested table in one(!) column.
    So the object MULTI_LANGUAGE contains a member variable LANGUAGE_COLLECTION of type LANGUAGE_TABLE, which itself is a nested table of objects
    of the type LANGUAGE_FIELD (this again is only a language id and the corresponding content)
    Also the methods setContent(langID, langContent) and getContent(langId) are defined on Object MULTI_LANGUAGE.
    For example: Table having primary key, 2 other columns and one column of object type MULTI_LANGAGE (=nested table of objects)
    |ID|Column1|Column2|  multilingual Column  |
    |--|---------------------------------------|
    |  |       |       |  -------------------  |
    |  |       |       | | 1 | hello         | |
    |  |       |       |  -------------------  |
    |1 | foo   | bar   | | 2 | hallo         | |   <- Row Nr 1
    |  |       |       |  -------------------  |
    |  |       |       | | 3 | ola           | |
    |  |       |       |  -------------------  |
    |--|-------|-------|-----------------------|
    |  |       |       |  -------------------  |
    |  |       |       | | 1 | world         | |
    |  |       |       |  -------------------  |
    |2 | abc   | def   | | 2 | welt          | |   <- Row Nr 2
    |  |       |       |  -------------------  |
    |  |       |       | | 3 | ???  ;-)      | |
    |  |       |       |  -------------------  |
    |--|-------|-------|-----------------------|Now i've tried to modell this structure as an oracle.jbo.domain.
    class MultiLanguage extends Struct having this StructureDef:
    attrs[(0)] = new DomainAttributeDef("LanguageColl", "LANGUAGE_COLL", 0, oracle.jbo.domain.Array.class, 2003, "ARRAY", -127, 0, false, "campusonlinepkg.common.LanguageField");
    and
    class LanguageField extends Struct having this StructureDef:
    attrs[(0)] = new DomainAttributeDef("Id", "ID", 0, oracle.jbo.domain.Number.class, 2, "NUMERIC", -127, 0, false);
    attrs[(1)] = new DomainAttributeDef("Content", "CONTENT", 1, java.lang.String.class, 12, "VARCHAR", -127, 4000, false);
    Is there anything wrong with this StructureDef?
    When running the BC-Browser with -Djbo.debugoutput=console -Djbo.jdbc.driver.verbose=true parameters I get suspect warnings when browsing the records
    [196] Executing FAULT-IN...SELECT NR, NAME FROM B_THESAURI BThesauri WHERE NR=:1
    [197] SQLException: SQLState(null) vendor code(17074)
    [198] java.sql.SQLException: Ungültiges Namensmuster: XMLTEST.null
    ...snip: detail of stack...
    [240] SQLException: SQLState(null) vendor code(17060)
    [241] java.sql.SQLException: Deskriptor konnte nicht erstellt werden: Unable to resolve type "null"
    ...snip: detail of stack...
    [280] Warning:No element type set on this array. Assuming java.lang.Object.
    (XMLTEST is the name of the schema)
    Seems as if the framework can't read the TypeDescriptor or does not know which descriptor to read (XMLTEST.null??)
    Do I have to implement my own JboTypeMap?
    Please help, I'm stuck.
    Thanks in advance, Christian

    Thanks for your suggestion, but it seems to me as if there is one level missing.
    in pl/sql I have following structure:
    Struct MULTI_LANGUAGE (Object type) - outermost
      Array LANGUAGE_TABLE (nested table type)
        Struct LANGUAGE_FIELD (Object type simple) - innermostthe reason why i had to wrap another struct around the array was because it is not possible to define methods on a nested table. this is only possible on objects.
    on the outermost object type (which holds the array of language fields) I needed to define following 2 methods for direct access:
    getContent (langId in number) returns varchar2
    setContent (langId in number, langContent in varchar2)
    I would like to rebuild the same structure in java, because newly written java code should live in perfect harmony with legacy pl/sql code ;-)
    Both applications (Java and pl/sql) have to access the same data as long as migration to java goes on.
    Is this nested structure too much for a Domain?
    Any other suggestions?
    Thanks again, Christian

  • Getting Error:::oracle.jbo.domain.Date cannot be cast to java.lang.String

    Hi Friends,
    I have simple req'.
    i have one date filed in OAF page...if user has change the date filed..means if he incresed by 2 days..then i need to call one procedure..if not no need to call....
    first am picking that date field to by uusing prepared stmt and putting in to one variable..like below
    try {
    ps1 = am.getOADBTransaction().getJdbcConnection().prepareStatement("SELECT -------");
    ResultSet rs2 = ps1.executeQuery();
    while (rs2.next()) {
    schDate = rs2.getString(1);//storing the value
    } catch (Exception e) {
    throw OAException.wrapperException(e);
    Next..am picking the current value like this(user can change the value) like below...
    OAViewObject viewObj = (OAViewObject)am.findViewObject("simpleVO");
    String currSchDate = (String)viewObj.getCurrentRow().getAttribute("iDate");
    java.text.SimpleDateFormat dtFormat = new java.text.SimpleDateFormat ("MM/dd/yyyy");
    StringBuilder date = new StringBuilder(dtFormat.format(currSchDate));
    Then am comparing the values like below..
    if (schDate.equals(date)) {
    String outParamValue = "";
    String secondOutParamValue = "";
    but am geting the below error
    ## Detail 0 ##
    java.lang.ClassCastException: oracle.jbo.domain.Date cannot be cast to java.lang.String
         at xxuss.oracle.apps.abc.webui.xxPGCO15.processFormRequest(xxGCO15.java:594)
    Appriciate any help...its very urgent
    Regards
    Harry

    Instead of :
    String currSchDate = (String)viewObj.getCurrentRow().getAttribute("iDate");Try
    String currSchDate = viewObj.getCurrentRow().getAttribute("iDate").toString();
    -Anand

  • Oracle.jbo.domain.Number; local class incompatible

    Hi Forum,
    Development Tool     : Jdeveloper 9.0.4 (part of Oracle 10g Suite)
    Target Application Summary:
    A simple application which displays the content of a database table and allows it to be modified both through a web interface as well as a Swing standalone client.
    A Workspace having three projects:
    1) A Business layer defined by using BC4J(Business Components For Java) provided with Jdeveloper 10g.
    2) A Swing/JClient application for BC4J which accesses the BCJ4 layer using a Business component client data model.
    3)A JSP application using JSP for business components which accesses the BC4j layer
    Target Deployment:
    1) Light-weight swing interface at machine 1
    2) Business components and JSP part in an application server on Machine 2
    3) Oracle DB on Machine3
    Problem Statement
    We deployed the BC4J Middle tier on OC4J standalone as a session bean. Then the client jar was deployed as a remote application(using Swing/JClient for business componments), the following error comes:
    (oracle.jbo.PiggybackException) JBO-28300: Piggyback read error
    ----- LEVEL 1: DETAIL 0 -----
    (java.io.InvalidClassException) oracle.jbo.domain.Number; local class incompatible: stream classdesc serialVersionUID = -6507359405709672486, local class serialVersionUID = -592084144037230518
    Can the forum help me with the problem (i am using the library BC4JOracleDomains which has oracle.jbo.domain.Number class)
    Thanking you in advance.

    Firstly, good job on describing your problem/situation. Some people just don't bother to be verbose.
    Secondly, I have to note that I don't do any development in this way so I have no 1st hand experience with this excpetion. But, it appears as though you are using different versions of the jar files (which in turn contain different versions of the classes). Maybe you should take a look at that?

  • Oracle.jbo.domain.Number / Date comparable ?

    Hello,
    I'd like to know whether there was a plan to make the oracle.jbo.domain.Number and oracle.jbo.domain.Date classes implement the Comparable interface?
    That would save some unnecessary wrapping code...
    Thanks in advance,
    Remi

    I just want to push this Idea, since it is hard to understand, why such a simple interface is not implemented for such a basic class. It would make a lot of things much easier.

  • How can i compare:  java.util.Date oracle.jbo.domain.Date?

    I have made a ViewObject wich contains a date column.
    I want to check if this date is smaller/greater than sysdate:
    i get following error:
    Error(45,24): method <(java.util.Date, oracle.jbo.domain.Date) not found in class Class4
    code:
    SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);
    // set up rules for daylight savings time
    pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
    pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
    // create a GregorianCalendar with the Pacific Daylight time zone
    // and the current date and time
    Calendar calendar = new GregorianCalendar(pdt);
    Date trialTime = new Date();
    calendar.setTime(trialTime);
    (VO_ULNRow)singleRow = null;
    while(vo.hasNext()){                                             // ViewObject vo;
    singleRow = (VO_ULNRow)vo.next();
    if(calendar.getTime() < singleRow.getEO_ULN_BORROWFROM()); //singleRow returns oracle.jbo.domain.Date
    etcetera
    how can i compare those 2?

    Hi,
    oracle.jbo.domain.Date has two methods which suit your needs
    longValue() which returns a long (though I'm not sure if returns a long comparable to the long returned by java.util.Date)
    and dateValue() which returns a java.util.Date
    I hope it helps,
    Giovanni

  • Problems Validating an Attribute of type oracle.jbo.domain.date

    I have a form that has a date input field. I am trying to customise the exception error for this field for when the user enters something other than my dd/MM/yyyy format. ie JBO-25009: oracle.jbo.domain.DataCreationException
    This Attribute uses a the oracle.jbo.domain.date data type. An exception is finally thrown when the transaction trys to commit.
    My problem is that I can't customise the exception because I can't catch where it is occuring. I have tried at the <setAttributeInternal>, <setAttribute> and <validateEntity> levels uses both try{}catch(Jbo Exception){} and try{}catch(AttrValException){}. I believe the reason for this is because the problem occurs because the parse value to functions are invalid dates so it never enters them.
    If this is true validation and any exception thrown should occur at the data type level, but the the oracle.jbo.domain.date class doesn't have a validate method.
    Can someone please help me get around this problem. Or tell me if the have a solution for date input validation.

    The usecase is as follows:
    I have a DynaAction Form with a input field for a date value. This field in the form is associated with an entity attribute that is of the type oracle.jbo.domain.date
    In the message bundle for this entity I specify a format (dd/MM/yyyy) and formatter for the field (oracle.jbo.format.DefaultDateFormatter). In the jsp page I display the field using the following tag within the <jbo:row> tags,
    <jbo:InputDate dataitem="ChangeDate" formname="ApplicationReleaseForm"/>
    The date picker script works well here and the formatter formats it correctly.
    My error occurs when an invalid date value is entered. Ie characters like "abc" or numeric values that don't match a date format ie my date format (dd/MM/yyyy) or the default format of the jbo.domain.date type(yyyy-MM-dd).
    On submitting my form the input is posted to an action that extends the Update action class. I use the following expression to cache the input from the form in the viewobject:
    ActionForward actionForward = super.execute(mapping,form,request,response);
    The invalid input appears to be able to slip through this call without causing an exception, unless I make the attribute manditory. In this case an exception is thrown causing the form to be returned and the mandatory value error message to be shown.
    If the attribute is not mandatory the exception is not thrown until I make a call to commit; eg
    context.getApplicationModule().getTransaction().commit();
    The DataCreationException is the initial exception that is caught and causes the rest of the transaction to fall over.
    It is my understanding that if the input is wrong then it should be picked up when the form data is pushed into the viewobject, ie in the call to execute and at the setAttributeInternal() method call for the attribute in the viewobject. I don't believe that the input gets this far as the input is not a valid date, indicating to me that the oracle.jbo.domain.date should be the object throwing the exception.
    I hope this gives you a better understanding of the process and where and what causes the problem to occur.

  • Problem with oracle.jbo.domain.Date

    Hi there,
    I've a problem with oracle.jbo.domain.Date,
    I'm doing this code (this part of code is used in my Session Attribute Listener):
    * This method is used to add the session id in the database, whenever user login
    public void attributeAdded(HttpSessionBindingEvent hsbe){
    if(!hsbe.getName().equals("user")){
    return;
    AmLogin am = (AmLogin)Configuration.createRootApplicationModule(
    "com.ahm.pdt001.am.AmLogin",
    "AmLoginLocal");
    try{
    hsbe.getSession().setAttribute("login", new Date(new Timestamp(
    System.currentTimeMillis())));
    am.createLogin(hsbe.getValue().toString(), hsbe.getSession().
    getAttribute("login").toString());
    } catch(Exception e){
    e.printStackTrace();
    System.out.println("Error insert data user: " + hsbe.getValue());
    } finally{
    Configuration.releaseRootApplicationModule(am, true);
    Everything is running well in Jdev 10.1.3 (I'm using ADF Faces technology), and I'm trying to deploy it on OC4J 10.1.2 and it works. But it raised an error when this part of code is runned.
    --------------caused and error------------------------
    hsbe.getSession().setAttribute("login", new Date(new Timestamp(
    System.currentTimeMillis())));
    And this is an error:
    javax.faces.FacesException: #{pdt001.loginAction}: javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: oracle.jbo.domain.Date.<init>(Ljava/sql/Timestamp;)V     at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:78)     at oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211)     at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)     at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)     at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)     at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)     at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)     at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:332)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)     at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)     at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)     at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)     at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)     at com.ahm.filter.AhmFilterSession.doFilter(AhmFilterSession.java:45)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:645)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)     at java.lang.Thread.run(Thread.java:534)Caused by: javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: oracle.jbo.domain.Date.<init>(Ljava/sql/Timestamp;)V     at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)     at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)     ... 23 moreCaused by: java.lang.NoSuchMethodError: oracle.jbo.domain.Date.<init>(Ljava/sql/Timestamp;)V     at com.ahm.pdt001.listener.Pdt001AttributeSessionListener.attributeAdded(Pdt001AttributeSessionListener.java:27)     at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.EvermindHttpSession.setAttribute(EvermindHttpSession.java:128)     at com.ahm.pdt001.bean.Pdt001Bean.loginAction(Pdt001Bean.java:61)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:324)     at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
    Does anybody have the same problem like this? I've used the same method in my previous project to create oracle.jbo.domain.Date with current time using java.sql.Timestamp, but I don't know why this error happened.
    Thx,
    Andre

    Re: oracle jbo.domain.Date issues in 10.1.3
    Sascha

  • Convert java.sql.Date to oracle.jbo.domain.Date in oaf

    Hi,
    Need to dafault NeedBydate(i get in from query as below) to a messagelovinput and make it read only.
    i am facing some issue in converting from java.sql.Date to oracle.jbo.domain.Date.
    unable to figure out the problem.
    below is the sample code im trying to use.
    PreparedStatement ps=pageContext.createPreparedStatement("select sysdate from dual");
    ResultSet rs=ps.executeQuery();
    if (rs!=null && ps.next()
    java.sql.Date sqlDate= rs.getDate(1);
    oracle.jbo.domain.Date oracleDate = new oracle.jbo.domain.Date(sqlDate.getTime());
    vorow.setAttribute("Datevalue",oracleDate);
    this is my assumption : to set to UI i need date in format dd-Mon-yyyy.(am i correct? as to get that format i tried to use simple date format class but no use)
    when i tried to use simple date format :unpaseable date exception was raised.
    please guide.

    Hi,
    Why are you using this code???
    PreparedStatement ps=pageContext.createPreparedStatement("select sysdate from dual");
    ResultSet rs=ps.executeQuery();
    if (rs!=null && ps.next()
    java.sql.Date sqlDate= rs.getDate(1);
    oracle.jbo.domain.Date oracleDate = new oracle.jbo.domain.Date(sqlDate.getTime());
    you can get sysdate using this and then set it
    oracle.jbo.domain.Date currentDate = am.getOADBTransaction().getCurrentUserDate();
    java.text.SimpleDateFormat displayDateFormat = new java.text.SimpleDateFormat ("yyyy-MM-dd");
    String DateForm = displayDateFormat.format(currentDate.dateValue());
    oracle.jbo.domain.Date dateset = new oracle.jbo.domain.Date(DateForm);
    and then set the attribute
    vorow.setAttribute("Datevalue",dateset);
    Thanks,
    Gaurav

  • Oracle.jbo.domain.Date blows on NoSuchMethodError

    The following statement:
    oracle.jbo.domain.Date nowDate = new oracle.jbo.domain.Date(nowTime);
    has the following run time error when I try to run the main class in the production library:
    Exception in thread "main" java.lang.NoSuchMethodError
    at stkpackage1.test3.main(test3.java:147)
    Of course, it runs fine in JDeveloper on the same machine.
    The JDeveloper and the production environment appear to have the same version of Java: 1.3.1_04 (Linux).
    Any hints? Any way to debug?
    -- Ewin

    Check the classpath for the run in the IDE and verify that the path is same for the production setup. It seems either jbo.domain.Date or one of it's superclasses is missing in your classpath.

  • Why I cannot found "oracle.jbo.Transaction"

    I'm study jdeveloper 9.0.3 accord tutorials in help. When I learn the sample (tutorial--&gt;Business Components Programmatic Client Tutorial), I met the problem. I finished the program according to the help step by step. But the program raise the error as follows:
    Project: batchclient.jpr
    D:\jdev903\BC4J\src\bc4jaddinsrc.zip!\oracle\jbo\domain\DomainInterface.java
    Error(14,19): cannot access class oracle.jbo.Transaction; file oracle\jbo\Transaction.class not found
    Error(50,47): class Transaction not found in interface oracle.jbo.domain.DomainInterface
    D:\jdev903\jdev\mywork\bcbatch\batchclient\src\bcbatch\Batch.java
    Error(45,1): class ApplicationModule not found in class bcbatch.Batch
    Error(45,28): variable Configuration not found in class bcbatch.Batch
    Error(46,1): class ViewObject not found in class bcbatch.Batch
    Error(47,1): class Key not found in class bcbatch.Batch
    Error(47,19): class Key not found in class bcbatch.Batch
    Error(48,1): class Row not found in class bcbatch.Batch
    Error(56,3): class Row not found in class bcbatch.Batch
    Notice:
    I can't found the oracle.jbo.Transaction. But I download the full version at the site of java.sun.com. Why?
    下面是我程序的源码:
    the source code is:
    package bcbatch;
    import oracle.jbo.*;
    import oracle.jbo.client.*;
    import oracle.jbo.domain.Number;
    import java.awt.Frame;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.UIManager;
    import java.awt.Dimension;
    import java.awt.Toolkit;
    public class Batch
    public Batch()
    Frame frame = new Frame1();
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height &gt; screenSize.height)
    frameSize.height = screenSize.height;
    if (frameSize.width &gt; screenSize.width)
    frameSize.width = screenSize.width;
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
    frame.addWindowListener(new WindowAdapter()
    public void windowClosing(WindowEvent e)
    System.exit(0);
    frame.setVisible(true);
    public static void main(String[] args)
    if (args.length==0)
    show("Customer ID is required.");
    System.exit(0);
    ApplicationModule am_Ord = Configuration.createRootApplicationModule("OnlineOrders.OnlineOrdersModule", "OnlineOrdersModuleLocal");
    ViewObject vo=am_Ord.findViewObject("CustomersView1");
    Key custKey = new Key(new Object[] {args[0]});
    Row[] customersFound = vo.findByKey(custKey,1);
    //first argument of findByKey is the key; the second is the maximum number of rows to
    if (customersFound.length==0)
    show("Customer " + args[0] + " not found.");
    else
    Row row_Cust = customersFound[0];
    show("Customer");
    show("========");
    show("ID: " + row_Cust.getAttribute("CustomerId"));
    show("Email: " + row_Cust.getAttribute("CustEmail"));
    try
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    catch(Exception e)
    e.printStackTrace();
    new Batch();
    private static void show(String s)
    System.out.println(s);
    } // end show()

    It looks like your jpr (project) does not include the BC4J library.
    Select the project in your IDE, right-mouse click, select "Project Settings".
    Go to the "Libraries" panel, and shuttle over library named "BC4J Runtime."
    Thanks.
    Sung

  • Problem with oracle.jbo.domain.Date and format 'dd.MM.yyyy'

    JBO-25009: Cannot create an object of type:oracle.jbo.domain.Date with value: 09.10.2003
    In EOImplMsgBundle :
    {"Dbeg_FMT_FORMATTER", "oracle.jbo.format.DefaultDateFormatter"},
    {"Dbeg_FMT_FORMAT", "dd.MM.yyyy"}};
    In VOImplMsgBundle :
    {"Dbeg_FMT_FORMAT", "dd.MM.yyyy"},
    {"Dbeg_FMT_FORMATTER", "oracle.jbo.format.DefaultDateFormatter"},
    Why ? Help Please

    I have the same problem !
    I have extended the formatinfo.xml with:
    <DOMAIN CLASS="oracle.jbo.domain.Date">
    <FORMATTER name="Simple Date" class="oracle.jbo.format.DefaultDateFormatter">
    <FORMAT text="dd.MM.yyyy" />
    <FORMAT text="dd-MM-yyyy" />
    <FORMAT text="yyyy-MM-dd" />
    <FORMAT text="yyyy-MM-dd G 'at' hh:mm:ss" />
    <FORMAT text="EEE, MMM d, ''yy" />
    </FORMATTER>
    </DOMAIN>
    And then I have set my attibutes to use this FORMATTER with FORMAT "dd.MM.yyyy".
    When I start my application, I became an error and the date-fields are blank ... The application can not convert my Date in 'dd.MM.yyyy' format ...
    When I set my attributes to Format Type <none>, it works, the date-fields are present ...

Maybe you are looking for

  • Will adding RAM to my Mac Mini make it run faster ?

    Hey all, Since I upgraded to Mavericks, I've started having two issues with my Mac Mini (mid-2011 edition, with 4Gb of RAM and an Intel i5 processor at 2,5Ghz) 1. I use FileVault so I need to login as soon as my machine will boot. Unfortunately, afte

  • Is it possible to have multiple "Instances" of iTunes installed/running?

    I have a situation where it would be useful to have multiple iTunes libraries open at the same time. I use Libra 2 to manage my many libraries, but I find it can be a pain to switch back and forth between libraries. Has anyone out there found a way t

  • ITunes 11.0.1 will not sync iPhone 5 and iPad

    ITunes 11.0.1 will not sync either my iPhone 5 or ipad.  After a sync attempt, a box appears which says the device cannot be read or written to.

  • HT5639 Switching from Parallels to Boot Camp

    How do I switch from Parallels to Bootcamp?  I have a 2011 MacBook Pro 17" with latest OS and running Windows 8 on Parallels.  I am unable to run SimCity (newest) on parallels, and read that it works on bootcamp.

  • SQL Loader or UTL_FILE , Which is better ??

    Hello All, In my system I have to Download the data from a file each day in some table. The file is of fixed format. And the number of records (lines) in the file is not more than 1000 (say) each day. I would like to know for such scenario what will