Не удалось создать экземпляр 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.

Другие вопросы по тегам