facebook

JSP compiler "cannot load class" from ‘Add Jar…’

  1. MyEclipse Archived
  2.  > 
  3. Bugs
Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #199204 Reply

    robwunderlich
    Participant

    I am receiving the JSP compile error

    cannot load class: webcrm.WebUserSession    dbtest.jsp webcrm/WebRoot/monitor    line 1

    However, the application runs fine. The class is compiled without errors. This problem *does not occur in myEclipse 2.5.1.*

    Contents of dbtest.jsp:

    <jsp:useBean id="user" class="webcrm.WebUserSession" scope="session"/>
    <jsp:useBean id="orders" class="webcrm.OrdersJSP" scope="request"/>
    <jsp:setProperty name="orders" property="user" value="<%= user %>"/>
    (remainder omitted)

    The useBean tag for webcrm.WebUserSession appears in almost every jsp in my project, either explicitly or via include. All jsp with that useBean are posting the error.

    I am also receiving this error for class webcrm.WebUserManager. No other classes are not being flagged, even though they use similar useBean tags.

    The only thing that seems to be different about the classes that are being flagged is that they implement interfaces that are declared outside the project.

    Specs:
    Win2k SP4

    Eclipse Platform
    Version: 2.1.1
    Build id: 200306271545
    Upgraded from 2.1.0 using update manager.

    org.eclipse.pde.* plugins=7
    MyEclipse 2.6.2
    JDK 1.4.2
    Tomcat 4.24

    Thanks,
    Rob Wunderlich

    #199208 Reply

    support-michael
    Keymaster

    If the interface that the problematic classes implement is defined in another Eclipse project just add that project to the build path of your web-project.

    1) Select the web-project, right click>Properties>Java Build Path>Projects tab.
    2) Then select the project that contains the interface followed by OK.
    3) Lastly rebuild all JSPs to resolve the dependence on the interface.

    Michael
    MyEclipse Support

    #199216 Reply

    robwunderlich
    Participant

    The project that contains the interface *is* on the classpath. The java classes compile fine. It is only the JSP files that have report problems. Note the application executes fine.

    Please note that this problem does not appear in myEclipse 2.5.1, and I am not having this problem with any other projects.

    .

    #199231 Reply

    Scott Anderson
    Participant

    Rob,

    The only thing that seems to be different about the classes that are being flagged is that they implement interfaces that are declared outside the project.
    The project that contains the interface *is* on the classpath. The java classes compile fine. It is only the JSP files that have report problems. Note the application executes fine.

    I’ve run a test where I set up a web project and a simple JSP page with a use-bean tag that references a class defined within the project. The bean class implements an interface I’ve defined in an external project that is referenced on the Java build path. The JSP compiles without any issues. Does that sound like a valid test?

    There is one difference in our environments. I’m using the pre-release candidate build for version 2.6.3, which should be available no later than Monday. If you agree that the test is valid, I think the problem has been fixed as a side effect of addressing a couple of other issues in the JSP editor.

    –Scott
    MyEclipse Support

    #199246 Reply

    robwunderlich
    Participant

    I’ve done some more testing and narrowed the problem down. The problem occurs when the useBean attempts to resolve a class in the hierarchy that is contained in a jar in another project.

    Here’s a simple test case.
    1. Create a class “MySuperclass”. It need not have any methods.
    2. JAR MySuperclass.class to mysuper.jar
    3. Create a simple project “myjar”. Put mysuper.jar in the myjar project.

    4. Create J2EE Web Module project, “MyBugTest”.
    5. Add mysuper.jar to the MyBugTest project using the “Add JARs” button on the Java Build Path window (Do not use the “Add External JARs” button).
    6. In project MyBugTest, create a simple class “MySubclass” that extends “MySuperclass”. It should compile ok.
    7. In project MyBugTest, create test.jsp which has text:

    <jsp:useBean id="user" class="MySubclass" scope="session"/>

    The JSP compile will report error “cannot load class: MySubclass”.

    8. Note the error also occurs if the useBean references the JARed class directly, that is:

    <jsp:useBean id="user" class="MySuperclass" scope="session"/>

    The problem does not occur if mysuper.jar is added to the classpath using the “Add External JARs” button on the Java Build Path window. For now, this is an acceptable workaround for me.

    -Rob Wunderlich

    #199257 Reply

    Scott Anderson
    Participant

    Rob,

    Thank you very much for the detail you provided after running this down. You even included a workaround. 🙂

    I’ve placed the issue and your detailed steps to reproduce it into our internal tracking system so that we can resolve it in an upcoming service release.

    –Scott
    MyEclipse Support

Viewing 6 posts - 1 through 6 (of 6 total)
Reply To: JSP compiler "cannot load class" from ‘Add Jar…’

You must be logged in to post in the forum log in