Согласно спецификации JMS 1.1 :
Идентификатор неограниченной длины
последовательность символов, которая должна начинаться
с запуском идентификатора Java
персонаж; все последующие персонажи
должна быть частью идентификатора Java
персонажи. Идентификатор начала
персонаж - это любой персонаж, для которого
метод
Character.isJavaIdentifierStart
возвращает истину. Это включает ‘_’ и
«$». Идентификатор части символа
любой символ, для которого метод
Character.isJavaIdentifierPart возвращает
правда.
Следуя подсказкам, мы переходим к Javadoc для метода Character.isJavaIdentifierPart , в котором перечислены допустимые символы для идентификатора:
Символ может быть частью Java
идентификатор, если какой-либо из следующих
правда:
* it is a letter
* it is a currency symbol (such as '$')
* it is a connecting punctuation character (such as '_')
* it is a digit
* it is a numeric letter (such as a Roman numeral character)
* it is a combining mark
* it is a non-spacing mark
* isIdentifierIgnorable(codePoint) returns true for the character
Обратите внимание, что пробел специально исключен из набора допустимых символов идентификатора. Набор допустимых первых символов немного более строг и включает следующие символы:
* isLetter(ch) returns true
* getType(ch) returns LETTER_NUMBER
* ch is a currency symbol (such as "$")
* ch is a connecting punctuation character (such as "_").
Используйте действительный идентификатор и повторите попытку. Например:
message.setStringProperty("my.arbitrary.name", "value");
message.getStringProperty("my.arbitrary.name");
Или, возможно ...
message.setStringProperty("myArbitraryName", "value");
message.getStringProperty("myArbitraryName");
Кстати, переключитесь на V7 при первой же возможности. В целом поддержка свойств не только значительно улучшена, но и возможность прямого чтения / записи заголовков MQMD значительно улучшена , как показано в примере IBM .