Bonjour,

j'essaye depuis 2 jours d'utiliser Quercus avec Jetty (sous forme embedded)

J'utilise Jetty 7.0.0 et Quercus 3.2.1 j'ai utilisé les lib *.jar contenus dans le war dispo sur le site de caucho.com

Le tout marche PRESQUE impeccable

Voici le code que j'utilise coté serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
    Server server = new Server();
 
    Connector connector=new SelectChannelConnector();
    connector.setPort(Integer.getInteger("jetty.port",8080).intValue());
    server.setConnectors(new Connector[]{connector});
 
    WebAppContext webapp = new WebAppContext();
    webapp.setContextPath("/");
    webapp.setWar(jetty_home+"/webroot");
    webapp.setDefaultsDescriptor(jetty_home+"/etc/webdefault.xml");
 
    server.setHandler(webapp);
 
    server.start();
Le problème, c'est que lorsque je veux charger un fichier php. Au premier chargement (sur la première page) j'ai TOUJOURS une erreur 500, et l'exception suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2009-05-03 16:43:16.789::WARN:  /index.php
com.caucho.quercus.QuercusRuntimeException: java.lang.ClassNotFoundException: 'org.mortbay.jetty.HttpConnection' is not a known Java class: java.lang.ClassNotFoundException: org.mortbay.jetty.HttpConnection
	at com.caucho.quercus.module.ModuleContext.getJavaClassDefinition(ModuleContext.java:270)
	at com.caucho.quercus.function.MarshalFactory.create(MarshalFactory.java:230)
	at com.caucho.quercus.function.MarshalFactory.create(MarshalFactory.java:70)
	at com.caucho.quercus.env.JavaInvoker.init(JavaInvoker.java:214)
	at com.caucho.quercus.env.JavaInvoker.getHasRestArgs(JavaInvoker.java:265)
	at com.caucho.quercus.env.JavaOverloadMethod.overload(JavaOverloadMethod.java:76)
	at com.caucho.quercus.env.JavaOverloadMethod.<init>(JavaOverloadMethod.java:50)
	at com.caucho.quercus.env.AbstractJavaMethod.overload(AbstractJavaMethod.java:96)
	at com.caucho.quercus.program.JavaClassDef.introspect(JavaClassDef.java:890)
	at com.caucho.quercus.program.JavaClassDef.init(JavaClassDef.java:833)
	at com.caucho.quercus.Quercus.getJavaClassDefinition(Quercus.java:685)
	at com.caucho.quercus.env.Env.getJavaClassDefinition(Env.java:3381)
	at com.caucho.quercus.env.Env.wrapJava(Env.java:3513)
	at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:151)
	at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:407)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
	at org.mortbay.jetty.security.ConstraintsSecurityHandler.handle(ConstraintsSecurityHandler.java:220)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:822)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:305)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:324)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:550)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:876)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:535)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:407)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:421)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: java.lang.ClassNotFoundException: 'org.mortbay.jetty.HttpConnection' is not a known Java class: java.lang.ClassNotFoundException: org.mortbay.jetty.HttpConnection
	at com.caucho.quercus.module.ModuleContext.getJavaClassDefinition(ModuleContext.java:254)
	... 30 more
Caused by: java.lang.ClassNotFoundException: org.mortbay.jetty.HttpConnection
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:317)
	at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:279)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at com.caucho.quercus.module.ModuleContext.getJavaClassDefinition(ModuleContext.java:251)
	... 30 more


Ensuite, je peux charger autant de pages que je veux, ça marche impec !

Est ce quelqu'un a une idée du pourquoi de cette exception au premier chargement ?

Merci d'avance,

Mickael



PS : Voici aussi le fichier xml de conf de ma webapp :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 
  xmlns="http://java.sun.com/xml/ns/javaee" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
  version="2.5"> 
 
<description>
 Test
</description>
 
 
<servlet>
 <servlet-name>Quercus Servlet</servlet-name>
 <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
</servlet> 
 
<servlet-mapping>
  <servlet-name>Quercus Servlet</servlet-name>
  <url-pattern>*.php</url-pattern>
</servlet-mapping>
 
<session-config>
  <session-timeout>30</session-timeout>
</session-config>
 
<welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.php</welcome-file>
</welcome-file-list>
 
</web-app>