RestEasy JAX-RS ApplicationPath返回404。

问题描述 投票:0回答:1

我正在将一个应用程序从 Jboss 6.4/Java8 -> JBoss 7.2/Java11 我遇到了一个错误,我的端点注释似乎被应用程序忽略了,并返回错误代码。404. 你可以在日志中看到web上下文的注册位置和 web.xml 基于安全约束对路径进行验证,但请求仍然返回一个 404.

我已经更新了EE和REST库,但没有用。

该应用程序有2个 @ApplicationPath 注释。如何是 JAXRS 从EAP6到EAP7的注释不同?

404 Error

RestApplication

package com.web;

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

@ApplicationPath("/rest")
public class RestApplication extends Application {
}

应用资源

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

@Path("/applications")
public class AppResource{

    private static final Logger logger = LoggerFactory.getLogger(AppResource.class);

    @Context
    private HttpServletRequest httpRequest;

    @GET
    @Path("/")
    @Produces(MediaType.APPLICATION_JSON)
    public Response getApplications() {
    ...
    }
    ...

}

jboss-deployment-structure

<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <dependencies>
            <module name="org.jboss.resteasy.resteasy-jaxrs"/>
            <module name="com.fasterxml.jackson.core.jackson-core"/>
            <module name="com.fasterxml.jackson.core.jackson-databind"/>
            <module name="com.fasterxml.jackson.core.jackson-annotations"/>
        </dependencies>
    </deployment>
    <sub-deployment name="WebApp.war">
        <dependencies>
            <module name="javax.api"/>
            <module name="javaee.api"/>
            <module name="org.jboss.msc"/>
            <module name="org.jboss.as.server"/>
            <module name="org.jboss.resteasy.resteasy-jaxrs"/>
            <module name="com.fasterxml.jackson.core.jackson-core"/>
            <module name="com.fasterxml.jackson.core.jackson-databind"/>
            <module name="com.fasterxml.jackson.core.jackson-annotations"/>
        </dependencies>
    </sub-deployment>
</jboss-deployment-structure>
java jax-rs jboss7.x resteasy java-ee-7
1个回答
0
投票

我的单机版中缺少Jaxrss子系统,所以我需要手动添加它。

SCR

#JAXRS
if (outcome != success) of /subsystem=jaxrs:read-resource()
    /subsystem=jaxrs:add()
    reload
end-if

独立

<subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
© www.soinside.com 2019 - 2024. All rights reserved.