Bonjour,
J'ai mis en place un service web qui interroge une base desdonnées de type Microsoft Access (.mdb).
Quand j'invoque le service avec un client, j'ai le message d'erreur suivant :
Je n'arrive pas à m'en sortir, car je ne comprends pas du tout, parceque le code du Service a été testé d'abord comme application java simple et ça marchait sans problème, une fois transformer en ervice Web, ça ne marche plus.
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 AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}hostname:demcoul java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:633) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242) at javax.xml.parsers.SAXParser.parse(SAXParser.java:375) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at org.apache.axis.Message.getSOAPEnvelope(Message.java:435) at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) at org.apache.axis.client.Call.invokeEngine(Call.java:2784) at org.apache.axis.client.Call.invoke(Call.java:2767) at org.apache.axis.client.Call.invoke(Call.java:2443) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at jeux.ws.QuizSoapBindingStub.randomQuestion(QuizSoapBindingStub.java:166) at jeux.ws.Client.main(Client.java:24)
Voici mon client
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 package jeux.ws; import java.rmi.RemoteException; import javax.xml.rpc.ServiceException; public class Client { public static void main(String [] args) { QuizServiceService ser=new QuizServiceServiceLocator(); QuizService port=null; try { port = ser.getQuiz(); } catch (ServiceException e1) { // TODO Bloc catch auto-généré e1.printStackTrace(System.out); } boolean result=false; RandomQuestion q=new RandomQuestion(); try{ //result=port.checkResponse(1, "C"); q=(RandomQuestion)port.randomQuestion(); System.out.println(q.getNumQuestion()+". "+q.getLibQuestion()); System.out.println("===================================================="); System.out.println(q.getRepA()); System.out.println(q.getRepB()); System.out.println(q.getRepC()); System.out.println(q.getRepD()); //System.out.println(result); } catch(RemoteException e){e.printStackTrace(System.out);} } }
Est ce que je dois faire une config de ma base des données sous Tomcat ?
Bref qui a une idée pour moi ?
Partager