当前位置: 首页 > 知识库问答 >
问题:

Jersey Servlet返回405,即使定义了GET和POST方法

栾瑞
2023-03-14

我正在使用Jersey restful API with Atmosphere。

这是我的网站。xml

    <servlet>
        <description>AtmosphereServlet</description>
        <servlet-name>AtmosphereServlet</servlet-name>
        <servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.example.p1</param-value>
        </init-param>
        <async-supported>true</async-supported>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>AdminPanel</servlet-name>
        <servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.example.p2</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
            <param-value>/WEB-INF/admin/</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>AdminPanel</servlet-name>
        <url-pattern>/admin/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>AtmosphereServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

现在,我有一个带有@Path("/寄存器")的资源类,并且我已经定义了@GET@POST方法。在我的整个项目中,没有其他类处理路径/寄存器

@Path("/register")
public class Register{
    @POST
    public String method1(){
        return "POST";
    }
    @GET
    public String method1(){
        return "GET";
    }
}

我使用的url是http://129.123.3.3/user/register,我在调用中使用POST方法。

尽管我定义了GET和POST方法

HTTP状态405-不允许的方法

但是,当我删除AdminPanel的serlvet映射并更改

共有1个答案

姜景辉
2023-03-14

实现一个类

@javax.ws.rs.ApplicationPath("webresources")
public class ApplicationConfig extends javax.ws.rs.core.Application {
    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new java.util.HashSet<>();
        resources.add(Register.class);
        return resources;
    }
}

您的URL将是

GET /<context>/webresources/register
 类似资料:
  • 我必须做一个帖子,但我得到错误405 在本网站->http://177.66.89.34:8079/transparencia/#我需要迭代页面顶部的2个下拉菜单的选项。 首先,我会在“escolha o exercício”旁边加上选项:然后,我会在“escolha a entidade”旁边加上选项: 用下面的代码,我在“EscolhaoExercício:”上面写了一篇文章 我希望在pars

  • 我有一个用户元的自定义endpoint,我已成功注册到WP REST API并为其创建了自定义endpoint。然而,每当我从我的单页应用程序(使用的JS框架是Vue)发出GET和POST请求时,返回值为“false” 我怀疑这是由于使用JWT Authoration for WP REST API插件存在一些授权问题而发生的。 以下是我在functions.php应用程序中采取的步骤: 首先,我

  • 当我从Fiddler执行POST请求时,它应该在响应头中包含“Access-Control-Allog-Origin:*”,这表明API配置正确,但(从Fiddler)jquery请求看起来如下: 选项http://myserver:111/api/v1/customers/createcustomer/http/1.1主机:myserver:111连接:keep-alive access-con

  • 基本上就是标题所说的。控制台中没有显示错误,因此我不知道出了什么问题。我用的是积垢沉淀剂。任务是为游戏商店制作一个RESTAPI。我试图访问localhost:8080/游戏URL,但404一直在发生。 编辑:将@PostMapping()和@GetMapping()更改为@postmaping和@GetMapping GameStoreApplication.java: 游戏控制器.java:

  • 关于问题的一些信息: 我使用POST方法创建了guzzle客户端,但它被替换为GET方法。 我尝试在Laravel 7.x上使用,但得到同样的错误。 API服务器是Django Rest Framework。 我得到了405方法不允许的响应。 我的代码使用 guzzle: 我同时使用form_params和json,但仍然得到相同的错误。 然后我使用Laravel 请参见文档,网址:https:/

  • 所以我已经看过了与我的问题相关的答案。我有一个laravel应用程序,它在本地主机服务器上运行得非常好。那里的线路运行良好。但当我在共享主机上上传我的laravel应用程序时,只有GET方法起作用。当我尝试使用任何POST请求(例如登录到我的应用程序)时,它会发送405个错误代码。例如,我将向您展示登录时出现的问题。 这是路线。 控制器功能 HTML格式: 这是我在提交表单之前从控制台获得的信息。