尝试使用jersey api抛出异常来连接jasper服务器?

时间:2014-12-08 11:52:02

标签: java web-services jersey jasperserver

当我尝试使用jersy api抛出异常时连接jaserper服务器java.lang.NoSuchMethodError:org.glassfish.hk2.utilities.AbstractActiveDescriptor

代码在这里

RestClientConfiguration configuration = new RestClientConfiguration("//localhost:80/jasperserver");
JasperserverRestClient client = new JasperserverRestClient(configuration);
//Session session = client.authenticate("jasperadmin", "jasperadmin");
OperationResult<InputStream> result = client
    .authenticate("jasperadmin", "jasperadmin")
    .reportingService()
    .report("/reports/samples/Cascading_multi_select_report")
    .prepareForRun(ReportOutputFormat.HTML, 1)
    //.parameter("Cascading_name_single_select", "A & U Stalker Telecommunications, Inc")
    .run();
InputStream report = result.getEntity();

我得到的确切例外是

  

线程中的异常&#34; main&#34; java.lang.NoSuchMethodError:   org.glassfish.hk2.utilities.AbstractActiveDescriptor(Ljava / util的/设定; Ljava /郎/类; Ljava /郎/字符串; Ljava / util的/设定; Lorg /的glassfish / HK2 / API /描述符类型; Lorg /的glassfish / HK2 / API / DescriptorVisibility; ILjava /郎/布尔; Ljava / util的/地图;)V     在   org.jvnet.hk2.internal.ConstantActiveDescriptor。(ConstantActiveDescriptor.java:111)at at   org.jvnet.hk2.internal.ConstantActiveDescriptor。(ConstantActiveDescriptor.java:111)     在   org.jvnet.hk2.internal.Utilities.getLocatorDescriptor(Utilities.java:795)     在   org.jvnet.hk2.external.generator.ServiceLocatorGeneratorImpl.initialize(ServiceLocatorGeneratorImpl.java:69)     在   org.jvnet.hk2.external.generator.ServiceLocatorGeneratorImpl.create(ServiceLocatorGeneratorImpl.java:91)     在   org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.internalCreate(ServiceLocatorFactoryImpl.java:230)     在   org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.create(ServiceLocatorFactoryImpl.java:207)     在   org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:121)     在   org.glassfish.jersey.internal.RuntimeDelegateImpl。(RuntimeDelegateImpl.java:60)     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native   方法)at   sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)     在   sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)     at java.lang.reflect.Constructor.newInstance(Constructor.java:408)     在java.lang.Class.newInstance(Class.java:433)at   javax.ws.rs.ext.FactoryFinder.newInstance(FactoryFinder.java:117)at   javax.ws.rs.ext.FactoryFinder.find(FactoryFinder.java:207)at   javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:135)     在   javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:120)     在javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:95)at   javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)at   org.glassfish.jersey.client.JerseyWebTarget。(JerseyWebTarget.java:72)     在   org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:140)     在   org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:62)     在   com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage.init(SessionStorage.java:96)     在   com.jaspersoft.jasperserver.jaxrs.client.core.SessionStorage。(SessionStorage.java:56)     在   com.jaspersoft.jasperserver.jaxrs.client.core.JasperserverRestClient.authenticate(JasperserverRestClient.java:47)

and jar details

enter image description here

1 个答案:

答案 0 :(得分:1)

您也可以在不使用任何API的情况下执行此操作。只需使用REST调用jasper服务器所需的参数调用报告即可。这个guide会对您有所帮助。