probleme de mapping d'une servlet
Bonjour,
Je viens d'installer en test Mondrian et JfreeCharts sur mon serveur.
J'avais d'abord fait une installation sur mon ordi perso et tout s'est très bien passé.
Puis j'ai voulu en faire de même sur le serveur et là, problème !
Les servlets qui se trouvent dans des .jar ne sont pas mappées correctement...
Ceci ressemble à un problème de classpath mais je ne parviens pas à le régler.
La requete http://cube.xxxx.com/Print?cube=01&type=0 exemple me revoie l'erreur :
Not Found
The requested URL /Print was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Le fichier de web.xml est un peu long, mais je vous le founis un peu plus loin.
Si quelqu'un peut m'aider (ce n'est probablement pas grand chose vu que la meme appli avec la meme arborescence fonctionne chez moi, de plus, j'ai volontairement introduit des erreurs dans le web.xml et plus rien ne fonctionne, il est donc bien pris en compte).
Merci par avance...
le web.xml :
Code:
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Id: //open/mondrian-release/3.1/demo/derby/web.xml#2 $
This software is subject to the terms of the Eclipse Public License v1.0
Agreement, available at the following URL:
<a href="http://www.eclipse.org/legal/epl-v10.html" target="_blank">http://www.eclipse.org/legal/epl-v10.html</a>.
(C) Copyright 2003-2005 Julian Hyde and others.
All Rights Reserved.
You must accept the terms of that agreement to use this software.
This is the default mondrian.war web.xml customized to use a Derby FoodMart
database which is exploded in the class path of the WAR.
-->
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Mondrian</display-name>
<description/>
<!-- optional? now in JPivot by default -->
<context-param>
<param-name>contextFactory</param-name>
<param-value>com.tonbeller.wcf.controller.RequestContextFactoryImpl</param-value>
</context-param>
<context-param>
<param-name>connectString</param-name>
<param-value>Provider=mondrian;Jdbc='jdbc:derby:classpath:/foodmart';Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=org.apache.derby.jdbc.EmbeddedDriver;JdbcUser=sa;JdbcPassword=sa;PoolNeeded=false;</param-value>
</context-param>
<filter>
<filter-name>JPivotController</filter-name>
<filter-class>com.tonbeller.wcf.controller.RequestFilter</filter-class>
<init-param>
<param-name>indexJSP</param-name>
<param-value>/index.html</param-value>
<description>forward to this page if session is new</description>
</init-param>
<init-param>
<param-name>errorJSP</param-name>
<param-value>/error.jsp</param-value>
<description>URI of error page</description>
</init-param>
<init-param>
<param-name>busyJSP</param-name>
<param-value>/busy.jsp</param-value>
<description>This page is displayed if a the user clicks
on a query before the previous query has finished</description>
</init-param>
<!--
<init-param>
<param-name>forceExtension</param-name>
<param-value>.faces</param-value>
<description>replace .jsp with .faces</description>
</init-param>
-->
</filter>
<filter-mapping>
<filter-name>JPivotController</filter-name>
<url-pattern>/testpage.jsp</url-pattern>
</filter-mapping>
<listener>
<listener-class>mondrian.web.taglib.Listener</listener-class>
</listener>
<!-- resources initializer -->
<listener>
<listener-class>com.tonbeller.tbutils.res.ResourcesFactoryContextListener</listener-class>
</listener>
<servlet>
<servlet-name>MDXQueryServlet</servlet-name>
<servlet-class>mondrian.web.servlet.MdxQueryServlet</servlet-class>
<init-param>
<param-name>connectString</param-name>
<param-value>Provider=mondrian;Jdbc='jdbc:derby:classpath:/foodmart';Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=org.apache.derby.jdbc.EmbeddedDriver;JdbcUser=sa;JdbcPassword=sa;PoolNeeded=false;</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>MondrianXmlaServlet</servlet-name>
<servlet-class>mondrian.xmla.impl.DefaultXmlaServlet</servlet-class>
</servlet>
<!-- jfreechart provided servlet -->
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet>
<servlet-name>GetChart</servlet-name>
<display-name>GetChart</display-name>
<description>Default configuration created for servlet.</description>
<servlet-class>com.tonbeller.jpivot.chart.GetChart</servlet-class>
</servlet>
<servlet>
<servlet-name>Print</servlet-name>
<display-name>Print</display-name>
<description>Default configuration created for servlet.</description>
<servlet-class>com.tonbeller.jpivot.print.PrintServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/DisplayChart</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Print</servlet-name>
<url-pattern>/Print</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>GetChart</servlet-name>
<url-pattern>/GetChart</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MDXQueryServlet</servlet-name>
<url-pattern>/mdxquery</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MondrianXmlaServlet</servlet-name>
<url-pattern>/xmla</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>http://www.tonbeller.com/wcf</taglib-uri>
<taglib-location>/WEB-INF/wcf/wcf-tags.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://www.tonbeller.com/jpivot</taglib-uri>
<taglib-location>/WEB-INF/jpivot/jpivot-tags.tld</taglib-location>
</taglib>
</web-app> |
Merci encore : problème résolu, mais la solution est tordue....
Bravo en tous cas pour la pertinence des réponses, mais ça n'est pas exactement ça.
J'ai fait un test avec http://new.kairn.com
Si j'utilise
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>pagesSite.SiteArticle</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>*
ou
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>pagesSite.SiteArticle</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/index.html</url-pattern>
</servlet-mapping>
Ca répond sans problème avec un appel sur la racine du serveur (vu que la future version du site sera en MVC2, je ne suis pas allé plus loin car je n'ai besoin que d'un point d'entrée, le reste sera fait par des URL Rewriting dans Apache).
Par contre, si j'utilise :
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>pagesSite.SiteArticle</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
Je n'ai pas de réponse sur http://new.kairn.com/test
Enfin, avec :
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>pagesSite.SiteArticle</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/test.jsp</url-pattern>
</servlet-mapping>
Ca répond...
Donc le problème ne concerne pas comme je le pensais uniquement les .jar, mais l'ensemble des fichiers.
Il y a bien une bidouille au niveau d'apache qui ne considère que les fichiers avec une extension .jsp comme des servlets
J'ai fait la même modif dans le web.xml de mon cube Mondrian, puis modifié les adresses pour ajouter .jsp : CA MARCHE !!!!!
Merci pour ton aide, je n'avais pas pensé que CPANEL allait me faire une bidouille pareille !!!
En fais, sur la racine, comme Apache ne trouvait pas de fichier index.html, index.php et autres extensions, il cherchait un index.jsp, et là il faisait appel à Tomcat qui allait lire le web.xml.
Quand je métais index.html, il y a une réécriture d'URL dans apache et c'était réécrit en index.jsp, donc pas de soucis non plus.
Dans les autres cas, le web.xml n'était pas lu, puisque c'est Apache qui répondait directement....