Bugs item #668291, was opened at 2003-01-15 13:54
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=668291&group_id=22866

Category: JBossWeb
Group: v3.0 Rabbit Hole
>Status: Pending
Resolution: None
Priority: 5
Submitted By: Brian Bannister (beoch)
Assigned to: Jules Gosnell (jules_gosnell)
Summary: Jasper in release 3.0.5 is 

Initial Comment:
Windows 2000 
JDK 1.4.1_01
JBoss 3.0.5

I'm getting JSP compile errors that do not occur in 
JBoss 3.0.4. Jasper complains that it can't find a class 
that is definately in the deployed war. Using the same 
ear on JBoss 3.0.4 I get no problems.

The traces from JBoss-3.0.5 and JBoss-3.0.4 are 
attached, as well as the war manifest showing the class 
that Jasper can't find.

The exception thrown is:


Time: 13:42:55  Priority: WARN  Thread: PoolThread-
4  NDC: null Category: org.jboss.jbossweb Location: 
org.jboss.logging.Logger.warn(Logger.java:167) 
Message:
WARNING: Exception for 
http://192.223.0.59:8080/itochu/newsticker/view/45/dyna
micMedia/x-news-ticker.jsp
org.apache.jasper.JasperException: Unable to compile 
class for JSPNote: sun.tools.javac.Main has been 
deprecated.


An error occurred at line: 2 in the jsp 
file: /45/dynamicMedia/x-news-ticker.jsp

Generated servlet error:
C:\DOCUME~1\brianb\LOCALS~1
\Temp\Jetty_0_0_0_0_8080__itochu_newsticker\45
\dynamicMedia\x_0002dnews_0002dticker$jsp.java:65: 
Class 
com.activesky.itochu.newsticker.view.NewsTickerView 
not found.
        
com.activesky.itochu.newsticker.view.NewsTickerView 
viewParameter = null;
                                            ^


An error occurred at line: 2 in the jsp 
file: /45/dynamicMedia/x-news-ticker.jsp

Generated servlet error:
C:\DOCUME~1\brianb\LOCALS~1
\Temp\Jetty_0_0_0_0_8080__itochu_newsticker\45
\dynamicMedia\x_0002dnews_0002dticker$jsp.java:68: 
Class 
com.activesky.itochu.newsticker.view.NewsTickerView 
not found.
          viewParameter= 
(com.activesky.itochu.newsticker.view.NewsTickerView)
                                                              ^


An error occurred at line: 2 in the jsp 
file: /45/dynamicMedia/x-news-ticker.jsp

Generated servlet error:
C:\DOCUME~1\brianb\LOCALS~1
\Temp\Jetty_0_0_0_0_8080__itochu_newsticker\45
\dynamicMedia\x_0002dnews_0002dticker$jsp.java:73: 
Class 
com.activesky.itochu.newsticker.view.NewsTickerView 
not found.
              viewParameter = 
(com.activesky.itochu.newsticker.view.NewsTickerView) 
java.beans.Beans.instantiate(this.getClass
().getClassLoader
(), "com.activesky.itochu.newsticker.view.NewsTickerVie
w");
                                                                   ^
3 errors, 1 warning

        at 
org.apache.jasper.compiler.Compiler.compile
(Compiler.java:289)
        at 
org.apache.jasper.servlet.JspServlet.loadJSP
(JspServlet.java:548)
        at 
org.apache.jasper.servlet.JspServlet$JspServletWrapper.l
oadIfNecessary(JspServlet.java:176)
        at 
org.apache.jasper.servlet.JspServlet$JspServletWrapper.
service(JspServlet.java:188)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:381)
        at org.apache.jasper.servlet.JspServlet.service
(JspServlet.java:473)
        at javax.servlet.http.HttpServlet.service
(HttpServlet.java:853)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle
(ServletHolder.java:360)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatc
h(WebApplicationHandler.java:280)
        at 
org.mortbay.jetty.servlet.Dispatcher.dispatch
(Dispatcher.java:194)
        at org.mortbay.jetty.servlet.Dispatcher.forward
(Dispatcher.java:129)
        at 
com.activesky.servlet.FrontController.doGet
(FrontController.java:46)
        at javax.servlet.http.HttpServlet.service
(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service
(HttpServlet.java:853)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle
(ServletHolder.java:360)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$Chain.d
oFilter(WebApplicationHandler.java:328)
        at 
com.activesky.aserver.mbroker.MediaBrokerFilter.doFilte
r(MediaBrokerFilter.java:138)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$Chain.d
oFilter(WebApplicationHandler.java:320)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatc
h(WebApplicationHandler.java:272)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:553)
        at org.mortbay.http.HttpContext.handle
(HttpContext.java:1656)
        at 
org.mortbay.jetty.servlet.WebApplicationContext.handle
(WebApplicationContext.java:549)
        at org.mortbay.http.HttpContext.handle
