REST Servlet 正在开发中,但在远程 Tomcat 上

标签 rest tomcat remote-server

您好,我是 Tomcat 开发的新手,有一个问题。

当我尝试开发 REST Servlet 时,它在 netbeans 和 tomcat 8 的开发下工作,但是当我尝试创建 .war 文件并通过 Web 界面将其加载到远程 tomcat 时,它不起作用。

所以我刚刚在 Netbeans 中创建了一个新的 Web 应用程序并对其进行了一些更改:

@Path("test1")
public class GenericResource {

    @Context
    private UriInfo context;


    public GenericResource() {
    }


    @GET
    @Produces("application/xml")
    public String getXml() {

       return "<xml rest='cool'></xml>";
    }

}

    package test;

import java.util.Set;
import javax.ws.rs.core.Application;


@javax.ws.rs.ApplicationPath("test")
public class ApplicationConfig extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new java.util.HashSet<>();
        addRestResourceClasses(resources);
        return resources;
    }

    private void addRestResourceClasses(Set<Class<?>> resources) {
        resources.add(test.GenericResource.class);
    }

}

所以当我在 Netbeans 中部署它时,它可以完美地使用

http://localhost:8080/ServerTest/test/test1

但是当我创建一个 war 并将其开发到远程 tomcat 时 - 当我使用“http://xyz.at/ServerTest/test/test1”时它只显示错误 404

但是为什么?我听说当我使用 servlet 3.0 时不应该发生这种情况。

编辑:
index.html 之前可以工作 - 只有其余服务(GET、POST)还不能工作。

这很有趣,因为在 netbeans 中它工作得很好。

我刚刚注意到在开发中我有 tomcat 8.0.9 但在远程服务器上我有 8.0.15 - 这会造成麻烦吗?

最佳答案

好像你没有把它放在根路径上。

作为快速解决方案,尝试将您的 war 重命名为 ROOT.war,然后部署它。

您可以阅读有关上下文路径配置的更多信息 here .

关于REST Servlet 正在开发中,但在远程 Tomcat 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255871/

相关文章:

mysql - 如何将远程数据库与本地codeigniter一起使用?

rest - Camel ReSTLet maxThreads 组件选项

android - Volley POST 请求收到错误结果

javascript - Axios GET 请求不和谐 API 给出 ​​403 禁止响应,但在 Postman 中有效

apache - 将内部 servlet 名称映射到不同外部名称的 AJP 代理

php paypal 服务器端 REST 集成失败

java - 如何将 VM 参数传递给 tomcat maven 插件?

javascript - 使用/Javascript/Tomcat 7.0 提供静态文件

linux - 如何在远程服务器上以 root 身份执行本地脚本?