Я использую Mule ESB CE 3.4. У меня есть требование, когда я читаю информацию о конфигурации из базы данных и использую ее в качестве имени файла для исходящей конечной точки файла. Вот пример кода (код может не работать, так как я дал только схему)
<file:connector name="File-Data" autoDelete="false" streaming="true" validateConnections="true" doc:name="File" />
.....
<!-- Gets the configuration from database using a transformer. The transformer populates the configuration entries in a POJO and puts that in a session. -->
<custom-transformer class="com.test.DbGetConfigsTransformer" doc:name="Get Integration Configs"/>
....<!-- some code to process data -->
<logger message="$$$: #[sessionVars['currentFeed'].getFilePattern()]" doc:name="Set JSON File Name" /> -->
<file:outbound-endpoint path="/temp" outputPattern="#[sessionVars['currentFeed'].getFilePattern()]" responseTimeout="10000" mimeType="text/plain" connector-ref="File-Data" doc:name="Save File"/>
Приведенный выше код выдает следующую ошибку:
1. The filename, directory name, or volume label syntax is incorrect (java.io.IOException)
java.io.WinNTFileSystem:-2 (null)
2. Unable to create a canonical file for /temp/Test_User_#[function:datestamp:YYYYMMddhhmmss.sss] (org.mule.api.MuleRuntimeException)
org.mule.util.FileUtils:354 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MuleRuntimeException.html)
3. Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=file:///temp, connector=FileConnector
В таблице базы данных имя поля называется FilePattern и имеет значение «Test_User_# [функция: отметка даты: ГГГГММддччммсс.sss]. Если я жестко запрограммирую значение или перенесу это значение в файл конфигурации мула
file.name=Test_User_#[function:datestamp:YYYYMMddhhmmss.sss]
и используйте синтаксис свойства конфигурации (например, ${file.name} в «outputpattern»), это работает. Но если я читаю то же самое из БД и использую его, он не работает и выдает ошибку. Регистратор отображает как (который читается из базы данных)
$$$: Test_#[function:datestamp:YYYYMMddhhmmss.sss]
Любая помощь горячо приветствуется.
#[server.dateTime.format(sessionVars['currentFeed'].getFilePattern())]
- person David Dossot   schedule 18.03.2014