Jakarta ee JAX-RS+;JDK10=WFLYRS0015:未找到JAX-RS应用程序的Servlet声明,但它可以与JDK8配合使用
我想用Wildfly 12和Java 10做一个POC 我有一个JAX-RS应用程序配置和一个GET端点,但我面临以下问题: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
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一起工作。