(HttpContext.java:1606)
        at org.mortbay.http.HttpServer.service
(HttpServer.java:862)
        at org.jboss.jetty.Jetty.service(Jetty.java:497)
        at org.mortbay.http.HttpConnection.service
(HttpConnection.java:752)
        at 
org.mortbay.http.HttpConnection.handleNext
(HttpConnection.java:916)
        at org.mortbay.http.HttpConnection.handle
(HttpConnection.java:769)
        at 
org.mortbay.http.SocketListener.handleConnection
(SocketListener.java:202)
        at org.mortbay.util.ThreadedServer.handle
(ThreadedServer.java:289)
        at 
org.mortbay.util.ThreadPool$PoolThread.run
(ThreadPool.java:455)
Throwable:
null

----------------------------------------------------------------------

>Comment By: Brian Bannister (beoch)
Date: 2003-01-21 13:53

Message:
Logged In: YES 
user_id=651952

Yay that works. Thanks for the help. 

Cheers

Brian

----------------------------------------------------------------------

Comment By: Jules Gosnell (jules_gosnell)
Date: 2003-01-20 20:24

Message:
Logged In: YES 
user_id=49106

Try passing in the
Thread.currentThread().getContextClassLoader() when you do
your Class.forName().

If this works, let me know and I will close this bug,

Jules



----------------------------------------------------------------------

Comment By: Brian Bannister (beoch)
Date: 2003-01-20 11:06

Message:
Logged In: YES 
user_id=651952

I've rebuilt my war, putting the classes into WEB-INF/classes 
and the JSP compiles correctly. Sorry for the blunder.

There is no problem (on Windows 2000) with spaces in the 
name of the tmp directory. Results (both good and bad) are 
exactly the same with or without spaces.

I am seeing a different problem when I deploy a correctly 
structured war, which I'll investigate properly and then raise 
as a seperate bug if need be. I'm getting an exception when I 
try to use classes from this war in a servlet rather than a 
JSP. The only workaround I've got at the moment is to archive 
the classes both in the root of the war and also in WEB-INF 
classes. When I call:

Class.forName(String)

in a servlet in the same war I see:

java.lang.ClassNotFoundException: No ClassLoaders found 
for: 
com.activesky.itochu.newsticker.delegate.NewsTickerModelD
el
egate
        at org.jboss.mx.loading.LoadMgr.beginLoadTask
(LoadMgr.java:155)
        at org.jboss.mx.loading.UnifiedClassLoader3.loadClass
(UnifiedClassLoader3.java:161)
        at java.lang.ClassLoader.loadClass
(ClassLoader.java:255)
        at java.lang.ClassLoader.loadClassInternal
(ClassLoader.java:315)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:140)
        at com.activesky.servlet.ModelDelegateSupport.<init>
(ModelDelegateSupport.java:105)
        at com.activesky.servlet.FrontController.init
(FrontController.java:62)
        at org.mortbay.jetty.servlet.ServletHolder.getServlet
(ServletHolder.java:280)
        at org.mortbay.jetty.servlet.ServletHolder.handle
(ServletHolder.java:333)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilt
er(WebApplicationHandler.java:328)
        at 
com.activesky.aserver.mbroker.MediaBrokerFilter.doFilter
(MediaBrokerFilter.java:138)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilt
er(WebApplicationHandler.java:320)
        at 
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch
(WebApplicationHandler.java:272)
        at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:553)
        at org.mortbay.http.HttpContext.handle
(HttpContext.java:1656)
        at 
org.mortbay.jetty.servlet.WebApplicationContext.handle
(WebApplicationContext.java:549)
        at org.mortbay.http.HttpContext.handle
(HttpContext.java:1606)
        at org.mortbay.http.HttpServer.service
(HttpServer.java:862)
        at org.jboss.jetty.Jetty.service(Jetty.java:497)
        at org.mortbay.http.HttpConnection.service
(HttpConnection.java:752)
        at org.mortbay.http.HttpConnection.handleNext
(HttpConnection.java:916)
        at org.mortbay.http.HttpConnection.handle
(HttpConnection.java:769)
        at org.mortbay.http.SocketListener.handleConnection
(SocketListener.java:202)
        at org.mortbay.util.ThreadedServer.handle
(ThreadedServer.java:289)
        at org.mortbay.util.ThreadPool$PoolThread.run
(ThreadPool.java:455)

----------------------------------------------------------------------

Comment By: Jules Gosnell (jules_gosnell)
Date: 2003-01-19 02:28

Message:
Logged In: YES 
user_id=49106

What is the latest on this ?

Is it a space encoding problem ? Do we have a testcase ?

Cheers,

Jules


----------------------------------------------------------------------

Comment By: Brian Bannister (beoch)
Date: 2003-01-17 23:08

