Jakarta ee JAX-RS+;JDK10=WFLYRS0015:未找到JAX-RS应用程序的Servlet声明,但它可以与JDK8配合使用

Jakarta ee JAX-RS+;JDK10=WFLYRS0015:未找到JAX-RS应用程序的Servlet声明,但它可以与JDK8配合使用,jakarta-ee,jax-rs,wildfly,Jakarta Ee,Jax Rs,Wildfly,我想用Wildfly 12和Java 10做一个POC 我有一个JAX-RS应用程序配置和一个GET端点,但我面临以下问题: WFLYRS0015: No Servlet declaration found for JAX-RS application. In blogservice.war either provide a class that extends javax.ws.rs.core.Application or declare a servlet class in web.xml

我想用Wildfly 12和Java 10做一个POC

我有一个JAX-RS应用程序配置和一个GET端点,但我面临以下问题:

WFLYRS0015: No Servlet declaration found for JAX-RS application.  In blogservice.war either provide a class that extends javax.ws.rs.core.Application or declare a servlet class in web.xml.
当我用JDK8运行同一个应用程序(和同一个服务器WF12)时,效果很好,但用JDK9和JDK10则不起作用

我一直在查找有关此错误的信息,但没有结果

有什么想法吗


下面是一个github回购项目,我曾经做过,现在没有工作


我找到了失败点,它是我放在
pom.xml
中的一个依赖项,这个依赖项是我用来处理异常的,现在我不知道的是

为什么它在JDK10中的依赖性失败,而在JDK8中却没有

github repo的依赖关系是

此依赖项有2个自定义异常和3个ExceptionMapper(cdi提供程序)


删除此依赖项后,我不再出现该错误(WFLYRS0015),但JaxRs子系统不使用JDK10*加载,而是使用JDK8


在应用程序的某个地方,您需要一个
javax.ws.rs.core.Application
类:

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;


@ApplicationPath("/rest")
public class RestApplicationConfig extends Application {
    // intentionally empty
}
软件包并不重要,但它必须是你的网络应用程序的一部分

@ApplicationPath
路径是URL在服务器中的分区方式。您可以将其设置为您想要的内容,但请小心将其设置为
/
,因为有些版本的Wildfly和/或Wildfly Swarm在从同一URL前缀提供JAX-RS内容和HTML类型的内容方面一直存在问题。这些问题可能早就解决了——我只是知道我不久前遇到了它


服务的主路径可能已经以其他形式存在于
web.xml
中,在创建
应用程序
类时应将其删除
web.xml
现在是可选的,这取决于您的需要。

鉴于它只是一个“hello world”应用程序,让我们看看您的代码…@Pablo:在询问[java ee]问题时不要使用[java]标记。[java]用户无法按照定义理解[java ee]。我用代码示例创建了一个
github
repo。Thx是关于同样的问题。对我来说也是一样:Wildfly17+Java 8=按预期工作,Wildfly17和JDK 11=404是的,这个应用程序类已经存在,这就是为什么这种行为很奇怪的原因,甚至,同一个应用程序在没有任何修改的情况下与JDK8一起工作。