我无法使用maven和wildfly进行重复工作

时间:2016-12-27 23:00:05

标签: maven wildfly resteasy

我在整整一周内一直在努力工作以使其发挥作用但是即使使用简单的休息问候世界应用程序我也无法做出野生蝇工作...... 通过所有Resteasy doc,wildfly resteasy示例,几个教程,maven doc链接到wildfly和resteasy并仍然...

我使用JDK 1.8,wildfly 10.x和resteasy 3.0.19(这是我的Wildfly默认版本)。

野蝇似乎不想看到战争的内容。我的意思是web.xml没问题,但我的课程完全透明。当我尝试定义resteasy servlet localy时,我在我的应用程序类中得到classnotfound,而在使用wildfly内置servlet时却没有。

这是我的最后一个pom.xml,web.xml和一个也是唯一的java类(我已经尝试过使用javax.ws.rs.Application类和注释它的结果相同。我也尝试使用自定义servlet映射和所有.. )。

的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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.me.test</groupId>
  <artifactId>testrest</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>testrest Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>sun.jdk</groupId>
      <artifactId>jconsole</artifactId>
      <version>jdk</version>
      <scope>system</scope>
      <systemPath>C:/Program Files/Java/jdk1.8.0_112/lib/jconsole.jar</systemPath>
    </dependency>  
    <!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jaxrs -->
    <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-jaxrs</artifactId>
      <version>3.0.19.Final</version>
      <scope>provided</scope>
    </dependency>  
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>testrest</finalName>
  </build>
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
</project>

Web.xml中

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>Archetype Created Web Application</display-name>
  <!--  this tells RESTEasy to load resource classes -->
    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>

    <servlet-mapping>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

和我唯一的课程:

package com.me.services;

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

@Path("/hello")
public class HelloService {
    @GET
    @Produces("text/plain")
    public String sayHello() {
        return "Hello World";
    }
}

当我尝试访问我的服务后,我得到了: http://localhost:8080/testrest/:你好世界! (来自我的index.html文件) http://localhost:8080/testrest/rest:未找到 localhost:8080 / testrest / rest / hello:Not Found

当我在wildfly中检查我的部署时,我可以看到我的应用程序但是没有servlet ...

正如之前所解释的那样,我尝试了很多东西,例如在尝试在web.xml中声明我自己的servlet时它可以工作,但是它在战争中找不到应用程序类,尽管它实际上在那里......真的好像Wildfly没有'从我的web.xml看到任何appart:/

1 个答案:

答案 0 :(得分:1)

使用http://localhost:8080/testrest/rest/hello/并添加sayHello方法的路径