代码之家  ›  专栏  ›  技术社区  ›  softshipper

Jetty错误:此URL不支持HTTP方法GET

  •  0
  • softshipper  · 技术社区  · 5 年前

    我正在使用 HTTP4S

    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             version="3.0">
    
    
       <servlet>
          <servlet-name>user-svc</servlet-name>
          <servlet-class>io.databaker.UserSvcServlet</servlet-class>
          <async-supported>true</async-supported>
       </servlet>
    
       <servlet-mapping>
          <servlet-name>user-svc</servlet-name>
          <url-pattern>/*</url-pattern>
       </servlet-mapping>
    
    </web-app>
    

    可用的URI包括:

    object UserSvcRoutes {
    
      def helloWorldRoutes[F[_]: Sync](H: HelloWorld[F]): HttpRoutes[F] = {
        val dsl = new Http4sDsl[F]{}
        import dsl._
        HttpRoutes.of[F] {
          case GET -> Root =>
            Ok("Example")
          case GET -> Root / "hello" / name =>
            for {
              greeting <- H.hello(HelloWorld.Name(name))
              resp <- Ok(greeting)
            } yield resp
        }
      }
    
    }
    

    http://localhost:8080/

    enter image description here 我做错什么了?

    0 回复  |  直到 5 年前
        1
  •  1
  •   earldouglas    5 年前

    Http4sServlet 最近被抽象化了,由 BlockingHttp4sServlet AsyncHttp4sServlet .

    UserSvcServlet 扩展其中一个:

    package io.databaker
    
    import AppContextShift._
    import cats.effect._
    import java.util.concurrent.Executors
    import org.http4s.server.DefaultServiceErrorHandler
    import org.http4s.servlet.BlockingHttp4sServlet
    import org.http4s.servlet.BlockingServletIo
    
    class UserSvcServlet
      extends BlockingHttp4sServlet[IO](
        service = UserSvcServer.start,
        servletIo = BlockingServletIo(4096, Blocker.liftExecutorService(Executors.newCachedThreadPool())),
        serviceErrorHandler = DefaultServiceErrorHandler
      )