Simple JPA - JSF question

Welcome!
I Have simple question regarding updating JPA entities from JSF application
One option is to directly invoke entity manager code from JSF managed bean action, but in this case we must explicitly deal with transactions (and we don't get other EJB benefits).
Other approach is to create EJB as a stateless session bean. And delegate all the operations on entities to the EJB. In this case container create transactions for us.
Please correct me if I wrongly understand this topic.
My key question is how to update entity bean, which I have persiteted earlier. I assume it's illegal to issue manager .find method in EJB class, return managed entity as an object to JSF backing been and then modify it. Normally entity bean should be managed, but in this case there is no transaction support in JSF backing bean and hence we cannot modify the object directly.
I assume that correct way is to detach entity in EJB, pass this object to JSF backing bean. In this case entity will not be managed, then edit it in JSF and finally update in EJB by .merge method.
I assume multi-user environment (currently I am using glassfish if it does matters)
Best regards
Pawel

Thanks for responding r035198x (this place has some memorable usernames :) ).
You were absolutely right about flagging me up for not catching the exception (at the time I didn't know how to handle exceptions as im still learning). I am now using:
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Error deleting record: "+ex.getMessage()));and am now getting the following when pressing the delete button:
Error deleting record: Internal Exception: java.sql.SQLIntegrityConstraintViolationException: DELETE on table 'MBUSER' caused a violation of foreign key constraint 'USERPOST_OWNER_ID' for key (4). The statement has been rolled back. Error Code: -1 Call: DELETE FROM MBUSER WHERE (ID = ?) bind => [4] Query: DeleteAllQuery(name="messageboard.entity.MBUser.deleteUser" referenceClass=MBUser sql="DELETE FROM MBUSER WHERE (ID = ?)")
This is probably getting out of the realm of JSF, but in case your interested I can delete a user which does not have any child posts or threads (this is a messageboard), but if that user owns any threads or posts then it shows the above error. At this stage I am guessing its because I am not deleting joined child objects which are in persistence, and therefore will not allow the parent to be deleted without first the children being deleted. I was hoping that the cascade tag in the @OneToMany annotation would do it for me, but that doesn't seem to be the case:
    @OneToMany(mappedBy = "owner", cascade = CascadeType.ALL)
    private List<UserPost> ownedPosts = null;
    @OneToMany(mappedBy = "owner", cascade = CascadeType.ALL)
    private List<UserThread> ownedThreads = null;Therefore I guess i'll have to construct a NamedQuery a bit more complicated than the current one im using. Still, at least im making progress :) Thanks...

Similar Messages

  • Basic JSF Question

    I've a really simple JSF question which I'm hoping someone can help me with...
    In ASP.NET you have full access to the page tag components from inside the backing (code-behind) bean. Is this possible in JSF? If so, how?
    On a related note, it does seem like the jsp pages have full access to access and write to the managed beans, but not the other way around. How could you change a UI tag component (say the text of an outputText) from inside the managed bean?
    Thanx!
    Max

    First question:
    IBM implementation provides the code behind concept (similar to ASP.net) out of the box with JSF. Or you need to do that yourself by creating a request scope backing bean per page with needed API. Basically backing bean will need to get a handle to root component in view. And then traverse the view to find component your are looking for by name. Really not that complex.
    Second question:
    This is a good thing about JSF. The flow of data is bi-directional between the page and backing bean. Unlike ASP.net where it is one directional. Please study the backing bean concept and how to use the value or binding attribute for a UIcomponent to establish the link between a backing bean and UIComponent properties. 90% of the cases, using value attribute will do. Very specific cases will require using binding attributes.
    Try to do a JSF tutorial to get a better handle on what it provides. If you have an ASP.net background. It will be very easy for you to relate to quickly

  • Simple X-fi Question, Please Help

    !Simple X-fi Question, Please HelpL I've been looking for an external sound card that is similar to the 2002 Creative Extigy and think I may found it in the Creative X-Fi. I have some questions about the X-fi though. Can the X-fi:
    1. Input sound from an optical port
    2. Output that sound to 5. surround- Front, surround, center/sub
    3. Is the X-Fi stand-alone, external, and powered by a USB or a wall outlet (you do not need a computer hooked up to it)
    Basically I want to connect a TosLink optical cable from my Xbox to the X-Fi. That will deli'ver the sound to the X-Fi. Then I want that sound to go to a 5. headset that is connected to the X-fi via 5. front, surround, and center/sub wires. The X-Fi has to be stand-alone and cannot be connected to a PC to do this.
    Thank you for your help.

    The connector must match, and the connector polarity (plus and minus voltage) must match.  Sorry, I don't know if the positive voltage goes on the inside of the connector or the outside.    Any wattage of 12 or more should be adequate.
    Message Edited by toomanydonuts on 01-10-2008 01:29 AM

  • Simple Crop tool question... how do I save the crop section?

    Hi,
    I have a very simple crop tool question. I'm a photoshop girl usually... so Illustrator is new to me. When I select the crop section I want... how do I save it?... if I select another tool in the tool panel, the crop section disappears and I can't get it back when I re-select Crop tool. If I select Save as... it saves the whole document...and not just my crop section.
    Like I said, simple question...but I just don't know the secret to the Illustrator crop tool.
    Thanks!
    Yzza

    Either press the Tab key or F key.

  • A Simpler, More Direct Question About Merge Joins

    This thread is related to Merge Joins Should Be Faster and Merge Join but asks a simpler, more direct question:
    Why does merge sort join choose to sort data that is already sorted? Here are some Explain query plans to illustrate my point.
    SQL> EXPLAIN PLAN FOR
      2  SELECT * FROM spoTriples ORDER BY s;
    PLAN_TABLE_OUTPUT
    |   0 | SELECT STATEMENT |              |   998K|    35M|  5311   (1)| 00:01:04|
    |   1 |  INDEX FULL SCAN | PKSPOTRIPLES |   998K|    35M|  5311   (1)| 00:01:04|
    ---------------------------------------------------------------------------------Notice that the plan does not involve a SORT operation. This is because spoTriples is an Index-Organized Table on the primary key index of (s,p,o), which contains all of the columns in the table. This means the table is already sorted on s, which is the column in the ORDER BY clause. The optimizer is taking advantage of the fact that the table is already sorted, which it should.
    Now look at this plan:
    SQL> EXPLAIN PLAN FOR
      2  SELECT /*+ USE_MERGE(t1 t2) */ t1.s, t2.s
      3  FROM spoTriples t1, spoTriples t2
      4  WHERE t1.s = t2.s;
    Explained.
    PLAN_TABLE_OUTPUT
    |   0 | SELECT STATEMENT       |              |    11M|   297M|       | 13019 (6)| 00:02:37 |
    |   1 |  MERGE JOIN            |              |    11M|   297M|       | 13019 (6)| 00:02:37 |
    |   2 |   SORT JOIN            |              |   998K|    12M|    38M|  6389 (4)| 00:01:17 |
    |   3 |    INDEX FAST FULL SCAN| PKSPOTRIPLES |   998K|    12M|       |  1460 (3)| 00:00:18 |
    |*  4 |   SORT JOIN            |              |   998K|    12M|    38M|  6389 (4)| 00:01:17 |
    |   5 |    INDEX FAST FULL SCAN| PKSPOTRIPLES |   998K|    12M|       |  1460 (3)| 00:00:18 |
    Predicate Information (identified by operation id):
       4 - access("T1"."S"="T2"."S")
           filter("T1"."S"="T2"."S")I'm doing a self join on the column by which the table is sorted. I'm using a hint to force a merge join, but despite the data already being sorted, the optimizer insists on sorting each instance of spoTriples before doing the merge join. The sort should be unnecessary for the same reason that it is unnecessary in the case with the ORDER BY above.
    Is there anyway to make Oracle be aware of and take advantage of the fact that it doesn't have to sort this data before merge joining it?

    Licensing questions are best addressed by visiting the Oracle store, or contacting a salesrep in your area
    But I doubt you can redistribute the product if you aren't licensed yourself.
    Question 3 and 4 have obvious answers
    3: Even if you could this is illegal
    4: if tnsping is not included in the client, tnsping is not included in the client, and there will be no replacement.
    Tnsping only establishes whether a listener is running and shouldn't be called from an application
    Sybrand Bakker
    Senior Oracle DBA

  • SOS!! Simple yes/no question about JPA...

    Hello,
    I have the following environment and requirements:
    -Tomcat 5.5 (no ejb container)
    -Latest version of Hibernate
    -JSF 1.1
    -A requirement to use JPA
    -I must use the query cache and the second-level cache
    My question is as follows:
    What is the best solution?
    Solution 1.
    ONE EntityManagerFactory stored in the ServletContext for use by all of my web app users generating MULTIPLE INSTANCES of EntityManagers. (would this allow me to use the query cache?)
    Solution 2.
    ONE EntityManagerFactory and ONE EntityManager stored in the ServletContext for use by all of my web app users.
    Thanks in advance,
    Julien.

    Regarding caching, what exactly are you referring to
    by "query cache"? Are you saying you
    plan to execute the same query multiple times but
    you'd like the underlying persistence manager
    to avoid trips to the actual database? Whether the
    query is executed by an actual database
    access or is fulfilled through some JVM-local cache
    is not controlled by the spec. Most implementations
    do allow for such caching but the behavior is
    persistence-provider specific.Yes. I am actually using hibernate behind the scenes as my persistence framework.
    I'd suggest looking at the presentation from last
    year's JavaOne called "Persistence In the
    Web Tier"
    http://developers.sun.com/learning/javaoneonline/2006/
    webtier/TS-1887.pdfI am going to have a look at that.
    Thanks again.
    Julien.

  • NEWBIE: help with simple JSF question

    Hi, I'm having trouble wrapping my head around how JSF is supposed to be used for something.
    Let's say I have a list of people on the left, and I want to show the selected person in an editor on the right (so you can change the name and phone number and click 'save changes', for example).
    So I have a <h:selectOneListbox> with a <f:valueChangeListener>. Something like this:
    <h:selectOneListbox value="#{personController.selectedPerson}">
    <f:selectItems value="#{personController.listOfPersons}" />
    <f:valueChangeListener type="PersonSelectionListener" />
    </h:selectOneListbox>
    So in Java I have 2 objects.
    1. PersonController which maintains the list of persons and the selected person and is identified as a session bean in the faces-config.xml
    2. PersonSelectionListener which listens for selection changes and does something with the selection, let's say it writes the selected person's name to a log file just for sake of example.
    My question is, when the PersonSelectionListener detects that a selection change has occurred, how should I get the selected person from the person controller so I can, say, write the name to a log file?
    (Note: I'm pretty sure I can make the PersonController and the PersonSelectionListener the same object and just reference the selectedPerson member variable -- but I'm trying to wrap my head around how objects are supposed to interact in a JSF application, so let's assume they have have to be separate objects.)
    Any information is greatly appreciated. Thanks!

    Normally I would tell you to inject the PersonController bean into the PersonSelectionListener bean as a managed property. Then drill into the bean to get the data you need.
    However, in this case you are dealing with a value change listener. Value change events are fired at the end of the Process Validations phase, before the Update Model Values phase. So in this case, the PersonController bean will not contain the selected person from the request. This is not a problem however, since the new value is passed via the ValueChangeEvent object.

  • JSF question

    We have simple template, which have four �c:import� directive to dynamically include pages which present different areas on the screen.
    On one from the imported JSF pages, let�s say <c:import url="/pages/tiles/tree.jsp"/>
    we have a tree leaf selected listener attached to the tree element WGF.
    In listener code we need dynamically add elements to other JSF page, let�s say it�ll be
    <c:import url="/pages/index.jsp"/>
    The question is: how could we make it?
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=windows-1251"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@ taglib uri='/WEB-INF/security.tld' prefix='security'%>
    <security:enforceLogin loginPage='/faces/pages/wrapper/registrationWR.jsp'
    errorPage='/faces/pages/wrapper/registrationWR.jsp'/>
    <f:view>
    <h:panelGrid columns="1" width="100%" border="1" frame="none">
    <f:facet name="header">
    <f:subview id="header">
    <c:import url="/pages/tiles/top.jsp"/>
    </f:subview>
    </f:facet>
    <f:facet name="footer">
    <h:panelGroup>
    <af:panelHorizontal halign="center">
    <f:subview id="footer">
    <c:import url="/pages/tiles/bottom.jsp"/>
    </f:subview>
    </af:panelHorizontal>
    </h:panelGroup>
    </f:facet>
    <afh:tableLayout width="100%" borderWidth="3" cellSpacing="10"
    halign="center">
    <afh:rowLayout>
    <afh:cellFormat height="100%" width="30%">
    <af:panelHorizontal halign="center">
    <f:subview id="tree">
    <c:import url="/pages/tiles/tree.jsp"/>
    </f:subview>
    </af:panelHorizontal>
    </afh:cellFormat>
    <afh:cellFormat width="70%">
    <af:panelHorizontal halign="center">
    <f:subview id="body">
    <c:import url="/pages/index.jsp"/>
    </f:subview>
    </af:panelHorizontal>
    </afh:cellFormat>
    </afh:rowLayout>
    </afh:tableLayout>
    </h:panelGrid>
    </f:view>
    Currently we could get access only elements inside template JSF page, using next simple code:
    try {
    ArrayList paramList = myObject.getparamlist();
    FacesContext context = FacesContext.getCurrentInstance();
    List list = context.getViewRoot().getChildren();
    Iterator itr = list.iterator();
    while (itr.hasNext()) {
    HtmlPanelGrid panel = (HtmlPanelGrid)itr.next();
    list = panel.getChildren();
    itr = list.iterator();
    while (itr.hasNext()) {
    Object object = itr.next();
    Class cl = object.getClass();
    System.out.println(cl.getName());
    } // while
    } // while
    Also it�ll be very nice if it�ll be possible not only add elements to the same screen but make navigation to other JSF template and add elements to one from JSF pages that template use.

    This guy seemed to have a rough solution:
    http://forum.java.sun.com/thread.jspa?forumID=427&threadID=558772
    Illu
    (And please don't pretend to be someone else - ie Dravid - to bump your posts up the forum. Thanks.)

  • Simple Java SDK question for server group assignment

    I have a snippet of code below in which I am trying to apply the setProcessingServerGroup() and setProcessingServerGroupChoice() methods to my report object. My question should be relatively simple: I believe I need to cast(?) my iObject report object to iProcessingServerGroupInfo per the API in order to use the setProcessingServerGroup() and setProcessingServerGroupChoice() methods, but I'm not sure how to do so.
    Can someone please advise how to cast my iObject to iProcessingServerGroupInfo?
    Thanks in advance...
    Code:
    IInfoObject iObject = (IInfoObject) childReports.get(i); 
    int sgID_view = Integer.parseInt(serverGroupID_view);
    int sgPref_view = Integer.parseInt(serverGroupPref_view);
    !!!!!  CONVERSION / CAST NEEDED HERE !!!!!
    iProcessingServerGroupInfo.setProcessingServerGroup(sgID_view);
    iProcessingServerGroupInfo.setProcessingServerGroupChoice(sgPref_view);

    To followup, I've been able to cast to IShedulingInfo in order to use the setServerGroup() and setServerGroupChoice() methods successfully:
    IInfoObject iObject = (IInfoObject) iObjects.get(i);    
    ISchedulingInfo iSchedulingInfo = iObject.getSchedulingInfo();
    iSchedulingInfo.setServerGroup(427);
    iSchedulingInfo.setServerGroupChoice(2);
    But I don't know how to perform the cast to be able to access the setProcessingServerGroup(), sterProcessingServerGroupChoice() methods.
    Any help appreciated.
    Thanks!

  • Simple java architecture question

    This should be a simple question to answer but I haven't been able to find a good answer.
    I have an application that establishes a network connection with a server and registers event listeners on that connection.
    What I want to do is find a way without a busy-wait/while loop to keep the main() thread running so that the listeners can do their job.
    Here is a sample of what I've got:
    public static void main(String[] args)
    SomeConnection conn1 = null;
    try
    conn1 = new SomeConnection("someaddress");
    TrafficManager tm = conn1.getTraffictManager();
    TrafficHandler th = tm.createTraffichandler(new MessageListener()
                        public void processMessage(Message message)
                             System.out.println("Received: " + message.toString());
         catch (Exception e)
              e.printStackTrace(System.out);
         conn1.disconnect();
    The problem is that the application doesn't stay running to respond to traffic coming across the connection.
    Any guidance would be appreciated.
    Thanks

    Well, what is the job of the MessageListener if it isn't to listen for messages? And apparently it isn't doing that because your application terminates.
    Bear in mind that I don't have any idea how any of those four classes work, or even how they are supposed to work. So let me just quote this line from the API documentation of the Thread class which says when your application will terminate:
    "All threads that are not daemon threads have died, either by returning from the call to the run method or by throwing an exception that propagates beyond the run method."
    That must be the case in your application.

  • Simple Java Coding Question

    I know this is a simple question, but I can't search for the answer to this because it involves syntax that Google and the like don't seem to search for..
    I am trying to figure out some Java code that I have found. I would like to know what:
    a[--i] and a[++j] mean.
    My first thought was that they meant to look at the position in the array one less (or more) than i (j). But that doesn't seem to be the case. A is an array of Strings, if that matters...
    Thanks for you help.

    muiajc wrote:
    I know this is a simple question, but I can't search for the answer to this because it involves syntax that Google and the like don't seem to search for..
    I am trying to figure out some Java code that I have found. I would like to know what:
    a[--i] and a[++j] mean.
    It mean increase/decrease the int i/j by 1. This is done before it gets you the value of a[]. for example if i=5 and you said a[--i] it is really a[4] and i is now equal to 4;

  • Simple Java EJB question.

    When it comes to EJB v3 Remote and Local interfaces,
    (With JBoss EJB Container Software in mind, for this question,)
    -Does the Remote interface for the EJB include method signatures from the Bean class
    -that are to be seen
    -that are to be hidden?
    -Does the Local interface for the EJB include method signatures from the Bean class
    -that are to be seen
    -that are to be hidden?
    Which is which for
    -EJB 2.1 ?
    -EJB 3.x ?
    - is EJB 3.x reverse compatible in that it allows use of the javax.ejb.* interfaces,
    and would accept a EJB 2.1 approach, or does it force one to use Annotations
    exclusively?
    Edited by: Zac1234 on Jul 21, 2010 5:21 PM

    muiajc wrote:
    I know this is a simple question, but I can't search for the answer to this because it involves syntax that Google and the like don't seem to search for..
    I am trying to figure out some Java code that I have found. I would like to know what:
    a[--i] and a[++j] mean.
    It mean increase/decrease the int i/j by 1. This is done before it gets you the value of a[]. for example if i=5 and you said a[--i] it is really a[4] and i is now equal to 4;

  • A few simple (?) dimension questions...

    Hi, I have a few really simple dimension questions that I just can't figure out in OWB (which I'm just now starting to play with):
    1) I'm trying to create a dimension that has no levels or any hierarchy. In the BI tool, I just want this dimension to act as a "pick list" for one of 8 values (DW data snapshot dates for the last 8 weeks...) Users won't summarize by this dimension, or ever have more than 1 week selected at a time. How can I set this type of dimension up?
    2) Somewhat related to #1 - just to get something working, I set up a "time in weeks" dimension not as a time dimension, just as a normal user dimension. I then added a single "weeks" level with a surrogate key (using "key" instead of "id"), short desc (as the business key), and long description. Set up a mapping from my source table, everything worked fine. The strange thing I've notcied is that the relational table produced has both a "week_key" column and a "dimension_key" column. How can I get rid of the "dimension_key" column - its just an exact duplicate of the lowest level key column? Note - we will have a dimension table with over 1.3 BILLION rows in our warehouse - so duplicating this column does add a significant amount of overhead - this isn't just an academic problem.
    3) related to building this "test" dimension - my source table has 8 records in it. Whenever I run the ETL to populate the dimension table, the surrogate keys end up being key values 9 - 16 instead of 1 - 8. Note this is even if I reset the sequence number to 1 before I start, etc. My understanding is that Oracle uses a variable width number field when storing data - so having this dimension with values 1-8 instead of 9-16 saves approx a byte for every fact table record (which we're predicting will be in the range of 20 - 50 BILLION rows). How can I force the dimension to start numbering at 1?
    Thanks in advance,
    Scott

    Hi
    Reg #2, I do not think we can get rid of the "dimension key". It looks like OWB is creating this column as a default Primary Key and hence is not possible to remove this. May be if we build the base Table for dimension as a normal relational table, which will allow us to define our own keys, and then build the "Dimension" using AWM on this relation table may resolve the issue of having duplicate primary keys. Its only a thougt, have not tested though.
    rgds
    Mahesh

  • Ridiculously simple audio editing question for Garage Band

    Ok, so this is really a fundamental
    question. It concerns editing technique.
    In analog mixing, the editor put
    the sounds to be saved in the right
    places on each of several tracks --
    narration, sound effects, lip sync,
    music, etc. The tracks were then
    all locked together and the mixer
    adjusted the volumes to either save
    or reject audio information.
    A blank master received the information
    and that was your final product,
    in sync, sprocket by sprocket, with
    the video.
    My question, then, is, how do you
    do it in digital multitrack such as
    Garage Band? Are you aiming to have
    4 or 5 tracks all level controlled
    or do you simple erase unwanted
    sound, or what exactly do you do,
    in post production? If you are going
    to do a voice over, then you have to
    do a mix at some point, not just a
    cut and paste. What's the philosophy,
    if you don't mind my asking?
    Thanks,
    Ed

    Wow... you gave me flashbacks to a movie soundtrack I scored, with separate reels of tape all synced up and whirling away for final mixdown!
    To answer your question as best I can in a paragraph or two, digital mixing is unlimited compared to analog. Whereas tape has a physical limit, you can always add another digital track (there are limitations to digital, but they are becoming harder to reach as systems become increasingly powerful). So no need to erase. Editing is also a breeze. Digital tracks are endlessly malleable, with virtually every parameter available for automation.
    Sometimes you might mix down to stems or mix everything down to a stereo master (or alternative mixes) for post production. Similarly, in post, they can deal with huge numbers of digital tracks from different sources.
    In terms of a professional workflow, Logic is the more typical choice over Garageband, and includes a number of features designed for scoring to picture: variable sample rates, frame rates, etc.
    Gain staging in digital recording is different than in analog, and it requires a different approach to achieve excellent sounding results. But the digital workflow is so much more flexible, forgiving, and economical, that it has been the death-knell for the analog workflow. Infinite bussing, routing, mixing, comping, storing, stemming... infinite possibilities, really!

  • Java Script and JSF question

    Hello,
    I have a JSF component like this that has a pageSize attribute. It shows a grid with 5 elements.
    <x:gridView id="#{tab}GridView" pageSize="5">
    </f:gridView>Then I have a drop down with 5 menu items where the user can select how many elements they want to see visible on the grid. My question is, how do i use Java Script to to change the pageSize attribute above with what the user selected in the menu below? I have been looking at java script code and online docs for an hour and cant come up with anything that seems to work. Any help will be appriciated. Thank you!!!
    <x:selectOneMenu id="myMenu" onclick="">
      <f:selectItem id="perPage1" itemValue="1" itemLabel="1" />
      <f:selectItem id="perPage2" itemValue="2" itemLabel="2" />
      <f:selectItem id="perPage3" itemValue="3" itemLabel="3" />
      <f:selectItem id="perPage4" itemValue="4" itemLabel="4" />
      <f:selectItem id="perPage5" itemValue="5" itemLabel="5" />
    </x:selectOneMenu>

    [...]how it was never designed to be used for
    such large applications[...]All I can say is that if this is true, then it doesn't show. Yes, I know it (oak) was originally designed for embedded systems, but Java and Oak aren't identical.
    My assembly teacher
    always makes fun of Java, saying java gives you far
    less control, it prevents you from making mistakes.
    No control over unsigned/ signed values, pointers
    etc. Yes. But broadly speaking that's the point. Java sacrifices control over such things. The return, however, is that programmers are able to be more productive because of the great swathes of problems that can no longer arise.
    The mistake is in assuming that Java is the best tool for everything. It isn't, and in fact no language us. As it turns out, Java is just great for building enterprise systems. It has a few other strengths, some of which (applets for example) have been more important in its original uptake but are now relatively minor features.
    You don't write an enterprise website in Intel assembly, and you don't write device drivers in Java.
    Not saying its not good but its good for
    smaller applications like cell phones and
    mini-computers.I think you mean something different by mini-computers to what I mean...
    Its portability is actually the main point in its favour for use in cell phones. If it weren't for that, I think C or C++ would probably have sole ownership of that space.
    Now i'm not saying any thing against it just
    confused on why a class like data-structures at my
    University [...] would be taught using java when C would
    probably be a lot better for Very Large ADTS.You and Joel Spolsky:
    http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
    I disagree, because I don't think it much matters what language you learn - experience trumps any particular initial language choice. If you're still using Java in 15 years I'll be fairly surprised.

Maybe you are looking for

  • HELP: Import my own class in JSP ???

    Hi, all! I read many previous topics in this forum but no one works for me! Please someone help me! I'm using Tomcat 4.1.12 and my JSP scripts work just fine, but I need to import my own .class file. I just don't know where to put it so Tomcat can fi

  • TS4062 Invalid Response?

    So I simply cannot sync my iPod to the computer with USB or Wi-Fi. Only because I keep recieving an error that reads my ipod is getting an invalid response. I have tried everything for the last two days and dont know what to do. My iPod is 4th Genera

  • Hide delete button in music app

    Hi all, I've searched all over the web for this and i can't find the answer. Everything seems focused on how you delete music but not how to PREVENT music being deleted. My predicament: My autistic brother has an ipod touch. He has been known to acci

  • Lightroom Icon missing in Creative Cloud

    I have the $9.99 a month plan for Photoshop. This also gives me Bridge and Lightroom. I have downloaded all three and they are working fine. However the Lightroom Icon has disappeared from the Creative Cloud module. I have checked the Apps section an

  • Error while enhancing a Window.

    Hi experts,         I have enhanced the component BT111S_OPPT the view Result but when I am trying to enhance the window MainWindow, it is giving me the followin two errors :-            1> Context cannot be enhanced            2> Generation of deriv