java - 不用 Maven 构建动态 Web 项目

标签 java maven web-services tomcat jersey

我在动态 Web 项目中使用 Jersey 创建了一个 Web 服务。现在我想构建它,而不使用 Maven(我们的教授不会让我们使用 Maven)。 我在 Tomcat 9.0 服务器上运行该项目。它运行完美,但是当我访问 localhost:8080/agendarest/contactos 时,出现 404 错误。

服务:

@Path("/contactos")
public class ContactoService {
    private static final long serialVersionUID = 1L;

    @GET
    @Produces("application/json")
    public Response getUsers() throws JSONException{
        List<Contacto> contactos = new ArrayList<>();
        contactos.add(new Contacto("pedro", 3434661825L));
        return Response.status(200).entity(contactos.toString()).build();
    }
}

web.xml:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" 
         version="3.1">
    <display-name>agendarest</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

最佳答案

我找到了解决方案。 我需要添加初始化参数 所以,我的 web.xml:

    <servlet>
                <servlet-name>ContactoService</servlet-name>
                <init-param>
                    <param-name>javax.ws.rs.Application</param-name>
                    <param-value>com.MiApp</param-value>
                </init-param>
                <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
                <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
                <servlet-name>ContactoService</servlet-name>
                <url-pattern>/*</url-pattern>
  </servlet-mapping>

并添加 MiApp.java:

import org.glassfish.jersey.server.ResourceConfig;

public class MiApp extends ResourceConfig{
    public MiApp() {
        packages("com");
    }
}

关于java - 不用 Maven 构建动态 Web 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47557272/

相关文章:

java - 以 java.sql.Date 格式获取当前日期

java - 构建助手-maven-插件目标 :regex-property how to access generated property

ios - 我如何确定 NSData 的内容何时指示 Web 服务请求失败?

java - 如何在同一台Mac上处理多个版本的JDK

java - touchlistener 代码错误 - Android

java - 生成概率树然后对结果进行排序的时间高效实现

java - xadditionalHeaders 不适用于 maven 中的 wsimport 目标

maven - JpaRepository Querydsl : Qclass not generates

Java REST - POST 到 REST 之后调用方法

java - 何时在 Spring Boot 中使用自定义上下文路径而不是根上下文