java Servlet - Java - Programmation
Marsh Posté le 08-01-2007 à 14:36:05
a noter que le flux est de ce type sNom.sPrenom_sMatricule
exemple : toto.titi_987456451
Marsh Posté le 08-01-2007 à 14:55:27
oui oui mais ca marche kan dans la deuxieme solution , la premiere solution qui me permet de resortir le nom prenom et matricule ne fonctionne pas j ai une error signalé par TOMCAT
Marsh Posté le 08-01-2007 à 15:20:24
Et tu t'es dit "je vais pas mettre les messages d'erreurs sur le forum" ça sert à rien...
Marsh Posté le 08-01-2007 à 15:26:04
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.StringIndexOutOfBoundsException: String index out of range: -8
at java.lang.String.substring(Unknown Source)
at ficheagentservlet.doGet(ficheagentservlet.java:79)
at ficheagentservlet.doPost(ficheagentservlet.java:135)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Unknown Source)
voila le message d error ...
Marsh Posté le 08-01-2007 à 15:27:31
Et alors ? Tu vois pas que le message indique clairement l'endroit et la cause de l'erreur ?
Pas besoin de nous...
Marsh Posté le 08-01-2007 à 15:36:06
je sais que l error est la dans le fichier ficheagentservlet.java mais je ne c pas pourkoi sinon je ne serai pas la ...
Marsh Posté le 08-01-2007 à 15:39:35
Et si tu reflechissais ?
L'erreur dit que tu as un appel a subString() foireux à la ligne 79... Je vois pas ce qui est si difficile ici....
Marsh Posté le 08-01-2007 à 15:40:51
String sNom = dataNomPrenom.substring( 0 , iPosPoint );
String sPrenom = dataNomPrenom.substring( iPosPoint + 1 , iPosPoint2 );
String sMatricule = dataNomPrenom.substring( iPosPoint2 + 1 ); /*ligne 79 ...
if (sUsername != null && sUservalue != null)
{
ficheagent cpass = new ficheagent( sNom , sPrenom , sMatricule );
...
pour moi sa mal l air bon , k es ce que tu en pense ?
Marsh Posté le 08-01-2007 à 15:42:46
dsl (rectification la ligne 79 est celle d avant )
-->String sPrenom = dataNomPrenom.substring( iPosPoint + 1 , iPosPoint2 );
Marsh Posté le 08-01-2007 à 15:45:47
Citation : java.lang.StringIndexOutOfBoundsException: String index out of range: -8 |
Tes valeurs iPosPoint et/ou iPosPoint2 sont foireuses...
Marsh Posté le 08-01-2007 à 15:48:44
mes valeurs pour iPosPoint et iPosPoint2 sont respectivement "." et "_"
y a t il un probleme avec ces syntaxes la ?
que faudrai t il que je fasse ? ...
Marsh Posté le 08-01-2007 à 15:52:07
Et c'est quoi comme type de données ? T'es au courant que substring ça prends des entier en parametres ?
Marsh Posté le 08-01-2007 à 15:53:20
sNom et sPrenom c'est du String et sMatricule c un entier
Marsh Posté le 08-01-2007 à 15:58:09
Code :
|
donne (à plus ou moins 1, j'ai pas testé) :
Citation :
|
edit: la javadoc, caÿ le bieng !
Marsh Posté le 08-01-2007 à 16:11:17
int iPosPoint = dataNomPrenom.indexOf('.');
int iPosPoint2 = dataNomPrenom.indexOf('_');
String sNom = dataNomPrenom.substring( 0 , iPosPoint );
String sPrenom = dataNomPrenom.substring( 0 , iPosPoint2 );
String sMatricule = dataNomPrenom.substring( iPosPoint2 );
if (sUsername != null && sUservalue != null)
{
ficheagent cpass = new ficheagent( sNom , sPrenom , sMatricule );
*****
j ai fé ca mais ca ne marche pas
*****
voila le message error ...
******
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at ficheagentservlet.doGet(ficheagentservlet.java:84)
at ficheagentservlet.doPost(ficheagentservlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Unknown Source)
********
Marsh Posté le 08-01-2007 à 16:21:40
T'as pas l'air de comprendre ce que tu fais.
Marsh Posté le 08-01-2007 à 16:31:11
T'as pas fait d'etudes en info ?
Marsh Posté le 08-01-2007 à 16:31:55
mais qu es ce ke je peut faire , je penc ke ce n est pas grd chose une babiole surement ... qu es ce ke tu en penc
Marsh Posté le 08-01-2007 à 16:32:48
non j ai pas fé d 'etude en info malheureusement , mais bon je me lance la dans !!l faut ! lool
Marsh Posté le 08-01-2007 à 16:35:48
romeros a écrit : mais qu es ce ke je peut faire , je penc ke ce n est pas grd chose une babiole surement ... qu es ce ke tu en penc |
On a pas assez d'infos sur ce que tu veux faire, mais faut comprendre comment fonctionne substring d'abord. cf la doc.
Marsh Posté le 08-01-2007 à 16:59:02
String maString = "machin.bidule_123";int indexPoint = maString.indexOf('.');int indexUnderScore = maString.indexOf('_');System.out.println(maString.substring(0,indexPoint);System.out.println(maString.substring(0,indexUnderScore);System.out.println(maString.substring(indexUnderScore);
****
sinon pour toi ca c correct mais pk il me renvoie une error
****
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at ficheagentservlet.doGet(ficheagentservlet.java:84)
at ficheagentservlet.doPost(ficheagentservlet.java:141)
**que cela veut il dire (surtou la premiere ligne ???
Marsh Posté le 08-01-2007 à 17:00:15
String maString = "machin.bidule_123";
int indexPoint = maString.indexOf('.');
int indexUnderScore = maString.indexOf('_');
System.out.println(maString.substring(0,indexPoint);
System.out.println(maString.substring(0,indexUnderScore);
System.out.println(maString.substring(indexUnderScore);
***
indenté c + clr ;-)
Marsh Posté le 08-01-2007 à 17:37:30
Citation : mais qu es ce ke je peut faire , je penc ke ce n est pas grd chose une babiole surement ... qu es ce ke tu en penc |
romeros a écrit : ok merci de votre aide commme mem |
Ah oui, comme memm...
Citation : c + clr ;-) |
Oui, bien sûr.
Marsh Posté le 09-01-2007 à 09:07:30
romeros a écrit : String maString = "machin.bidule_123"; |
Code :
|
ça, ça marche.
Mais comme dit, lis la doc (clique sur String dans le code, et pouf!, par le truchement d'internet et la magie du forum, te voilà dans la JavaDoc, à consommer sans modération)
Marsh Posté le 08-01-2007 à 14:31:21
je suis sur un code JAVA et voila plusieur jours ke je suis bloquée
*******
String sNom = dataNomPrenom.substring( 0 , iPosPoint );
String sPrenom = dataNomPrenom.substring( iPosPoint + 1 , iPosPoint2 );
String sMatricule = dataNomPrenom.substring( iPosPoint2 + 1 );
if (sUsername != null && sUservalue != null)
{
ficheagent cpass = new ficheagent( sNom , sPrenom , sMatricule );
...
*****************
Par contre ce code marche
*****************
/*
String sNom = dataNomPrenom.substring( 0 , iPosPoint );
String sPrenom = dataNomPrenom.substring( iPosPoint + 1 , iPosPoint2 );
String sMatricule = dataNomPrenom.substring( iPosPoint2 + 1 );
*/
if (sUsername != null && sUservalue != null)
{
//ficheagent cpass = new ficheagent( sNom , sPrenom , sMatricule );
ficheagent cpass = new ficheagent( "toto" , "titi" , "9876543210" );
*********
Je ne voi pas d ou vien le PB , si quelkun a une solution merci ...