尝试访问服务器上的rest API时出错500(在开发期间在本地主机上工作)

尝试访问服务器上的rest API时出错500(在开发期间在本地主机上工作),rest,tomcat,jakarta-ee,Rest,Tomcat,Jakarta Ee,我创建了一个RESTAPI,使我的网站能够与mysql数据库通信。在本地开发时,我可以使用tomcat server在eclipse上运行应用程序,然后使用如下路径从javascript访问我的api: localhost:8080/backend/api/paintings 此路径提供数据库中的所有绘画 我现在租了一个VPS,并在上面安装了所有东西(我想)以使其正常工作,但是当尝试访问同一路径时,我得到了en error 500,即使没有任何更改,tomcat正在运行(我可以访问mydoma

我创建了一个RESTAPI,使我的网站能够与mysql数据库通信。在本地开发时,我可以使用tomcat server在eclipse上运行应用程序,然后使用如下路径从javascript访问我的api:

localhost:8080/backend/api/paintings
此路径提供数据库中的所有绘画

我现在租了一个VPS,并在上面安装了所有东西(我想)以使其正常工作,但是当尝试访问同一路径时,我得到了en error 500,即使没有任何更改,tomcat正在运行(我可以访问mydomain.com:8080,它显示apache tomcat页面)

我的RESTAPI是使用JavaEE构建的

我收到的错误消息是

message "Servlet.init()" pour la servlet [mpart] a généré une exception

description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.

exception
javax.servlet.ServletException: "Servlet.init()" pour la servlet [mpart] a généré une exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:528)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.base/java.lang.Thread.run(Thread.java:834)

cause mère
java.lang.NoSuchMethodError: 'java.util.Map javax.ws.rs.core.Application.getProperties()'
    org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:331)
    org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:528)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
    org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
    org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.base/java.lang.Thread.run(Thread.java:834)
两者都给出了一个错误

我可以提供任何类型的代码来帮助解决这个问题

这是我的web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    <display-name>mpart</display-name>
    <servlet>
        <servlet-name>mpart</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>fr.demarquez.mpart.controllers</param-value>
        </init-param>
       <init-param>
            <param-name>jersey.config.server.provider.classnames</param-name>
            <param-value>
                fr.demarquez.mpart.configs.CORSFilter;
                fr.demarquez.mpart.configs.LocalDateTimeAdapter;
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>mpart</servlet-name>
        <url-pattern>/api/*</url-pattern>
    </servlet-mapping>
</web-app>

mpart
mpart
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
fr.demarquez.mpart.controllers
jersey.config.server.provider.classnames
fr.demarquez.mpart.configs.CORSFilter;
fr.demarquez.mpart.configs.LocalDateTimeAdapter;
1.
mpart
/原料药/*
您正在将mpart servlet映射到/api/*但使用/bacend/api*端点访问它。你能试试这个吗

''' /后端/api/*
“”“

我通过检查依赖项并解决jersey组件不同版本的问题,成功地解决了这个问题。

这个路径不是问题,因为我在Eclipse上运行java api时它是这样工作的
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
    <display-name>mpart</display-name>
    <servlet>
        <servlet-name>mpart</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>fr.demarquez.mpart.controllers</param-value>
        </init-param>
       <init-param>
            <param-name>jersey.config.server.provider.classnames</param-name>
            <param-value>
                fr.demarquez.mpart.configs.CORSFilter;
                fr.demarquez.mpart.configs.LocalDateTimeAdapter;
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>mpart</servlet-name>
        <url-pattern>/api/*</url-pattern>
    </servlet-mapping>
</web-app>