在 wildfly 10 中使用 war 的连接面
Use joinfaces with war in wildfly 10
我正在使用 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;
jsf-spring-boot-starter 是元首发。它默认拉 mojarra-spring-boot-starter 和 tomcat-spring-boot-starter。
如果你使用wildfly,我认为你应该远程tomcat-spring-boot-starter并添加undertow-spring-boot-starter。详见documentation.
我不确定这是否是最佳选择,但对我来说,当我删除 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>
我正在使用 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;
jsf-spring-boot-starter 是元首发。它默认拉 mojarra-spring-boot-starter 和 tomcat-spring-boot-starter。
如果你使用wildfly,我认为你应该远程tomcat-spring-boot-starter并添加undertow-spring-boot-starter。详见documentation.
我不确定这是否是最佳选择,但对我来说,当我删除 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>