(java.lang.String) no se puede aplicar a (java.lang.Object)
Ive una clase Listner llamada Temas Estoy tratando de llamarlo desde una interfaz gráfica de usuario llamada readMessages
Cuando estoy tratando de ejecutar la clase TopicS usando el siguiente método,
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("test test test");
System.out.print("you pressed" +topicCombobox.getSelectedItem());
TopicS a = new TopicS();
a.addTopicToListner(topicCombobox.getSelectedItem());
}
Me da un error al decir
addTopicListner (java.lang.String) en Temas no se puede aplicar a (java.lang.Object)
Cuando cambio la Cadena a Objeto obtengo otros errores. El método principal se incluye a continuación, esto funciona bien sin GUI, pero necesito agregarlo a la GUI. Lo que intento hacer es tomar el valor de combobox, que es la matriz de cadenas, y colocar esa cadena en el tema (donde el (t) ahora es
import java.util.Hashtable;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class TopicS implements MessageListener
{
private TopicConnection topicConnection;
private TopicSession topicSession;
public Topic topic;
private TopicSubscriber topicSubscriber;
public TopicS()
{}
public void addTopicToListner(String t){
try
{
// create a JNDI context
Hashtable properties = new Hashtable();
properties.put(Context.INITIAL_CONTEXT_FACTORY,"org.exolab.jms.jndi.InitialContextFactory");
properties.put(Context.PROVIDER_URL,"rmi://localhost:1099/");
Context context = new InitialContext(properties);
// retrieve topic connection factory
TopicConnectionFactory topicConnectionFactory =
(TopicConnectionFactory)context.lookup("JmsTopicConnectionFactory");
// create a topic connection
topicConnection = topicConnectionFactory.createTopicConnection();
// create a topic session
// set transactions to false and set auto acknowledgement of receipt of messages
topicSession = topicConnection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
// retrieve topic
topic = (Topic) context.lookup(t);
// create a topic subscriber and associate to the retrieved topic
topicSubscriber = topicSession.createSubscriber(topic);
// associate message listener
topicSubscriber.setMessageListener(this);
// start delivery of incoming messages
topicConnection.start();
}
catch (NamingException e)
{
e.printStackTrace();
}
catch (JMSException e)
{
e.printStackTrace();
}
}
/* public static void main(String[] args)
//{
try
{
TopicS listener = new TopicS();
Thread.currentThread().sleep(2000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
*/
// process incoming topic messages
public void onMessage(Message message)
{
try
{
String messageText = null;
if (message instanceof TextMessage)
messageText = ((TextMessage)message).getText();
System.out.println(messageText);
}
catch (JMSException e)
{
e.printStackTrace();
}
}
}