2015-07-23 8 views
0

Я хочу знать, можно ли объявить пользовательский int или integer в jndi.properties.Объявить переменную в jndi.properties

Я делаю программу JMS. И я хочу «дать» легко int для программы.

Я попытался найти один, но я не могу найти ничего интересного.

Так что я могу или jndi действительно сформирован для использования только по строгим правилам.

То, что я хочу сделать в jndi.propreties:

#number of threads accepted 
int.maxThreads = 3 

#queue.[jndiName] = [physicalName] 
queue.MyQueue = MyQueue2 

Тогда в Java:

int maxThreadsTemp = (int) ctx.lookup("maxThreads"); 

I судимое но не удалось. Я получаю нормальное значение: «javax.naming.NameNotFoundException: maxThreads»

Так что я объявил это неправильно или просто невозможно сделать это? Спасибо заранее.

* Edit: Я использую ActiveMQ и JNDI Я использовал этот адрес, чтобы сделать это: http://activemq.apache.org/jndi-support.html

+0

Вам нужно будет сказать и пометить свое сообщение, с помощью которого поставщик jms и поставщик jndi вы используете. – Calanais

+1

@Calanais Я отредактировал мой вопрос с информацией, но я не знаю поставщика jndi, на самом деле я не знал, что у него один. Поэтому я поместил URL-адрес, который использовал для моего кода. –

+0

Попробуйте удалить int. префикс в ваших свойствах jndi. Также он может возвращать строковое значение, поэтому вы можете просто преобразовать его потом в целое число. –

ответ

0

Я нашел ответ: То, что я должен был забыть поиск Methode (...)

ctx = new InitialContext(...); 
int maxThreadsTemp = (int) ctx.lookup("maxThreads"); 

Вместо этого я использовал хеш-таблицы (намного проще):

ctx = new InitialContext(...); 
Hashtable<?, ?> environment = ctx.getEnvironment(); 
      String nbrThread = (String) environment.get("maxThreads"); 

И в jndi.properties: maxThreads = 5 (ТНХ к @Claus Ибсена)

+2

Действительно я считаю, что лучший способ сделать это! –