在GlassFish上创建和运行RESTful Web服务

时间:2019-02-05 22:08:22

标签: java rest maven jersey jax-rs

我在GlassFish服务器上创建了一个简单的RESTful Web服务,并根据此tutorial在IntelliJ IDE中运行它。根据提供的说明,此方法运行良好。我还有两个问题,

a。本教程使用下面提供的服务类

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/helloworld")
public class HelloWorld {

    @GET
    @Produces("text/plain")
    public String getClichedMessage() {

        return "Hello World";
    }
}

我可以从提供的URL中访问它,

http://localhost:8080/AppointmentManager_war_exploded/helloworld

然后,我在同一目录中添加一个新类

@Path("/")
public class App {

    @GET
    @Produces("text/plain")
    public String getMessage() {

        return "Hello, Berlin";
    }
}

我希望从打开的URL "Hello, Berlin"的浏览器中看到消息http://localhost:8080/AppointmentManager_war_exploded/,但是,我得到了所提供的错误

HTTP Status 404 - Not Found
type Status report

messageNot Found

descriptionThe requested resource is not available.

GlassFish Server Open Source Edition 5.0

这是什么问题?

b。如何将URL AppointmentManager_war_exploded的部分更改为其他内容,例如appointment等?下面提供了项目设置中的artifact标签,

enter image description here

我编辑了它,但是,它的更改与预期不符。

在完成本教程后,我将项目更改为maven构建,但是并未为此创建问题。如果有人感兴趣,您也可以尝试一下,因为它将需要一分钟才能运行。

谢谢。

1 个答案:

答案 0 :(得分:1)

第一

  

我希望从打开的URL http://localhost:8080/AppointmentManager_war_exploded/的浏览器中看到消息“ Hello,Berlin”,但是,我得到了提供的错误

在教程提供的MyApplication类中,您还应该添加新类:

@ApplicationPath("/")
public class MyApplication extends Application{
    @Override
    public Set<Class<?>> getClasses() {
        HashSet h = new HashSet<Class<?>>();
        h.add(HelloWorld.class);
        h.add(App.class);          // Add your new class here
        return h;
    }
}

然后,您将可以在http://localhost:8080/AppointmentManager_war_exploded/上看到预期的页面

第二

  

如何将URL AppointmentManager_war_exploded的部分更改为其他内容,例如约会等?

URL包含工件AppointmentManager_war_exploded的名称。该工件自动复制到glassfish应用程序目录中。您可以检查glassfish\domains\domain1\applications\__internal。 只需在此处的项目结构窗口中更改它即可:

enter image description here

更新

请不要忘记在应用的配置设置中更改开始网址:

enter image description here