当打包在胖Jetty jar中时,Spring找不到WebApplicationInitializer

时间:2013-04-10 17:18:00

标签: spring jar jetty

我正在尝试创建一个嵌入式Jetty和我的代码的单个“FAT”jar。不幸的是,如果我从jar中运行,我会收到此错误:No Spring WebApplicationInitializer types detected on classpath

如果我打开罐子的包装就可以了。

问题是我可以从jar运行应用程序还是必须解压缩?

以下是一个示例项目以及重现该问题的步骤:

  

git clone https://github.com/steveliles/jetty-embedded-spring-mvc-noxml.git
  cd jetty-embedded-spring-mvc-noxml
  mvn clean install
  cd目标
  java -jar jetty-noxml-1.0-SNAPSHOT.jar

您将获得此输出“...没有在类路径上检测到Spring WebApplicationInitializer类型...”。

但如果你这样做:

  

mkdir temp
  cd temp
  unzip jetty-noxml-1.0-SNAPSHOT.jar
  java -cp。 com.sjl.Main

这样可以正常使用。

那么可以做些什么来直接从jar中解决这个问题而不首先解压缩呢?

==更新==

该项目的作者解决了这个问题。从阴影罐中拾取webapps需要以下代码:

   parser = new AnnotationParser() {

       @Override
       public void parse(Resource aDir, ClassNameResolver aResolver) throws Exception {
           if (aDir.isDirectory()) {
               super.parse(aDir, aResolver);
           } else {
               super.parse(aDir.getURI(), aResolver);
           }
       }
    };

请参阅:https://github.com/steveliles/jetty-embedded-spring-mvc-noxml/commit/789663310b2fa2bdc0b101658275758a26cec229

0 个答案:

没有答案