我正在使用joinfaces并尝试使用wildfly 10,但这就像在依赖项中嵌入了一个tomcat一样。
<dependency>
<groupId>org.joinfaces</groupId>
<artifactId>jsf-spring-boot-starter</artifactId>
<version>2.4.0</version>
</dependency>
我做了必要的配置
@SpringBootApplication
public class LicitarApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(LicitarApplication.class, args);
}
@Override
public SpringApplicationBuilder configure(SpringApplicationBuilder application){
return application.sources(LicitarApplication.class);
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<!--<version>3.1.0</version>-->
</dependency>
它开始但是当它几乎结束时它会给出错误: NoSuchMethodError:DigesterFactory.newDigester
java.lang.NoSuchMethodError: org.apache.tomcat.util.descriptor.DigesterFactory.newDigester(ZZLorg/apache/tomcat/util/digester/RuleSet;Z)Lorg/apache/tomcat/util/digester/Digester;
答案 0 :(得分:1)
我不确定它是否是最好的选择,但对我来说,当我删除jar依赖项tomcat-embed-jasper
时,这个问题就解决了。我刚刚将以下代码插入到我的pom.xml中:
<dependency>
<groupId>org.joinfaces</groupId>
<artifactId>jsf-spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</exclusion>
</exclusions>
</dependency>
答案 1 :(得分:0)
jsf-spring-boot-starter 是元启动器。默认情况下它会拉动mojarra-spring-boot-starter和tomcat-spring-boot-starter。
如果您使用wildfly,我认为您应该远程 tomcat-spring-boot-starter 并添加 undertow-spring-boot-starter 。详见documentation.