application java sous tomcat
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:
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:
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:
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.