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

RESTful API-始终获取HTTP 500错误

张伯寅
2023-03-14

我正在为我的应用程序制作一个简单的RESTful API。我在我的项目中做了另一个包(另一个包是我的主要java类、servlet和模型)。然后我制作了资源文件,非常简单,如下所示:

package com.java.api;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;

@Path("webservice")
public class ZipcodeService {

    @GET
    @Path("/lookup")
    public Response lookup() {
        return Response.ok().entity("Los Angeles").build();
    }
}

这是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" id="WebApp_ID"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
         xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <display-name>parking-space-booking-system</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.java.api</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/webservice/*</url-pattern>
    </servlet-mapping>
</web-app>

我不是在用Maven。我正在使用Netbeans IDE和Tomcat服务器。我把Jersey 2.25的所有jar文件上传到了WEB-INF/lib文件夹。我正在尝试使用web.xml来修复它,但我没有更多的想法。下面是我的项目的结构:

说明服务器遇到内部错误,导致它无法完成此请求

例外情况

ServletException:servlet Jersey Web应用程序的servlet.init()引发异常org.apache.catalina.authenticator.authenticatorbase.invoke(authenticatorbase.java:502)org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:79).run(taskthread.java:61)java.lang.thread.run(thread.java:748)

根本原因

注意,Apache Tomcat/8.0.27日志中提供了根本原因的完整堆栈跟踪。Apache Tomcat/8.0.27

共有1个答案

仲霍英
2023-03-14

也许你的图书馆有问题。

root cause

java.lang.NoSuchMethodError: org.glassfish.jersey.CommonProperties.getValue(..

服务器初始化显示您忘记添加一些库(也许它不在您的Jersey 2.25中,检查一下)。你也可以尝试使用另一个版本的泽西。

 类似资料:
  • thinkphp5编写的restful风格的API,集API请求处理,权限认证,自动生成文档等功能

  • 因此,我使用Reformation将图像上传到我们的服务器,并使用gallery chooser选择图像。我试图获取图像的路径,因为uri。getPath()返回未找到的文件作为异常。我几乎看过关于这个主题的每一篇stackoverflow文章,但仍然没有答案。下面的代码与我在网上看到的所有代码都类似,它总是返回null,我不知道为什么。请帮忙

  • 我想Node.js读取form.html当域名localhost:3000/form,但由于某种原因,它总是给我一个错误500页。 fs.readFile的回调函数中的content参数未定义,即使文件的路径正确。 添加了错误消息: {[Error:enoint,打开'C:\form.html']errno:34,代码:'enoint',路径:'C:\form.html'} 我必须指定文件的完整路

  • 我是詹金斯的相对新手,我试图简单地从存储在比特桶上的代码运行一个构建。我正在使用git。我已经将作业源代码控制设置为https协议:网址:https://myaccount@bitbucket.org /myaccount/myrepo.git凭据:用户名/密码 “构建”部分指向pom。xml,并运行clean test maven目标 我有Git插件2.5.2 我将Jenkins作为Window

  • 我对Laravel很陌生,尤其是在从数据库检索东西时。在阅读了他们关于query builder的文档后,我找到了一个部分,其中显示了执行我所需操作的示例代码: 如果不需要整行,可以使用value方法从记录中提取单个值。此方法将直接返回列的值:

  • 我正在发出警报,服务由警报启动。我希望服务接收额外数据,因此在谷歌搜索中,我将标志设置为Intent。FILL_IN_DATA。下面是我的代码。(仅显示重要部分)(我有几种警报模式,调用不同的服务) } 服务端代码(编辑:此代码在BService类中。AService不需要接收额外代码。) 但是,结果始终为-1,这意味着没有额外收到。 我的代码有什么问题?我在谷歌上搜索了几个小时,没有任何希望。