无法使用 Tomcat 或 GlassFish 服务器从 Java Jersey 应用程序获得 JSON 响应

Couldn't get JSON response from Java Jersey app using Tomcat or GlassFish server

我的 Java Jersey 应用程序有问题。我正在使用本教程编写一个应用程序: http://programmerguru.com/android-tutorial/android-restful-webservice-tutorial-how-to-create-restful-webservice-in-java-part-2/ 我的应用程序与此示例中的应用程序几乎相同,但事实上我正在使用 Maven 导入 .jar 文件。我在数据库中也有一些变化。我 运行 这个数据库在 wamp 服务器 上,我正在使用 phpMyAdmin。 我的应用程序结构如下图所示:

当我 运行 我的应用程序在 Tomcat 或 GlassFish 服务器上时,总是出现 404 错误。我检查了所有内容,更正了 web.xml 文件,因为我遇到了 Servlet 问题。我用 GlassFish 解决了几个问题,但没有任何帮助。 我正在尝试 运行 这个: http://localhost:8080/silownia_java/login/dologin 我得到 404 错误,但是当我 运行 http://localhost:8080/silownia_java/hello.jsp 它工作时,所以它可能不是服务器的问题。我还尝试通过在 Chrome Advanced Rest Client 中执行命令来对我的数据库进行一些更改,它也不起作用,我只收到这些错误: 我不知道问题出在哪里。我知道很难猜出我的代码哪里有错误,但我需要向您寻求帮助。如有必要,我可以 post 我的整个项目 GitHub 或这里的一些 类 或文件,请告诉我我应该 post.


编辑:(web.xml 来自 Github)

<?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>silownia_java</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  <servlet-name>Jersey REST Service</servlet-name>
<servlet-class>
  com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
  <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>silownia_java</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>Jersey REST Service</servlet-name>
  <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>

您的 URL 中似乎缺少 /rest/ 部分(在 login 之前)。 rest 在您的 web.xml 中设置为 servlet 映射

<servlet-mapping>
  <servlet-name>Jersey REST Service</servlet-name>
  <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

所以只需将 URL 更改为

http://localhost:8080/silownia_java/rest/login/dologin