无法使用 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
我的 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 中执行命令来对我的数据库进行一些更改,它也不起作用,我只收到这些错误:
编辑:(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