2016-12-18 14 views
0

私はジャージを使用してPOSTメソッドで、残りのAPIを実行しようとしているが、それは単一の要求のために2回実行ジャージーのREST APIが実行さ2倍

URL:http://localhost:8080/postTest/rest/PostTest/SystemConfigSaveService/1

import java.io.IOException; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.ws.rs.Consumes; 
    import javax.ws.rs.POST; 
    import javax.ws.rs.Path; 
    import javax.ws.rs.PathParam; 
    import javax.ws.rs.Produces; 
    import javax.ws.rs.core.Context; 
    import javax.ws.rs.core.MediaType; 

    @Path("PostTest") 
    public class PostGateWay { 

    @Context 
    @POST 
    @Consumes(MediaType.APPLICATION_JSON +";charset=UTF-8") 
    @Produces(MediaType.APPLICATION_JSON +";charset=UTF-8") 
    @Path("{serviceId}/{version}") 
    public String process(@PathParam("serviceId")String serviceId, @PathParam("version")String version, @Context HttpServletRequest request) throws IOException, InstantiationException, IllegalAccessException, ClassNotFoundException { 
    System.out.println("serviceId"+serviceId+"--version: "+version); 
    return null; 
    } 
    } 

依存構造、

enter image description here

のweb.xml、

enter image description here

コードが2回実行、

serviceIdnull--version: null 
    serviceIdSystemConfigSaveService--version: 1 

はそれが間違っていたところ、私が見つけるのを助ける、

答えて

0

私はあなたにもこの

import java.io.BufferedReader; 
    import java.io.IOException; 
    import java.io.InputStream; 
    import java.io.InputStreamReader; 
    import java.util.Date; 
    import java.util.Enumeration; 
    import java.util.HashMap; 
    import javax.servlet.ServletContext; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.ws.rs.Consumes; 
    import javax.ws.rs.POST; 
    import javax.ws.rs.Path; 
    import javax.ws.rs.PathParam; 
    import javax.ws.rs.Produces; 
    import javax.ws.rs.core.Context; 
    import javax.ws.rs.core.MediaType; 
@Path("RestGateWay") 
public class RsGateWay { 

    @Context 
    @POST 
    @Consumes(MediaType.APPLICATION_JSON +";charset=UTF-8") 
    @Produces(MediaType.APPLICATION_JSON +";charset=UTF-8") 
    @Path("{serviceId}/{version}") 
    public String process(@PathParam("serviceId")String serviceId,@PathParam("version")String version, @Context HttpServletRequest request) 
              throws IOException, InstantiationException, IllegalAccessException, ClassNotFoundException { 
     System.out.println("SERVICEID:"+serviceId+" VERSION:"+version); 

     return ""; 
    } 

} 
のような方法で@pathを追加する必要があると思います

あなたのURLは次のようになります:http://localhost:8080/RSProcessor/rest/RestGateWay/SystemConfigSaveService/1 テストサービス enter image description here

+0

こんにちは私が試しサラマが、再び同じ問題、pathparamサービスID&バージョンは、私はそれをテストヌル – radhakrishnan

+0

こんにちはラダクリシュナンであり、それはまだヌルあなたのポンポン –

+0

細かい参照の答えを働きます見つけられた@pathparamはnullではありませんが、コードが2回実行されます。最初にnullを返し、2回目は正しい値を返します。私が間違っていたfindoutを見つけました –

関連する問題