ClientBuilder Issue

2019-06-01 00:13发布

问题:

I am new to Jersey framework. 1) i used sun jersey. it was worked fine.But i was unable to configure for client timeout with that jar 2) then i used javax.ws.rs-api. to use ClientBuilder. 3) it asked for glassfish jersey dependency. 4) i used java8 parallel processing as well. 5) But i got exceptions when running as a web project

Questions 1) can't i use sun jerey to manage the pool? 2) if i use client buider why am i getting below mentioned issue? 3) And when run as web project entity reading is not properly happening. It takes the type String.class. but not our java object response.readEntity(Status.class);

Highly Appreciate your comments Jetty Server when try to access my method

My code

response = client.target(new URI(url)).request().accept(MediaType.TEXT_XML).buildGet().invoke();

My pom file


                  <build>
                                    <finalName>project</finalName>
                                    <plugins>
                                                    <plugin>
                                                                    <groupId>org.apache.maven.plugins</groupId>
                                                                    <artifactId>maven-compiler-plugin</artifactId>
                                                                    <inherited>true</inherited>
                                                                    <configuration>
                                                                                    <source>1.8</source>
                                                                                    <target>1.8</target>
                                                                    </configuration>
                                                    </plugin>
                                                    <plugin>
                                                                    <groupId>org.mortbay.jetty</groupId>
                                                                    <artifactId>jetty-maven-plugin</artifactId>
                                                                    <version>7.6.8.v20121106</version>
                                                                    <configuration>
                                                                                    <webApp></webApp>
                                                                                    <scanIntervalSeconds>5</scanIntervalSeconds>
                                                                                    <connectors>
                                                                                                    <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                                                                                                                    <port>8080</port>
                                                                                                    </connector>
                                                                                    </connectors>
                                                                    </configuration>
                                                    </plugin>
                                    </plugins>
                    </build>
                    <dependencies>
                                    <dependency>
                                                    <groupId>com.secureworks.ctp</groupId>
                                                    <artifactId>vpngw-configuration</artifactId>
                                                    <version>1.0.0</version>
                                    </dependency>
                                    <dependency>
                                                    <groupId>com.sun.jersey</groupId>
                                                    <artifactId>jersey-server</artifactId>
                                                    <version>${jersey-version}</version>
                                    </dependency>
                                    <dependency>
                                                    <groupId>com.sun.jersey</groupId>
                                                    <artifactId>jersey-json</artifactId>
                                                    <version>${jersey-version}</version>
                                    </dependency>
                                    <dependency>
                                                    <groupId>junit</groupId>
                                                    <artifactId>junit</artifactId>
                                                    <version>4.8.2</version>
                                                    <scope>test</scope>
                                    </dependency>
    <!--  <dependency>  -->
    <!--                                        <groupId>com.sun.jersey</groupId> -->
    <!--                                        <artifactId>jersey-client</artifactId> -->
    <!--                                        <version>${jersey-version}</version> -->
    <!--                        </dependency> -->
                                    <dependency>
                                                    <groupId>org.apache.commons</groupId>
                                                    <artifactId>commons-vfs2</artifactId>
                                                    <version>2.0</version>
                                    </dependency>
                                    <dependency>
                                                    <groupId>javax.servlet</groupId>
                                                    <artifactId>javax.servlet-api</artifactId>
                                                    <version>3.1.0</version>
                                    </dependency>
                                    <dependency>
                                                    <groupId>log4j</groupId>
                                                    <artifactId>log4j</artifactId>
                                                    <version>1.2.17</version>
                                    </dependency>
                                    <dependency>
                                                    <groupId>javax.ws.rs</groupId>
                                                    <artifactId>javax.ws.rs-api</artifactId>
                                                    <version>2.0.1</version>
                                    </dependency>
                                    <dependency>
                                                    <groupId>org.glassfish.jersey.connectors</groupId>
                                                    <artifactId>jersey-apache-connector</artifactId>
                                                    <version>2.17</version>
                                    </dependency>
                                    <dependency>
                                                    <groupId>org.glassfish.jersey.core</groupId>
                                                    <artifactId>jersey-client</artifactId>
                                                    <version>2.17</version>
                                    </dependency>
                                    <dependency>
                                                    <groupId>org.glassfish.jersey.media</groupId>
                                                    <artifactId>jersey-media-jaxb</artifactId>
                                                    <version>2.17</version>
                                    </dependency>
                    </dependencies>
                    <properties>
                                    <jersey-version>1.8</jersey-version>
                    </properties>
                    <repositories>
                                    <repository>
                                                    <id>glassfish.java.net</id>
                                                    <name>GlassFish Maven Repository</name>
                                                    <url>http://download.java.net/maven/glassfish</url>
                                                    <layout>default</layout>
                                    </repository>
                                    <repository>
                                                    <id>m2.java.net</id>
                                                    <name>Java.net Maven 2 Repository</name>
                                                    <url>http://download.java.net/maven/2</url>
                                                    <layout>default</layout>
                                    </repository>
                    </repositories>
                    <pluginRepositories>
                                    <pluginRepository>
                                                    <id>m2.java.net</id>
                                                    <name>Java.net Maven 2 Repository</name>
                                                    <url>http://download.java.net/maven/2</url>
                                                    <layout>default</layout>
                                    </pluginRepository>
                    </pluginRepositories>
    </project>

Exception

Apr 30, 2015 4:14:28 AM com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException
SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NoSuchMethodError: javax.ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)V
                at org.glassfish.jersey.client.ClientRequest.accept(ClientRequest.java:335)
                at org.glassfish.jersey.client.JerseyInvocation$Builder.accept(JerseyInvocation.java:231)
                at org.glassfish.jersey.client.JerseyInvocation$Builder.accept(JerseyInvocation.java:154)
                at com.secureworks.ctp.vpngw.client.VpnClient.getResponse(VpnClient.java:149)
                at com.secureworks.ctp.vpngw.client.VpnClient.lambda$parallelProcessing$0(VpnClient.java:133)
                at com.secureworks.ctp.vpngw.client.VpnClient$$Lambda$2/347188939.apply(Unknown Source)
                at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
                at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
                at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
                at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
                at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:747)
                at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:721)
                at java.util.stream.AbstractTask.compute(AbstractTask.java:316)
                at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
                at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
                at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401)
                at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734)
                at java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:714)
                at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
                at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
                at com.secureworks.ctp.vpngw.client.VpnClient.parallelProcessing(VpnClient.java:133)
                at com.secureworks.ctp.vpngw.client.VpnClient.getClientStatus(VpnClient.java:42)
                at com.secureworks.ctp.vpngw.services.VpnGWService.getClientStatus(VpnGWService.java:35)
                at com.secureworks.ctp.vpngw.services.VpnGWServlet.vpnStatusesForSite(VpnGWServlet.java:19)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:497)
                at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
                at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
                at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
                at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
                at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
                at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
                at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
                at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
                at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
                at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
                at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
                at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
                at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
                at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
                at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
                at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
                at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1329)
                at com.secureworks.ctp.vpngw.util.LoggerFilter.doFilter(LoggerFilter.java:34)
                at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
                at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445)
                at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
                at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:556)
                at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
                at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
                at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
                at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
                at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
                at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
                at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
                at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
                at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
                at org.eclipse.jetty.server.Server.handle(Server.java:363)
                at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)
                at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:920)
                at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:982)
                at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
                at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
                at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
                at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
                at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
                at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
                at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
                at java.lang.Thread.run(Thread.java:745)