Message:
Logged In: YES 
user_id=651952

Good call on the war structure Adrian. You're right the server-
side classes should be in WEB_INF/classes not in the root 
(checking the manifest below I can see that the structure is 
wrong). I'm using ant to create our archives and I've probably 
stuffed something up. (Can you tell I'm pretending that I didn't 
have to check the spec?)

If there is also a "spaces in path" issue then it's being 
masked by the war structure one. You can see in the 
3.2.0RC1 console trace below that I was using c:\tmp by the 
time that was created.

I'm at home now on a dial-up so I'll have a proper look at the 
code on Monday at work.

Cheers

Brian

----------------------------------------------------------------------

Comment By: Adrian Brock (ejort)
Date: 2003-01-17 17:27

Message:
Logged In: YES 
user_id=9459

I don't believe classes are supposed to be loaded from
wars and ears.
The correct location for unpacked classes is
WEB-INF/classes

Regards,
Adrian

----------------------------------------------------------------------

Comment By: Adrian Brock (ejort)
Date: 2003-01-17 17:17

Message:
Logged In: YES 
user_id=9459

This looks like a folder with spaces problem

JBossWebApplicationContext - correct :-)

String path = url.getPath();
if (path != null)
File f = new File(path);
...

Since your temp is in Document And Settings,
this will return Document%20And%20Settings
on 1.4 and f.exists() will fail.

Try changing your temp environment variable
to one without spaces.

I think the correct fix is:
path = java.net.URLDecoder.decode(path);
before constructing the file.

Regards,
Adrian


----------------------------------------------------------------------

Comment By: Brian Bannister (beoch)
Date: 2003-01-17 17:11

Message:
Logged In: YES 
user_id=651952

Hey Jules I just noticed your author tag on the code. Sorry for 
the obvious comments before, I wasn't sure how well you 
knew the codebase.

I think that I've got a fix for the problem:

on line 244 of 
org.jboss.jetty.JBossWebApplicationContext

you have

        if (f.exists() &&
         f.canRead() &&
         (f.isDirectory() ||
         path.endsWith(".jar")||
         path.endsWith(".zip")) &&
         (!list.contains(url))
         )

I think you need to add wars and ears to the list as well as 
jars. I made this change locally:

        if (f.exists() &&
         f.canRead() &&
         (f.isDirectory() ||
         path.endsWith(".jar")||
         path.endsWith(".war")||
         path.endsWith(".zip")) &&
         (!list.contains(url))
         )

And my jsp now compiles properly.

If you agree that this is a fix, will it be added into 3.0.5 or a 
later release?

Cheers

Brian

----------------------------------------------------------------------

Comment By: Brian Bannister (beoch)
Date: 2003-01-17 14:37

Message:
Logged In: YES 
user_id=651952

one more quick thing. I've had a look through the source for 
Jetty 4.2.4 and 4.2.5 and the differences look pretty minor.

Looking throught the JBoss 3.0.5 src for (src/jetty/main/)
org.jboss.jetty I can see that JBossWebApplicationContext 
has had changes made to the getFileClassPath() method. I'm 
guessing that this is close to the source of the bug.

Cheers

Brian

----------------------------------------------------------------------

Comment By: Brian Bannister (beoch)
Date: 2003-01-17 14:04

Message:
Logged In: YES 
user_id=651952

After a bit more testing I can see that the problem isn't 
actually in the jasper jars. If I run JBoss version 3.0.5, but in 
server/default/deploy/jbossweb.sar I deploy the 
org.apache.jasper.jar from version 3.0.4 I still see the same 
exception.

The problem lies somewhere either in 
org.jboss.jetty.jar 
or 
org.mortbay.j2ee.jar. 

If I again run 3.0.5 with the 3.0.4 version of these jars I do not 
see the exception.

Cheers

Brian

----------------------------------------------------------------------

Comment By: Brian Bannister (beoch)
Date: 2003-01-17 10:22

Message:
Logged In: YES 
user_id=651952

with 3.2.0RC1 we still se the same problem, I'm attaching the 
console trace. 

I don't see the problem with 3.0.5 or 3.2.0RC1 if I delete the 
server/default/deploy/jbossweb.sar and deploy the one from 
3.0.4 instead. I'll have a closer look and see if I can tie it 
down a bit more.

Cheers

Brian

----------------------------------------------------------------------

Comment By: Jules Gosnell (jules_gosnell)
Date: 2003-01-15 20:23

Message:
Logged In: YES 
user_id=49106

Would you try the latest 3.2 package....

As far as Jetty is concerned the only difference between
Jboss-3.0 and 3.2 is that 3.0 contains Jasper1 and 3.2
contains Jasper2.

If Jasper1 is broken, and Jasper2 works OK, then I will
probably upgrade  Jasper on jboss-3.2.

Jules


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=668291&group_id=22866


-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to