erreur java.lang.NumberFormatException readJavaFormatString
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:
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:
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:
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