Bonjour
J'ai une erreur dont je n'ai pas pu comprendre la raison, j'ai re-vérifier les types des variables et c'est correcte, je ne comprend pas ou figure la fausse manipulation.
PropositionWorkflow.java
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
protected void executeHandleResponses() throws Exception {
		System.out.println("--------------Executing "+HANDLERESPONSES_ACTIVITY+"--------------");
		ACLMessage msg = myAgent.blockingReceive(myTemplate, 10000);
		if (msg != null){
			switch (msg.getPerformative()) {
			case ACLMessage.PROPOSE:
				String content = msg.getContent();
				StringTokenizer st = new StringTokenizer(content, "#");
				desiProd = st.nextToken();
				prixvente = Double.parseDouble(msg.getContent());
				quantite_disp = Integer.parseInt(st.nextToken());
				mode_paiement = st.nextToken();
				localite = st.nextToken();
				System.out.println("Proposition reçu: produit: "+desiProd+" Prix unitaire de vente: "+prixvente+" quantite disponible: "+quantite_disp+" Mode paiement: "+mode_paiement+" localité: "+localite);
				if (quantite_disp > quantite){
				if (bestProposal == null || prixvente < minPrice) {
					// Up to now this is the best offer. Store it
					minPrice = prixvente;
					bestProposal = msg;
					prix = prix - ((prix * margeNegoAch)/100);
					ACLMessage reply = msg.createReply();
					/*reply.setPerformative(ACLMessage.PROPOSE);
					reply.setContent(String.valueOf(prix));*/
					System.out.println("Meilleur prix de vente: "+minPrice);
				}
				}
				else{
 
				}
				break;
			case ACLMessage.REFUSE:
				// The sender of this message is not selling the book.
				// Don't care
				break;
			case ACLMessage.NOT_UNDERSTOOD:
				// The sender of this message didn't understand the CFP.
				// Log a warning.
				System.out.println("-WARNING- "+ msg.getSender()+" did not understand the CFP message");
				break;
			case ACLMessage.FAILURE:
				// If the sender is the AMS, one of the known sellers
				// is no longer active --> Remove it from the list of known
				// sellers
				if (msg.getSender().equals(myAgent.getAMS())) {
					try {
						AID oldSeller = AMSService.getFailedReceiver(myAgent,
								msg);
						sellers.removeElement(oldSeller);
					} catch (FIPAException fe) {
						// Should never happen
						fe.printStackTrace();
					}
				} else {
					// An unexpected error happened somewhere. Log a warning
					System.out.println("Unexpected FAILURE message received");
				}
				break;
			default:
				// Unexpected message. Log a warning
				System.out.println("Unexpected message received");
			}
 
			repliesCnt++;
		}
	}
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
48
49
50
51
52
53
54
55
private void serveCFP(ACLMessage msg) {
				ACLMessage reply = msg.createReply();
				// Get the title from the content
				String desiProduit  = msg.getContent();
				System.out.println("CFP. produit est "+desiProduit);
 
				try {
					statement = (PreparedStatement) connection.prepareStatement("select * from produit where designation = (?)");
 
				statement.setString(1,desiProduit); 
 
				 rs=(ResultSet)statement.executeQuery();
				 rs.next();
				 int id_produit = rs.getInt(1);
				 rs.close();
				 statement.close();
				 statement = (PreparedStatement) connection.prepareStatement("select * from negocier_vente where id_entreprise = (?) and id_produit = (?)");
					statement.setInt(1,id_entrepriseV); 
					statement.setInt(2, id_produit);
					 rs=(ResultSet)statement.executeQuery();
					if( rs.next()){
						prix_depart_vente = rs.getDouble("prix_depart_vente");
						prix_vente_min = rs.getDouble("prix_unit_min");
						quantite_disponible = rs.getInt("quantite_produit");
						qualite_produit = rs.getInt("qualite_produit");
						localite = rs.getString("localite");
						marge_negociation = rs.getDouble("marge_negociation_vente");
						mode_vente = rs.getString("mode_vente");
 
						if (quantite_disponible > 0){
							System.out.println("Quantite disponible");
							// proposer à l'acheteur le prix et la quantite disponible
							reply.setPerformative(ACLMessage.PROPOSE);
							reply.setContent(desiProduit+"#"+prix_depart_vente+"#"+quantite_disponible+"#"+mode_vente+"#"+localite);
 
						}
						else {
							reply.setPerformative(ACLMessage.REFUSE);
							reply.setContent("Stock épuisé");
						}
					}	
				else {
					System.out.println("Pas de resultaaaaaaaaaaaaaaaaatt");
					reply.setPerformative(ACLMessage.INFORM);
					reply.setContent("Produit non disponible");
				}
					rs.close();
					statement.close();
				} catch (SQLException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}	
				myAgent.send(reply);
			}
		}
erreur console:
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
--------------Executing HandleResponses--------------
CFP received from valeo@WADE
CFP. produit est fromage
Quantite disponible
java.lang.NumberFormatException: For input string: "fromage#350.0#200#espece#tunis"
	at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
	at java.lang.Double.parseDouble(Unknown Source)
	at proposition.PropositionWorkflow.executeHandleResponses(PropositionWorkflow.java:175)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.tilab.wade.performer.MethodInvocator.invoke(MethodInvocator.java:84)
	at com.tilab.wade.performer.CodeExecutionBehaviour.action(CodeExecutionBehaviour.java:50)
	at jade.core.behaviours.Behaviour.actionWrapper(Behaviour.java:344)
	at jade.core.behaviours.CompositeBehaviour.action(CompositeBehaviour.java:109)
	at jade.core.behaviours.Behaviour.actionWrapper(Behaviour.java:344)
	at jade.core.behaviours.CompositeBehaviour.action(CompositeBehaviour.java:109)
	at jade.core.behaviours.Behaviour.actionWrapper(Behaviour.java:344)
	at jade.core.behaviours.ThreadedBehaviourFactory$ThreadedBehaviourWrapper.run(ThreadedBehaviourFactory.java:347)
	at java.lang.Thread.run(Unknown Source)
Quelqu'un pourra-t-il m'aider?
Merci