Я створив манекенний проект Maven, який обгортає CMU Sphinx4 в сервлеті. Залежності це sphinx4-core:1.0-SNAPSHOT
і sphinx4-data:1.0-SNAPSHOT
. Працюючи локально (Eclipse) це чудово працює, але потім я розгортаю його до AWS Elastic Beanstalk, і я отримую таке виняток:
Property exception component:"null" property:"null" - java.io.FileNotFoundException: JAR entry edu/cmu/sphinx/models/en-us/en-us//means not found in /var/lib/tomcat8/webapps/ROOT/WEB-INF/lib/sphinx4-data-1.0-SNAPSHOT.jar
edu.cmu.sphinx.util.props.PropertyException: java.io.FileNotFoundException: JAR entry edu/cmu/sphinx/models/en-us/en-us//means not found in /var/lib/tomcat8/webapps/ROOT/WEB-INF/lib/sphinx4-data-1.0-SNAPSHOT.jar
Caused by: java.io.FileNotFoundException: JAR entry edu/cmu/sphinx/models/en-us/en-us//means not found in /var/lib/tomcat8/webapps/ROOT/WEB-INF/lib/sphinx4-data-1.0-SNAPSHOT.jar
Я підозрюю, що в ньому є подвійна коса риска, але я не можу пояснити, чому це не відбувається на моєму комп'ютері (OSX).
Дякую!
Редагувати:
Машина мого девелопера: OSX запускає Eclipse Luna з плагіном AWS. Я використовую проект J2EE з єдиним сервлетом і отримую Sphinx JAR (ядро і дані) через Maven. Коли я запускаю сервер у моєму принтері (порт 8080), я передаю його WAV-файл через повідомлення POST, файл завантажується правильно, і я отримую аналіз як текстову відповідь.
Мій прод машина: AWS Elastic Beanstalk. Я розгортаю, використовуючи плагін AWS. Коли я коментую частину коду Sphinx, сервер працює (тобто отримує файл і повертає його до мене тощо).
Якщо проблема не є подвійною косою рискою, то JAR не готується правильно. Це має сенс, оскільки файл, який він шукає, не є class
тому JAR кулінарна частина Maven повинна бути сказана, як включити файли ресурсів в JAR, який він робить, коли він використовується.
Будь-яка ідея, як це зробити?
знову дякую!
Відповіді:
1 для відповіді № 1Подвійна слізь, здається, є проблемою на деяких JVM, в інших JVM він працює.
Я просто здійснив оновлення, щоб уникнути подвійних рис. Будь ласка, оновіть sphinx4 і повторіть спробу.
0 для відповіді № 2
Виявляється, проблема полягала в тому, що я розробляв (OSX) на Java 7 і розгортав AWS для Tomcat / Java 8. Після того, як я розгорнув Tomcat / Java 7, все працювало, як очікувалося.