我已经尝试解决上面提到的问题,但似乎找不到我遇到的问题。我正在尝试创建一个 RESTful Web 服务来获得一个简单的文本作为结果。我使用了一些来自互联网的代码并试图适应以获得最简单的 Web 服务,但我失败了 >_
我知道我一定是忘记了一些重要的东西,但我找不到了。因此,非常感谢您对这个问题的建议。
我的代码如下所示: 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com</groupId>
<artifactId>rest-xml</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>rest-xml-example</name>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.22.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.22.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.22.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.22.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
<sourceDirectory>src/main/java</sourceDirectory>
<finalName>${project.artifactId}</finalName>
</build>
</project>
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"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>REST XML Example</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>test</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>REST XML Example</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Java 类RESTfulHelloWorld.java
package ub;
import java.util.Date;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
@Path("/hello")
public class RESTfulHelloWorld {
@GET
@Produces("text/html")
public Response getStartingPage() {
String output = "<h1>Hello World!<h1>"
+ "<p>RESTful Service is running ... <br>Ping @ " + new Date().toString() + "</p<br>";
return Response.status(200).entity(output).build();
}
}
我的项目结构是这样的: Project structure
我的结果(无论我使用哪个 URI)都是 HTTP 404 -/rest-xml。 webapps 的目录结构是这样的: webapps dir structure
有什么想法吗?非常感谢您的帮助。
最好的问候
最佳答案
com.sun.jersey.config.property.packages 应该是 jersey.config.server.provider.packages。前者适用于 Jersey 1.x。任何使用 com.sun.jersey 的东西,你都会知道是 1.x,它与 2.x 不兼容 – Paul Samsotha 2017 年 8 月 15 日 10:14
关于rest - 无法在 Netbeans 上使用 Maven、Tomcat 7 创建 REST Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45690719/