簡體   English   中英

初學者Java REST 404錯誤

[英]beginner Java REST 404 error

嘗試在Java中建立REST服務的新手。 我創建了一個簡單的Java程序,並將war文件部署在apache-tomcat-8.5.5(在apache-tomcat-8.5.5 \\ webapps目錄下)中。 但是,當我嘗試訪問REST服務( http:// localhost:8081 / SampleRS / rest / sampproj / uservalue )時,出現404錯誤。 (在端口8081上啟動tomcat {本來想做Post-使用Postman,但是出錯了,然后添加了GET方法進行驗證,但仍然出錯)

Java文件:

package sampproj;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.PathParam;

@Path("sampproj")
public class WSPostSer {
    public WSPostSer() {
        super();
    }

    @POST
    @Consumes("application/json")
    @Path("devpost")
    public String createTemp (String devName){
        System.out.println (" in reate");
        return "heloo" + devName;
    }

    @GET
    @Produces("text/plain")
    @Path("/uservalue")
    public String welcomeResource (@PathParam("uservalue") String username){    
        System.out.println("  welcomeResource ");   
        return "heloo Get " + username; 
    }
}

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>SampleRS</display-name>
   <servlet>
      <servlet-name>Jersey RESTful Application</servlet-name>
      <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
         <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>sampproj</param-value>
         </init-param>
      </servlet>
   <servlet-mapping>
   <servlet-name>Jersey RESTful Application</servlet-name>
      <url-pattern>/rest/*</url-pattern>
   </servlet-mapping>  
</web-app>

的lib(罐)是:

在此處輸入圖片說明

日志文件localhost_access_log.2016-09-10: 0:0:0:0:0:0:0:01--[10 / Sep / 2016:08:16:56 +0530]“ POST / SampleRS / rest / sampproj / devpost HTTP / 1.1“ 404 1052 0:0:0:0:0:0:0:1--[10 / Sep / 2016:08:18:46 +0530]” POST / SampleRS / rest / sampproj / devpost HTTP / 1.1“ 404 1052 0:0:0:0:0:0:0:1--[10 / Sep / 2016:08:24:57 +0530]” GET / SampleRS / rest / sampproj / uservalue HTTP / 1.1“ 404 1056 0:0:0:0:0:0:0:1--[10 / Sep / 2016:08:25:04 +0530]” GET / SampleRS / rest / sampproj / hell HTTP / 1.1“ 404 1046 0:0:0:0:0:0:0:1--[10 / Sep / 2016:08:29:25 +0530]“ GET / HTTP / 1.1” 200 11450 0:0:0:0 :0:0:0:1--[10 / Sep / 2016:08:29:26 +0530]“ GET /tomcat.css HTTP / 1.1” 200 5926 0:0:0:0:0:0:0 :1--[10 / Sep / 2016:08:29:26 +0530]“ GET /tomcat.png HTTP / 1.1” 200 5103 0:0:0:0:0:0:0:1--[10 / Sep / 2016:08:29:26 +0530]“ GET /favicon.ico HTTP / 1.1” 200 21630 0:0:0:0:0:0:0:01--[2016年9月10日:08 :29:27 +0530]“ GET /bg-nav.png HTTP / 1.1” 200 1401 0:0:0:0:0:0:0:1--[2016年9月10日:08:29:27 +0530]“ GET /asf-logo.png HTTP / 1.1” 200 17811 0:0:0:0:0:0:0:1--[10/9/201 6:08:29:27 +0530]“ GET /bg-upper.png HTTP / 1.1” 200 3103 0:0:0:0:0:0:0:0:1--[10 / Sep / 2016:08: 29:27 +0530]“ GET /bg-button.png HTTP / 1.1” 200 713 0:0:0:0:0:0:0:1--[2016年9月10日:08:29:27 + [0530]“ GET /bg-middle.png HTTP / 1.1” 200 1918 0:0:0:0:0:0:0:1--[10 / Sep / 2016:08:29:42 +0530]“ GET / SampleRS HTTP / 1.1“ 404 1008 0:0:0:0:0:0:0:1--[10 / Sep / 2016:08:30:02 +0530]” GET / SampleRS HTTP / 1.1“ 404 1008 0:0:0:0:0:0:0:1--[10 / Sep / 2016:15:49:20 +0530]“ GET / SampleRS / rest / sampproj / uservalue HTTP / 1.1” 404 1056 0: 0:0:0:0:0:0:1--[10 / Sep / 2016:15:49:20 +0530]“ GET /favicon.ico HTTP / 1.1” 200 21630 0:0:0:0: 0:0:0:1--[10 / Sep / 2016:16:07:42 +0530]“ GET / SampleRS / rest / sampproj / uservalue / df HTTP / 1.1” 404 1062 0:0:0:0: 0:0:0:1--[10 / Sep / 2016:16:07:49 +0530]“ GET / SampleRS / rest / sampproj / uservalue = df HTTP / 1.1” 404 1062 0:0:0:0: 0:0:0:1--[10 / Sep / 2016:16:22:41 +0530]“ GET / SampleRS / rest / sampproj / user HTTP / 1.1” 404 1046 0:0:0:0:0: 0:0:1--[10 / Sep / 2016:17:40:07 +0530]“ GET / SampleRS / rest / sampproj / uservalue / me HTTP / 1.1“ 404 1062 0:0:0:0:0:0:0:1--[10 / Sep / 2016:17:43:08 +0530]” GET / SampleRS / rest / sampproj / uservalue / me HTTP / 1.1“ 404 1062 0:0:0:0:0:0:0:1--[10 / Sep / 2016:18:04:23 +0530]” GET / SampleRS / rest / sampproj / uservalue / me HTTP / 1.1“ 404 1062 0:0:0:0:0:0:0:1--[10 / Sep / 2016:18:04:31 +0530]” GET / WSwebapp / SampleRS / rest / sampproj / uservalue / me HTTP / 1.1“ 404 1080 0:0:0:0:0:0:0:1--[2016年9月10日:18:04:40 +0530]” GET / WSwebapp / rest / sampproj / uservalue / me HTTP / 1.1“ 404 1008 0:0:0:0:0:0:0:1--[10 / Sep / 2016:18:09:10 +0530]” GET / WSwebapp / rest / sampproj / uservalue / me HTTP / 1.1“ 404 1008 0:0:0:0:0:0:0:1--[10 / Sep / 2016:18:20:25 +0530]” GET / WSwebapp / rest / sampproj / uservalue / me HTTP / 1.1“ 404 1008 0:0:0:0:0:0:0:1--[10 / Sep / 2016:18:21:04 +0530]” GET / WSwebapp / rest / sampproj / uservalue / me HTTP / 1.1“ 404 1008

catalina.2016-09-10: 2016年9月10日17:45:33.158信息[localhost-startStop-2] org.apache.catalina.startup.HostConfig.deployWAR部署Web應用程序檔案C:\\ apache-tomcat-8.5 .5 \\ webapps \\ WSwebapp.war已在2,632毫秒內完成2016年9月10日17:45:33.235信息[Thread-5] org.apache.coyote.AbstractProtocol.stop正在停止ProtocolHandler [“ http-nio-8081”] 10 -Sep-2016 17:45:33.248信息[Thread-5] org.apache.coyote.AbstractProtocol.stop停止ProtocolHandler [“ ajp-nio-8009”] 2016年9月10日17:45:33.259信息[Thread-5 ] org.apache.coyote.AbstractProtocol.destroy銷毀ProtocolHandler [“ http-nio-8081”] 2016年9月10日17:45:33.267信息[Thread-5] org.apache.coyote.AbstractProtocol.destroy銷毀ProtocolHandler [“ ajp-nio-8009“] 2016年9月10日17:57:11.249信息[主] org.apache.catalina.startup.VersionLoggerListener.log服務器版本:Apache Tomcat / 8.5.5 2016年9月10日17:57: 11.253 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log服務器內置:
2016年8月31日19:51:16 UTC 2016年9月10日17:57:11.253 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log服務器編號:
8.5.5.0 2016年9月10日17:57:11.254 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log操作系統名稱:
Windows 7 2016年9月10日17:57:11.254信息[main] org.apache.catalina.startup.VersionLoggerListener.log操作系統版本:
6.1 2016年9月10日17:57:11.255 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log體系結構:
amd64 2016年9月10日17:57:11.255 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java主頁:
C:\\ Program Files \\ Java \\ jdk1.8.0_91 \\ jre 2016年9月10日17:57:11.256 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM版本:1.8.0_91-b15 9月10日-2016 17:57:11.256 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM供應商:
Oracle Corporation 2016年9月10日17:57:11.256 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:
C:\\ apache-tomcat-8.5.5 2016年9月10日17:57:11.257 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:
C:\\ apache-tomcat-8.5.5 10-Sep-2016 17:57:11.260 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log命令行參數:-Djdk.tls.ephemeralDHKeySize = 2048 10-Sep -2016 17:57:11.262 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log命令行參數:-Djava.util.logging.config.file = C:\\ apache-tomcat-8.5.5 \\ conf \\ logging.properties 2016年9月10日17:57:11.264信息[main] org.apache.catalina.startup.VersionLoggerListener.log命令行參數:-Djava.util.logging.manager = org.apache.juli.ClassLoaderLogManager 10- 2016年9月19:57:11.268信息[主] org.apache.catalina.startup.VersionLoggerListener.log命令行參數:-Dcatalina.base = C:\\ apache-tomcat-8.5.5 2016年9月10日17:57 :11.273信息[主] org.apache.catalina.startup.VersionLoggerListener.log命令行參數:-Dcatalina.home = C:\\ apache-tomcat-8.5.5 10-Sep-2016 17:57:11.278信息[主] org.apache.catalina.startup.VersionLoggerListener.log命令行參數:-Djava.io.tmpdir = C:\\ apache-tomcat-8。 5.5 \\ temp 2016年9月10日17:57:11.283信息[main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent在Java.library上找不到基於APR的Apache Tomcat本機庫,該庫允許在生產環境中實現最佳性能。 .path:C:\\ Program Files \\ Java \\ jdk1.8.0_91 \\ bin; C:\\ windows \\ Sun \\ Java \\ bin; C:\\ windows \\ system32; C:\\ windows; C:\\ oraclexe \\ app \\ oracle \\ product \\ 11.2.0 \\ server \\ bin ;; C:\\ Program Files \\ Broadcom \\ Broadcom 802.11 ;;; C:\\ ProgramData \\ Oracle \\ Java \\ javapath; C:\\ windows \\ system32; C:\\ windows; C:\\ Windows \\ System32 \\ Wbem; C:\\ windows \\ System32 \\ WindowsPowerShell \\ v1.0 \\; C:\\ Program Files \\ WIDCOMM \\ Bluetooth Software \\; C:\\ Program Files \\ WIDCOMM \\ Bluetooth Software \\ syswow64; C:\\ Program Files \\ Java \\ jdk1.8.0_91 \\ bin;。 2016年9月10日17:57:11.634信息[主] org.apache.coyote.AbstractProtocol.init初始化ProtocolHandler [“ http-nio-8081”] 2016年9月10日17:57:11.950信息[主]組織。 apache.tomcat.util.net.NioSelectorPool.getSharedSelector使用共享選擇器進行Servlet寫入/讀取2016年9月10日17:57:11.957 INFO [main] org.apache.coyote.AbstractProtocol.init初始化ProtocolHandler [“ ajp-nio -8009“] 2016年9月10日17:57:11.983信息[主要] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector使用共享選擇器進行Servlet寫入/讀取2016年9月10日17:57:11.985 INFO [main] org.apache.catalina.startup.Catalina.load初始化在1694毫秒內完成處理2016年9月10日17:57:12.061 INFO [main] org.apache.catalina.core.StandardService.startInternal啟動服務Catalina 10- 2016年9月17:57:12.065 INFO [main] org.apache.catalina.core.StandardEngine.start內部啟動Servlet引擎:Apache Tomcat / 8.5.5 2016年9月10日17:57:12.135 INFO [localhost-startStop-1 ] org.apache.catalina.startup.HostConfig.d eployWAR部署Web應用程序存檔C:\\ apache-tomcat-8.5.5 \\ webapps \\ WSwebapp.war 2016年9月10日17:57:15.713 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars至少掃描了一個JAR中的TLD,但其中沒有TLD。 為該記錄器啟用調試日志記錄,以獲取已掃描的JAR的完整列表,但未在其中找到TLD。 在掃描過程中跳過不需要的JAR可以縮短啟動時間和JSP編譯時間。 2016年10月10日17:57:16.210信息[localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom使用[SHA1PRNG]創建用於生成會話ID的SecureRandom實例需要[305]毫秒。 2016年9月10日17:57:16.264信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR部署Web應用程序檔案C:\\ apache-tomcat-8.5.5 \\ webapps \\ WSwebapp.war已在4,128毫秒內完成2016年9月10日17:57:16.267信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory部署Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ docs 2016年9月10日17:57:16.324信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory部署Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ docs已在58 ms內完成2016年9月10日17:57:16.325信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory部署Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ examples 2016年9月10日17:57:17.600信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory部署Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ examples已在1,275毫秒內完成10- 2016年9月17:57:17.601信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory部署Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ host-manager 9月10日-2016 17:57:17.687信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ host-manager的部署已完成86 ms 2016年9月10日17:57:17.688信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory部署Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ manager 10 -Sep-2016 17:57:17.761信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ manager的部署已完成74毫秒2016年9月10日17:57:17.762信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory部署Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ ROOT 10 -2016年9月17:57:20.655 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars至少掃描了一個JAR來查找TLD,但其中不包含TLD。 為該記錄器啟用調試日志記錄,以獲取已掃描的JAR的完整列表,但未在其中找到TLD。 在掃描過程中跳過不需要的JAR可以縮短啟動時間和JSP編譯時間。 2016年9月10日17:57:20.766信息[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web應用程序目錄C:\\ apache-tomcat-8.5.5 \\ webapps \\ ROOT的部署已完成在3,004毫秒中2016年9月10日17:57:20.777 INFO [main] org.apache.coyote.AbstractProtocol.start啟動ProtocolHandler [http-nio-8081] 2016年9月10日17:57:20.828 INFO [main] org .apache.coyote.AbstractProtocol.start啟動ProtocolHandler [ajp-nio-8009] 2016年9月10日17:57:20.864 INFO [main] org.apache.catalina.startup.Catalina.start服務器啟動時間為8874毫秒

將您的方法更改為:

@GET
@Produces("text/plain")
@Path("{uservalue}")
public String welcomeResource (@PathParam("uservalue") String username){
    System.out.println("  welcomeResource ");
    return "heloo Get " + username;
}

您的war文件名為WSwebapp.war,因此在瀏覽器中鍵入以下URL:

http://localhost:8081/WSwebapp/rest/sampproj/me

你應該看到heloo Get me :)

不需要REST服務類的構造函數並添加作用域。 您也可以嘗試添加索引頁並訪問它。 這樣,您可以確定服務器或嘗試訪問它的方式沒有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM