我在整整一周内一直在努力工作以使其工作但是我无法通过简单的休息问候世界应用程序来制作野生蝇工作...通过所有Resteasy文档,野生蝇重复示例,几个教程,maven doc链接野生蝇和复活,仍然......
我使用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/:Hello world! (来自我的index.html文件)http://localhost:8080/testrest/rest:未找到localhost:8080 / testrest / rest / hello:未找到
当我在wildfly中检查我的部署时,我可以看到我的应用程序但是没有servlet在...
正如之前所解释的那样,我尝试了很多东西,例如在尝试在web.xml中声明我自己的servlet时它可以工作但是它在战争中找不到应用程序类,尽管它实际上在那里......看起来Wildfly似乎没有看到任何东西我的web.xml中的appart:/
1 回答
使用http://localhost:8080/testrest/rest/hello/并添加sayHello方法的路径