2

シンプルなRESTインターフェースをデプロイしました。私のRESTサービスがこのコンテキストパスにデプロイされているとしましょう:

http://localhost:8080/Engine/services/Evaluation

次に、次のようにURLを呼び出します。

http://localhost:8080/Engine/services/Evaluation?_wadl

XML出力を見ることができます:

<application>
    <grammars/>
    <resources base="http://localhost:8080/Engine/services/Evaluation">
        <resource path="/Evaluation/">
            <resource path="initializeEvaluation/{localeCode}">
                <param name="localeCode" style="template" type="xs:string"/>
                <method name="GET">
                    <request>
                        <representation mediaType="application/octet-stream"/>
                    </request>
                    <response>
                        <representation mediaType="application/json"/>
                    </response>
                </method>
            </resource>
        </resource>
    </resources>
</application>

問題は、ブラウザからURLを使用してメソッドを呼び出す方法です。

私は入力しようとしました:

http://localhost:8080/Engine/services/Evaluation/initializeEvaluation?localeCode=en-GB

しかし、私は持っています:

2013-01-30 11:22:13,477 [http-bio-8080-exec-3] WARN   JAXRSInInterceptor - No root resource matching request path /Engine/services/Evaluation/initializeEvaluation has been found, Relative Path: /initializeEvaluation. Please enable FINE/TRACE log level for more details.
2013-01-30 11:22:13,479 [http-bio-8080-exec-3] WARN   WebApplicationExceptionMapper - javax.ws.rs.NotFoundException

私はRESTで非常に新しいですが、私が理解している限り、URLは上記のようになっているはずです。なぜ私は例外を取得しているのですか?

私のJavaインターフェース:

@Path("/Evaluation/")
@Produces(MediaType.APPLICATION_JSON)
public interface EvaluationService {

    @GET
    @Path("initializeEvaluation/{localeCode}")
    EvaluationStatus initializeEvaluation(ClientType client, @PathParam("localeCode") String localeCode)
            throws EvaluationException;

}

Apache CXF 2.7.0、JDK 1.7、Tomcat7を使用しています。

4

3 に答える 3

3

これはパスパラメータです。したがって、URLは次のようになります。

http://localhost:8080/Engine/services/Evaluation/initializeEvaluation/en-GB
于 2013-01-30T15:01:29.830 に答える
1

@Pathアノテーションに/がありません。

@Path("/initializeEvaluation/{localeCode}")
于 2013-01-30T11:33:06.507 に答える
0

RestClientプラグインを使用すると、作業が楽になります。

于 2013-01-30T11:32:08.373 に答える