Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java tomcat7上的jersey servlet未找到,即使调试显示响应正确_Java_Servlets_Jersey_Jax Rs_Java Ee 6 - Fatal编程技术网

Java tomcat7上的jersey servlet未找到,即使调试显示响应正确

Java tomcat7上的jersey servlet未找到,即使调试显示响应正确,java,servlets,jersey,jax-rs,java-ee-6,Java,Servlets,Jersey,Jax Rs,Java Ee 6,我使用Jersey网站上的一个示例在NetBeans JEE 8.1中构建了一个简单的测试项目。我可以附加调试器,观察服务代码的执行情况,并生成包含JSON内容的已创建响应。发送到浏览器的是404而不是响应。我简化了服务代码,以消除除其余相关行之外的所有内容。该应用程序的代码为: package com.domenix.resttestproject; import java.util.HashSet; import java.util.Set; import javax.ws.rs.Appl

我使用Jersey网站上的一个示例在NetBeans JEE 8.1中构建了一个简单的测试项目。我可以附加调试器,观察服务代码的执行情况,并生成包含JSON内容的已创建响应。发送到浏览器的是404而不是响应。我简化了服务代码,以消除除其余相关行之外的所有内容。该应用程序的代码为:

package com.domenix.resttestproject;

import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

/**
 *
 * @author tswanson
 */
@ApplicationPath("/test")
public class TestApplication extends Application
{

  /**
   *
   * @return
   */
  @Override
  public Set<Class<?>> getClasses()
  {
    final Set<Class<?>> retValue = new HashSet<Class<?>>();
    retValue.add( SvcsService.class );
    return( retValue );
  }
}
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>REST Test</display-name>
 <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
     <!-- Register resources and providers under com.vogella.jersey.first package. -->
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.domenix.resttestproject.TestApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
    <html>
  <head>
    <title>Data Service Testing</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>
  <body>
    <div>
      <p>
      <form id="createuser" action="test/svcs/create" method="POST">
        <fieldset>
          <legend>Create a new user</legend>
          <label for="userid"><b>Userid:</b> </label>
          <input id="userid" name="userid" type="text" placeholder="Required" maxlength="32" autofocus required><br><br>
          <label for="password"><b>Password:</b> </label>
          <input id="password" name="password" type="password" pattern="[a-zA-Z0-9_-$&amp;@#%!]{8,20}" maxlength="20"  placeholder="8-20 characters" required><br><br>
          <label for="usertypes"><b>Type:</b> </label>
          <select id="usertypes" name="role" required>
            <option value="Student" selected>Student</option>
            <option value="Business">Business</option>
          </select><br><br>
          <input id="submitbutton" type="submit" value="Submit">
        </fieldset>
      </form><br><br>
      <form id="loginuser" action="test/svcs/login" method="POST">
        <fieldset>
          <legend>Login as a user</legend>
          <label for="loginid"><b>Userid:</b> </label>
          <input id="loginid" name="UserID" type="text" placeholder="Required" maxlength="32" autofocus required><br><br>
          <label for="loginpwd"><b>Password:</b> </label>
          <input id="loginpwd" name="Password" type="password" pattern="[a-zA-Z0-9_-$&amp;@#%!]{8,20}" maxlength="20"  placeholder="8-20 characters" required><br><br>
          <input id="submitlogin" type="submit" value="Submit">
        </fieldset>
      </form>
    </div>
  </body>
</html>

休息试验
泽西岛休息服务
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.domenix.restestproject.TestApplication
1.
泽西岛休息服务
/*
index.html文件是:

    <?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>REST Test</display-name>
 <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
     <!-- Register resources and providers under com.vogella.jersey.first package. -->
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.domenix.resttestproject.TestApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
    <html>
  <head>
    <title>Data Service Testing</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>
  <body>
    <div>
      <p>
      <form id="createuser" action="test/svcs/create" method="POST">
        <fieldset>
          <legend>Create a new user</legend>
          <label for="userid"><b>Userid:</b> </label>
          <input id="userid" name="userid" type="text" placeholder="Required" maxlength="32" autofocus required><br><br>
          <label for="password"><b>Password:</b> </label>
          <input id="password" name="password" type="password" pattern="[a-zA-Z0-9_-$&amp;@#%!]{8,20}" maxlength="20"  placeholder="8-20 characters" required><br><br>
          <label for="usertypes"><b>Type:</b> </label>
          <select id="usertypes" name="role" required>
            <option value="Student" selected>Student</option>
            <option value="Business">Business</option>
          </select><br><br>
          <input id="submitbutton" type="submit" value="Submit">
        </fieldset>
      </form><br><br>
      <form id="loginuser" action="test/svcs/login" method="POST">
        <fieldset>
          <legend>Login as a user</legend>
          <label for="loginid"><b>Userid:</b> </label>
          <input id="loginid" name="UserID" type="text" placeholder="Required" maxlength="32" autofocus required><br><br>
          <label for="loginpwd"><b>Password:</b> </label>
          <input id="loginpwd" name="Password" type="password" pattern="[a-zA-Z0-9_-$&amp;@#%!]{8,20}" maxlength="20"  placeholder="8-20 characters" required><br><br>
          <input id="submitlogin" type="submit" value="Submit">
        </fieldset>
      </form>
    </div>
  </body>
</html>

数据服务测试

创建新用户
用户标识:


密码:

类型: 学生 生意



以用户身份登录 用户标识:

密码:

映射中似乎缺少了什么,是什么


谢谢。

您的应用程序甚至配置不正确。但这并不能解释这种行为。1) 此init param
jersey.config.server.provider.packages
的param值应该是要扫描的包的名称。不是应用程序类。如果希望使用应用程序类而不是扫描,则应使用此参数名
javax.ws.rs.application
。至于404,如果端点被击中,我不确定怎么会发生这种情况。我会一步一步地调试发送的响应,以查看返回后是否有任何其他错误。配置的另一个问题是,如果您使用的是url映射和应用程序类,则应该去掉
@ApplictionPath
。它们是相似的。只会使用一个。没有测试,不知道哪一个将被使用,但你的甚至不匹配。扔掉一个。谢谢@peeskillet。就在我发布帖子之后,我开始升级到Windows10,但一直没有恢复。我今天就试试。谢谢你的帮助。@peeskillet,我仔细检查了一下,删除了web.xml,修复了代码上的标记,然后重新测试。它工作得很好,所以我在所有其他函数中都添加了,它们也可以工作。谢谢你的帮助。