То есть в сервлетах работает, а в обычных классах из тогоже
приложения нет, в чем фокус? Код абсолютно идеентичен, и в сервлете и
в классе:
public class JMSTest {
@Resource(mappedName= "jms/ConnectionFactory")
private static ConnectionFactory connectionFactory;
@Resource(mappedName="jms/Queue")
private static Queue queue;
public void send(String mess) throws JMSException {
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
MessageProducer messageProducer = session.createProducer(queue);
ObjectMessage om = session.createObjectMessage();
Hashtable<String,String> params = new Hashtable<String, String>();
params.put("request", mess);
om.setObject(params);
messageProducer.send(om);
messageProducer.close();
session.close();
connection.close();
}
}
Если метод send скопировать в сервлет (есесно с полями) и вызвать из
processRequest то все работает. В простом классе не работает.
В сервлете поля не статические, в классе делал и статическими и не
статическим один фиг, осталось последнее подозрение что класс должене
реализовывать Seriasable но почему тогда это нигде не написанно?
телепаты говорят, что тупая белка не осилила даже j2ee manual, потому что там написано про аннотации @Local, @EJB, @Stateless, @Stateful и прочие для классов.