Bonjour,
Voila mon problème: J'ai ajouté dans mon application web un dossier 'util' sous ext/portlet de Tomcat qui contient une classe publisher comme suit :
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
66
67
68
69
70
 
public class Publisher {
 
private static Logger log;
private static Properties props;
 
private Connection connection;
private Session session;
private Destination sendQueue;
private MessageProducer sendProducer;
private TextMessage protoMessage;
 
private TemporaryQueue replyQueue;
private MessageConsumer replyConsumer;
private long delaiAttente = 70000;
 
private static void loadProperties() throws FileNotFoundException, IOException {
 
	log=Logger.getLogger(Publisher.class);
	log.log(Level.INFO,"Dans Publisher..................");
	props = new Properties();
	props.load(new FileInputStream("src/web_conf.properties"));
	log.log(Level.INFO,"Chargement des properties.........."); 
 
}
                             // *******Create Connection*******//
 
public Publisher() throws JMSException, FileNotFoundException, IOException {
 
	loadProperties();
	ConnectionFactory connectionFactory = new ConnectionFactory();
	connectionFactory.setProperty(ConnectionConfiguration.imqAddressList,"127.0.0.1:7676");
	connection=connectionFactory.createConnection("admin", "admin");
	log.log(Level.INFO,"La connection est établie..........");
 
}
 
public void sendMessage(Map data, String id_message , String queue) throws JMSException{
 
	    connection.start();		
            session =      connection.createSession ( false, Session.AUTO_ACKNOWLEDGE); 
            sendQueue = session.createQueue(props.getProperty(queue));
            sendProducer = session.createProducer(sendQueue);
 
            protoMessage = session.createTextMessage();
 
            Set set = data.entrySet();
            Iterator iterator = set.iterator();
 
            String protoXML="<ProtocolMessage id=\""+id_message+"\">";
 
            while ( iterator.hasNext())
            {
            	Entry entry = (Entry)iterator.next();
            	protoXML += "<"+(String)entry.getKey()+">"+        (String)entry.getValue()+"</"+(String)entry.getKey()+">";
            }
 
            protoXML+="</ProtocolMessage>";
            protoMessage.setText(protoXML);
 
 
        	sendProducer.send(protoMessage);
            connection.stop();
 
            log.info("Message envoyé avec succés..");
 
            finalize();
 
}
}
Puis j'ai créé une méthode main qui utilise la méthode sendMessage de la classe publisher:
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
 
	public static void main(String[] args) throws JMSException, FileNotFoundException, IOException 
 
	{
	    Publisher p = new Publisher();
	    HashMap map = new HashMap();
 
		map.put("a", "toto");
		map.put("c", "tutu");
		map.put("b", "titi");
 
		String id_mes = "1";
		String queue = "imen";
		p.sendMessage(map ,id_mes ,queue);
       System.out.println ("xxxxx");
 
	}

L'exécution de l'envoie se fait en cliquant sur un bouton envoyer d'un portail Liferay introduit de la manière suivante dans view.jsp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<form action="<portlet:actionURL windowState="<%= WindowState.MAXIMIZED.toString() %>"><portlet:param name="struts_action" value="/ext/managemnt/send_Cip" /></portlet:actionURL>" method="post" name="<portlet:namespace />fm">	
 
	               <input class="portlet-form-button" type="button" value="Envoyer" onClick="submitForm(document.<portlet:namespace />fm);">
             </form>
:
Le problème est quand je clique sur envoyer depuis Liferay rien ne se passe et rien ne s'affiche dans la console. je sais pas d'où provient l'erreur.
Merci pour votre aide.