0

JSONObjects と JSONArrays を返すレスト サービスがあります。

戻ろうとしている

org.codehaus.jettison.json.JSONArray をインポートします。org.codehaus.jettison.json.JSONObject をインポートします。

私の休息サービスから。

元 :

 @Path("/SubgraphIds")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public JSONArray getSubgraphIds() {

       .......

    }

    @Path("/Subgraph/id={id}/startTime={startTime}/duration={duration}")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public JSONObject getSubgraph(@PathParam("id")String id ,@PathParam("startTime")String startTime ,
                              @PathParam("duration")String duration) {

    }

私のアプリケーションでは、com.sun.jersey.api.container.httpserver を使用して、アプリケーション内で自分の Rest サービスを内部的に開始します。

/** * サービスの開始 */ this.resourceConfig = new PackagesResourceConfig(restPkg);

        resourceConfig.getFeatures().put(ClientConfig.FEATURE_DISABLE_XML_SECURITY, true);
        resourceConfig.getProperties().put(ClientConfig.FEATURE_DISABLE_XML_SECURITY, "true");
        resourceConfig.getClasses().add(JSONArrayProvider.class);
        resourceConfig.getClasses().add(JSONArrayProvider.class);
        this.httpServer = HttpServerFactory.create(getURL(port), resourceConfig);

しかし、サーバーの起動時に次のエラーが発生します。これを解決するための考えは非常に高く評価されています。(私は jersey-core,jersey-server,jersey-json 1.1.1-ea バージョンを使用しています)。

SEVERE: プロバイダ クラス、クラス com.sun.jersey.json.impl.provider.entity.JSONArrayProvider をインスタンス化できませんでした。処理は続行されますが、クラスは使用されませんjava.lang.Class.newInstance(Class.java:327) の java.lang.Class.newInstance0(Class.java:368) の sun.reflect.Reflection.ensureMemberAccess(Reflection.java:95) での修飾子 "" を持つ .JSONArrayProvider ) com.sun.jersey.core.spi.component.ComponentConstructor で。getInstance(ComponentConstructor.java:152) at com.sun.jersey.core.spi.component.ComponentConstructor.getInstance(ComponentConstructor.java:140) at com.sun.jersey.core.spi.component.ProviderFactory.com.sun.jersey.core.spi.component.ProviderFactory._getComponentProvider(ProviderFactory.java:152) の _getComponentProvider(ProviderFactory.java:159) com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory. java:146) com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory.java:124) で com.sun.jersey.core.spi.component.ProviderServices.getComponent(ProviderServices.java:190) でcom.sun.jersey.core.spi.component.ProviderServices.getProvidersAndServices(ProviderServices.java:120) で com.sun.jersey.core.spi.factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:153) で com.sun .jersey.core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:145) at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:609) com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:168) com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:130) com.sun.jersey .api.container.httpserver.HttpServerFactory.create(HttpServerFactory.java:169)

4

1 に答える 1