Не удалось создать экземпляр initialcontext на автономном клиенте
У меня есть автономный клиент, который я не хочу развертывать на своем сервере Glassfish. С клиентом я хочу отправить сообщение через шаблон связи "точка-точка". Я нашел этот замечательный учебник, в котором используются аннотации, которые я не могу использовать, потому что у меня есть отдельный клиент. Я нашел следующее решение для stackru:
Context jndiContext;
private ConnectionFactory connectionFactory;
private static Queue queue;
public TweetSender() throws NamingException{
jndiContext = new InitialContext();
connectionFactory = (ConnectionFactory) jndiContext.lookup("JMS/KwetterConnectionFactory");
queue = (Queue) jndiContext.lookup("JMS/KwetterQueue");
}
Я также узнал, что мне пришлось импортировать некоторые библиотеки из каталога glassfish. Так я и сделал:
Я получаю следующую ошибку:
javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.impl.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.impl.SerialInitContextFactory]
Что я делаю неправильно?
РЕДАКТИРОВАТЬ
Я нашел временное решение этой проблемы, хотя чувствую, что оно не правильное (думаю, у меня могут возникнуть проблемы, когда я хочу перенести проект. Я удалил библиотеки, которые я извлек из папки Glassfish lib, и добавил их, используя "Absolute". дорожка".
1 ответ
Решением может быть упаковка вашего автономного клиентского приложения в файл jar, например: myclient.jar. И запустить его как клиент приложения, используя appclient
Утилита GlassFish:
applcient -client myclient.jar
appclient
утилиту можно найти здесь: [glassfish home dir]/glassfish/bin.