Dropwizard REST:由于某种原因,请求被重定向302

时间:2016-06-15 12:37:39

标签: java web-services rest dropwizard restful-architecture

我在他们的教程here之后使用Dropwizard构建了一个REST服务器。  服务器应该提供单个服务 - 显示Hello world消息。

这是我发布它时的输出:

  

c:\ Users \ administrator \ Eclipse workspaces \ Web \ DropwizardExample> java   -jar target \ DropwizardExample-0.0.1-SNAPSHOT.jar服务器src \ main \ resources \ hello-world.yml INFO [2016-06-15 12:21:45,341]

     

org.eclipse.jetty.util.log:记录已初始化@ 1464ms INFO   [2016-06-15 12:21:45,449] io.dropwizard.server.ServerFactory:开始   你好世界的信息[2016-06-15 12:21:45,459]   io.dropwizard.server.SimpleServerFactory:注册jersey处理程序   使用根路径前缀:/ h​​ello-world INFO [2016-06-15 12:21:45,477]   io.dropwizard.server.SimpleServerFactory:注册管理员处理程序   使用根路径前缀:/ admin INFO [2016-06-15 12:21:45,522]   org.eclipse.jetty.setuid.SetUIDListener:已打开   hello-world @ 17d2e85 {HTTP / 1.1} {0.0.0.0:8080} INFO [2016-06-15   12:21:45,525] org.eclipse.jetty.server.Server:jetty-9.2.z-SNAPSHOT   INFO [2016-06-15 12:21:46,207]   io.dropwizard.jersey.DropwizardResourceConfig:以下路径   找到已配置的资源:

GET     /hello-world (com.HelloWorldResource)
     

INFO [2016-06-15 12:21:46,208]   org.eclipse.jetty.server.handler.ContextHandler:已开始   i.d.j.MutableServletContextHandler@18f8a80 {/你好世界,空,   AVAILABLE} INFO [2016-06-15 12:21:46,214]   io.dropwizard.setup.AdminEnvironment:tasks =

POST    /tasks/log-level (io.dropwizard.servlets.tasks.LogConfigurationTask)
POST    /tasks/gc (io.dropwizard.servlets.tasks.GarbageCollectionTask)
     

INFO [2016-06-15 12:21:46,219]   org.eclipse.jetty.server.handler.ContextHandler:已开始   i.d.j.MutableServletContextHandler@1ab9dd6 {/ admin,null,AVAILA BLE}   INFO [2016-06-15 12:21:46,293]   org.eclipse.jetty.server.ServerConnector:已启动   hello-world @ 17d2e85 {HTTP / 1.1} {0.0.0.0:8080} INFO [2016-06-15   12:21:46,293] org.eclipse.jetty.server.Server:已启动@ 2417ms

yml文件如下:

template: Hello, %s!
defaultName: Stranger

server:
  type: simple
  applicationContextPath: /hello-world
  adminContextPath: /admin
  connector:
    type: http
    port: 8080

当我尝试去

  

http://localhost:8080/hello-world

在IE或Chrome上,它会在地址末尾添加另一个斜杠并产生:

  

127.0.0.1 - - [15 / Jun / 2016:12:26:48 +0000]" GET / hello-world HTTP / 1.1" 302 - " - " " Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1; WOW64;   三叉戟/ 4。 0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR   3.0.30729; .NET4.0C; .NET4.0E)" 3

     

127.0.0.1 - - [15 / Jun / 2016:12:26:48 +0000]" GET / hello-world / HTTP / 1.1" 404 43" - " " Mozilla / 4.0(兼容; MSIE 8.0; Windows NT   6.1; WOW64;三叉戟/   4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)" 3

在控制台。

如果我在最后手动添加斜杠,它会直接给我404。

你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

嗯,我明白了这个问题。 我将以下内容添加到yml文件中:

server:
  type: simple
  applicationContextPath: /hello-world
  adminContextPath: /admin
  connector:
    type: http
    port: 7777

嗯,我不确定我理解为什么,但似乎这里不需要简单的服务器,而是默认服务器。所以在删除这段后,我收到了200 OK。