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

标签 eclipse tomcat jakarta-ee glassfish jersey

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

当我在 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 中执行命令来对我的数据库进行一些更改,但它也不起作用,我只收到这些错误: enter image description here 我不知道问题出在哪里。我知道很难猜出我的代码哪里有错误,但我需要向您寻求帮助。如有必要,我可以将我的整个项目发布到 GitHub 中,或仅将一些类或文件发布到此处,只需告诉我应该发布什么即可。


编辑:(来自 Github 的 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>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 

关于eclipse - 无法使用 Tomcat 或 GlassFish 服务器从 Java Jersey 应用程序获取 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29994413/

相关文章:

eclipse - 无法在 Eclipse 中关闭 Clojure 括号自动完成

java - 无法导出 OSGI 中的接口(interface)

java - 在 Tomcat java.lang.NoClassDefFoundError 下访问 servlet 时?

json - 如何轻松使用 Jackson for Jersey

java - 带有 CMT 的 Ejb3 无状态 bean

java - UrlBasedViewResolver 中的 viewClass 属性

java - 如何在Windows 7下杀死打开的服务器套接字?

java - Eclipse->File->New-Project中没有Android项目类型

Tomcat/IntelliJ 断开连接

java - 我如何在 Tomcat Servlet 中打印一些东西, hibernate 3 秒然后转发到另一个 servlet?