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

时间:2014-12-02 17:53:40

标签: rest tomcat remote-server

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

当我尝试开发REST Servlet时,它使用netbeans和tomcat 8进行开发,但是当我尝试创建.war文件并通过webinterface将其加载到远程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

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

但为什么呢?我听说使用servlet 3.0时不会发生这种情况。

修改
index.html之前工作过 - 只有其他服务(GET,POST)还没有工作。

这很有趣,因为在netbeans中它运行得很好。

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

1 个答案:

答案 0 :(得分:0)

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

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

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