gpt4 book ai didi

Jboss 7.1中的RestEasy Jax-RS不起作用

转载 作者:行者123 更新时间:2023-12-04 05:18:48 25 4
gpt4 key购买 nike

我正在尝试在JBoss AS 7.1下部署一个与resteasy捆绑在一起的简单Web应用程序。根据文档,所需的(至少是)是一个空的web.xml,这是一个带注释的@ApplicationPath("/mypath")@Path("/other_stuff")的类,用于您的其他类

我关注的文档在这里:

  • https://docs.jboss.org/author/display/AS7/JAX-RS+Reference+Guide
  • https://docs.jboss.org/author/display/AS7/Java+API+for+RESTful+Web+Services+(JAX-RS)

  • 不过,当我点击时:
    host:8080/warname/applicationpath/path

    我在网页上收到404错误,但日志中什么也没有。

    是否需要更改配置文件才能使JAX-RS正常工作?

    预先感谢您的任何帮助!

    最佳答案

    web.xml将起作用。

    只需在您的类路径中添加一些resteasy依赖项即可。例如,如果您使用maven,则可以将其添加到pom.xml中:

    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxrs</artifactId>
    <version>2.3.1.GA</version>
    <scope>provided</scope> <!-- provided if youre deploying to jboss as 7.1 -->
    </dependency>

    然后仅使用此类来设置应用程序:
    import javax.ws.rs.ApplicationPath;
    import javax.ws.rs.core.Application;

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

    只是为了确保,添加这样的资源:
    @Path("/hello")
    public class HelloResource {
    @GET
    @Produces("text/plain")
    public String helloResource() {
    return "Hello! It's "+new Date();
    }
    }

    这就是您所需要的。在JBoss AS 7.1上部署它,然后执行以下操作:
    http://127.0.0.1:8080/mywarname/rest/hello

    编辑:

    我用最小的strucutre创建了一个Java war Maven项目:
    -pom.xml
    -src
    |
    --main
    |
    --java
    |
    --rest
    |
    --HelloResource.java
    --JaxRsActivator.java

    我将其称为 simpleRest,如下所示。所有文件均完全如图所示:

    pom.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>simpleRest</groupId>
    <artifactId>simpleRest</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>

    <dependencies>
    <dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxrs</artifactId>
    <version>2.3.1.GA</version>
    <scope>provided</scope>
    </dependency>
    </dependencies>
    <build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
    <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
    <!-- So maven doesn't require web.xml -->
    <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
    </plugin>
    </plugins>
    </build>
    </project>

    HelloResource.java
    package rest;

    import java.util.Date;

    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;

    @Path("/hello")
    public class HelloResource {
    @GET
    @Produces("text/plain")
    public String helloResource() {
    return "Hello! It's "+new Date();
    }
    }

    JaxRsActivator.java:
    package rest;

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

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

    }

    这将生成 simpleRest.war(通过 mvn clean package)。然后,将其部署到新安装的 JBoss AS 7.1.1.Final。如您所见,在部署过程中,日志中未引用JAX-RS:
    22:48:08,677 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015876: Starting deployment of "simpleRest.war"
    22:48:09,318 INFO [org.jboss.web] (MSC service thread 1-4) JBAS018210: Registering web context: /simpleRest
    22:48:09,492 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "simpleRest.war"

    之后,URL可以按预期使用:
    http://127.0.0.1:8080/simpleRest/rest/hello

    请注意,其他所有内容都会产生404错误。但这是另一种404。
    http://127.0.0.1:8080/simpleRest/提供:
    HTTP Status 404 - /simpleRest/

    那是 页面找不到错误。另一方面, http://127.0.0.1:8080/simpleRest/rest给出:
    HTTP Status 404 - Could not find resource for relative : / of full path: http://127.0.0.1:8080/simpleRest/rest

    那是 资源(REST服务)未找到错误。这样,您就知道JAX-RS在起作用,尽管它没有该路径的处理程序。

    关于Jboss 7.1中的RestEasy Jax-RS不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16223968/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com