java - 使用 WildFly 8 的简单 REST API

标签 java maven jboss resteasy wildfly

首先,我是这个环境的新手。我以前开发过 Java,但不是为应用程序服务器开发的。从来没有这样做过,我以前从未使用过 JBoss 或 WildFly。

我已经能够设置和运行 WildFly 服务器,并通过 127.0.0.1:9990 访问它。当我部署我的 .war 文件时,服务器没有反应并且我无法访问 URL。

WildFly 服务器确实表明我的部署已成功并且处于 Activity 状态,然后我尝试访问:127.0.0.1:8080/RECAPP-API/rest/message/test 并且我收到 404 (页面未找到错误)。

我正在使用 Maven,所以首先,我的 pom.xml:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test.recapp.rest</groupId>
  <artifactId>RECAPP-API</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>3.0.6.Final</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson-provider</artifactId>
        <version>3.0.6.Final</version>
    </dependency>
  </dependencies>
</project>

我的JSONService.java:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

@Path("/message")
public class JSONService {

    @GET
    @Path("/{param}")
    @Produces("application/json")
    public Response printMessage(@PathParam("param") String msg) {
        String result = "Restful example: " + msg;
        return Response.status(200).entity(result).build();
    }

}

最后,我的 web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    id="WebApp_ID" version="3.0">
  <display-name>RECAPP-API</display-name>

  <context-param>
    <param-name>resteasy.scan</param-name>
    <param-value>true</param-value>
  </context-param>

  <context-param>
    <param-name>resteasy.servlet.mapping.prefix</param-name>
    <param-value>/rest</param-value>
  </context-param>

  <listener>
    <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
  </listener>

  <servlet>
    <servlet-name>resteasy-servlet</servlet-name>
    <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>resteasy-servlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>


</web-app>

感谢您的帮助。

最佳答案

快速入门的最佳方法是使用此依赖项。

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-api</artifactId>
  <version>7.0</version>
  <scope>provided</scope>
</dependency>

并添加一个Extends Application Class的类

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

就是这样。没有 web.xml 更改(仅不需要 web.xml)。

并使用 host:port/<warname>/rest/<endpoint path> 访问您的休息端点

关于java - 使用 WildFly 8 的简单 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502824/

相关文章:

java - 通过单击按钮调用方法

java - 有了m2e还需要安装Maven吗?

java - 管辖权政策文件未由受信任的签名者签名......?

java - 绩效改进 - 如何开始

security - 如何在 JBoss AS7 中为我的 Web 应用程序指定使用哪个安全域?

java - 仅请求 Android Marshmallow 的运行时权限?

java 使用 bouncycaSTLe 签署公共(public) pgp key

javascript - 从 Java 运行 JavaScript?

java - 无法运行带有嵌入式 Glassfish 的 Arquillian

java - 如何使用 java selenium webdriver ashot firefox 自动获取网页的全屏截图包括固定元素