2017-02-18 7 views
0

私は奇妙な問題があります。私はルートリソースとサブリソースを持っています(コードは下にあります)。Jax-RS - サブリソースオブジェクトが出力に書き込まれる

"/ team/test"を呼び出すと、呼び出しは "return subResource;"で終了します。サブリソースオブジェクトは応答として出力として書き込まれます。

{ 
    "team": { 
    "id": 1, 
    "state": 1, 
    "name": "test", 
    "channels": [] 
    } 
} 

私は「/チーム/テスト/名前」と呼ぶとき、私は404応答を取得し、サーバーログにこのメッセージが出力されます。

WARNUNG: No operation matching request path "/ts-webservice-dev/rest/team/test/name" is found, Relative Path: /test/name, HTTP Method: GET, ContentType: */*, Accept: */*,. Please enable FINE/TRACE log level for more details. 

マイアプリケーションサーバはApacheのCFX JAX-とtomeeですrsの実装。 別のマシンに非常によく似たコードの別のアプリケーションがあり、正常に動作しています。不幸にも、私は現在のプロジェクトを他のマシンでテストすることも、このマシン上の他のプロジェクトをテストすることもできません。

私はこれをどのように解決できるか教えてもらえますか?

ルートリソース:

@Path("/team") 
public class TeamResource extends BaseResource { 

private TeamRepository teamRepository; 

@GET 
@Path("/{teamName}") 
public TeamSubResource findTeam(@PathParam("teamName") String teamName) throws TeamInactiveException, TeamNotFoundException { 
    Optional<TeamEntity> team = teamRepository.findByName(teamName); 
    if (!team.isPresent()) { 
     throw new TeamNotFoundException(teamName); 
    } else if (team.get().getState() != 1) { 
     throw new TeamInactiveException(team.get()); 
    } else { 
     TeamSubResource subResource = CDI.current().select(TeamSubResource.class).get(); 
     subResource.setTeam(team.get()); 
     return subResource; 
    } 
} 

@Inject 
public void setTeamRepository(TeamRepository teamRepository) { 
    this.teamRepository = teamRepository; 
} 
} 

サブリソース:

public class TeamSubResource { 

private TeamEntity team; 

@GET 
@Path("/") 
public String test1() { 
    return "test1"; 
} 

@GET 
@Path("/test") 
public String test2() { 
    return "test2"; 
} 

@GET 
@Path("/name") 
public String name() { 
    return team.getName(); 
} 

public void setTeam(TeamEntity team) { 
    this.team = team; 
} 

public TeamEntity getTeam() { 
    return team; 
} 
} 

答えて

0

私は新鮮な目で次の日にそれを見た後、私は問題を発見しました。

サブリソースロケータの@GET注釈を削除する必要がありました。

関連する問題