我从restapi开始,并想到在互联网上找到的基本程序。 分享您的代码。
类文件:
package com.java2novice.restful;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
@Path("/publish")
public class RestEasyExample {
@GET
@Path("/{message}")
public Response publishMessage(@PathParam("message") String msgStr){
String responseStr = "Received message: "+msgStr;
return Response.status(200).entity(responseStr).build();
}
}
web.xml -
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!-- Auto scan REST service -->
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.glassfish.jersey.servlet.ServletContainer
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
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>RestfulWebServices</groupId>
<artifactId>RestfulWebServices</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
我正在使用球衣2.0。 我已经部署了战争并将其放在Tomcat的webapps文件夹中。 我试过用两个网址调用它 -
http://localhost:8080/RestfulWebServices/publish/abc
和
http://localhost:8080/RestfulWebServices/publish?message=abc
但我仍然没有找到HTTP 404。
请帮助我找错了。
由于
答案 0 :(得分:0)
尝试在web.xml配置中使用具有此配置的rest应用程序容器。
package com.java2novice.config;
import org.glassfish.jersey.server.ResourceConfig;
import java.util.Collection;
@javax.ws.rs.ApplicationPath("v1")
public class ApplicationConfig extends ResourceConfig {
public ApplicationConfig() {
// package where all your api lives
packages("com.java2novice.restful");
}
@Override
public Collection<Strinzg> getPropertyNames() {
return super.getPropertyNames();
}
}
然后访问/ v1 / your-endpoint
答案 1 :(得分:0)
我认为你将复仇与运动衫混合在一起。
无论哪种方式,<listener>
web.xml
参数
尝试在web.xml文件中添加以下内容:
<listener>
<listener-class>
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
</listener-class>
</listener>
您还应该考虑使用restEasy的servlet容器,而不是使用Jersey。
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>