我在他们的教程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处理程序 使用根路径前缀:/ hello-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
当我尝试去
时在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。
你能帮忙吗?
答案 0 :(得分:0)
嗯,我明白了这个问题。 我将以下内容添加到yml文件中:
server:
type: simple
applicationContextPath: /hello-world
adminContextPath: /admin
connector:
type: http
port: 7777
嗯,我不确定我理解为什么,但似乎这里不需要简单的服务器,而是默认服务器。所以在删除这段后,我收到了200 OK。