Sphinx4在AWS Elastic Beanstalk上中断,适用于开发机器

时间:2015-06-12 18:19:09

标签: maven amazon-web-services elastic-beanstalk cmusphinx sphinx4

我创建了一个虚拟Maven项目,它将CMU Sphinx4包装在一个servlet中。依赖项为sphinx4-core:1.0-SNAPSHOTsphinx4-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)上没有发生。

谢谢!

编辑:

我的开发机器:运行带有AWS插件的Eclipse Luna的OSX。我正在使用一个带有单个servlet的J2EE项目,并通过Maven获取Sphinx JAR(核心和数据)。当我在我的开发机器(端口8080)中运行服务器时,我通过POST消息将其提供给WAV文件,文件正确加载,我将分析作为文本响应。

我的产品机器:AWS Elastic Beanstalk。我使用AWS插件进行部署。当我注释掉代码的Sphinx部分时,服务器工作(即获取文件,并将其返回给我,等等)

如果问题不是双斜线,那么JAR没有正确烹饪。这是有道理的,因为它所寻找的文件不是class所以应该告诉Maven的JAR烹饪部分如何在它部署时在JAR中包含资源文件。

知道怎么做吗?

再次感谢!

2 个答案:

答案 0 :(得分:1)

在某些JVM上,双斜杠似乎是一个问题,在其他JVM上运行。

我刚刚提交了更新以避免双斜线。请更新sphinx4并重试。

答案 1 :(得分:0)

原来问题是我在Java 7上开发(OSX)并将AWS部署到Tomcat / Java 8.一旦我部署到Tomcat / Java 7,一切都按预期工作。