有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java restTemplate从restfull Web服务获取文件数组

我编写了一个restfullwebservice,它返回一个文件数组(File[]),我使用restemlate从我的spring控制器中使用它。getForEntity但我得到了以下错误堆栈:

org.springframework.web.client.HttpServerErrorException: 500 Server Error
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94)
    at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:588)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:546)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:502)
    at org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:264)
    at com.MyAppConverter.MapTool.HomeController.restore(HomeController.java:83)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:146)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:277)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

这是我的restFull web服务

public File[] restore(String test){
File[] files = new File(System.getProperty("user.dir")+"/BackUpsMapping").listFiles();      
System.out.println("done");
return files;

}

下面是使用web服务的代码部分

ResponseEntity<File[]> results = restTemplate.getForEntity("http://localhost:8181/cxf/karafsimple/say/restore", File[].class);

谢谢你的帮助

编辑:

以下是错误堆栈服务器端(karaf):

2015-04-17 16:27:45,199 | WARN  | qtp595150365-205 | PhaseInterceptorChain
      | ache.cxf.common.logging.LogUtils  443 | 74 - org.apache.cxf.cxf-api - 2.
7.2 | Interceptor for {http://rest.karafcxf.rerun.me/}HelloRestServiceImpl has t
hrown exception, unwinding now
java.lang.NullPointerException
        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDele
gation(BundleWiringImpl.java:1432)[org.apache.felix.framework-4.0.3.jar:]
        at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringIm
pl.java:72)[org.apache.felix.framework-4.0.3.jar:]
        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadCla
ss(BundleWiringImpl.java:1843)[org.apache.felix.framework-4.0.3.jar:]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_75]
        at org.apache.cxf.jaxrs.impl.RuntimeDelegateImpl.createResponseBuilder(R
untimeDelegateImpl.java:82)[111:org.apache.cxf.cxf-rt-frontend-jaxrs:2.7.2]
        at javax.ws.rs.core.Response$ResponseBuilder.newInstance(Response.java:8
26)[64:org.apache.servicemix.specs.jsr339-api-m10:2.2.0]
        at javax.ws.rs.core.Response.status(Response.java:591)[64:org.apache.ser
vicemix.specs.jsr339-api-m10:2.2.0]
        at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(
JAXRSOutInterceptor.java:128)[111:org.apache.cxf.cxf-rt-frontend-jaxrs:2.7.2]
        at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JA
XRSOutInterceptor.java:86)[111:org.apache.cxf.cxf-rt-frontend-jaxrs:2.7.2]
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
orChain.java:271)[74:org.apache.cxf.cxf-api:2.7.2]
        at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Out
goingChainInterceptor.java:77)[74:org.apache.cxf.cxf-api:2.7.2]
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercept
orChain.java:271)[74:org.apache.cxf.cxf-api:2.7.2]
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIniti
ationObserver.java:121)[74:org.apache.cxf.cxf-api:2.7.2]
        at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(Abstract
HTTPDestination.java:239)[105:org.apache.cxf.cxf-rt-transports-http:2.7.2]
        at org.apache.cxf.transport.servlet.ServletController.invokeDestination(
ServletController.java:218)[105:org.apache.cxf.cxf-rt-transports-http:2.7.2]
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletCont
roller.java:163)[105:org.apache.cxf.cxf-rt-transports-http:2.7.2]
        at org.apache.cxf.transport.servlet.ServletController.invoke(ServletCont
roller.java:137)[105:org.apache.cxf.cxf-rt-transports-http:2.7.2]
        at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpr
ingServlet.java:158)[105:org.apache.cxf.cxf-rt-transports-http:2.7.2]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Ab
stractHTTPServlet.java:243)[105:org.apache.cxf.cxf-rt-transports-http:2.7.2]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHT
TPServlet.java:168)[105:org.apache.cxf.cxf-rt-transports-http:2.7.2]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)[82:org.a
pache.geronimo.specs.geronimo-servlet_2.5_spec:1.2]
        at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(Abstract
HTTPServlet.java:219)[105:org.apache.cxf.cxf-rt-transports-http:2.7.2]
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652
)[93:org.eclipse.jetty.servlet:7.6.9.v20130131]
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java
:445)[93:org.eclipse.jetty.servlet:7.6.9.v20130131]
        at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.do
Handle(HttpServiceServletHandler.java:70)[103:org.ops4j.pax.web.pax-web-jetty:1.
1.17]
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j
ava:137)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.jav
a:556)[92:org.eclipse.jetty.security:7.6.9.v20130131]
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandl
er.java:227)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandl
er.java:1044)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(
HttpServiceContext.java:124)[103:org.ops4j.pax.web.pax-web-jetty:1.1.17]
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:
372)[93:org.eclipse.jetty.servlet:7.6.9.v20130131]
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandle
r.java:189)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandle
r.java:978)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j
ava:135)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection
.handle(JettyServerHandlerCollection.java:81)[103:org.ops4j.pax.web.pax-web-jett
y:1.1.17]
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper
.java:116)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.server.Server.handle(Server.java:367)[91:org.eclips
e.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(Abstrac
tHttpConnection.java:486)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(Blockin
gHttpConnection.java:53)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(Abstra
ctHttpConnection.java:926)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.header
Complete(AbstractHttpConnection.java:988)[91:org.eclipse.jetty.server:7.6.9.v201
30131]
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)[87:o
rg.eclipse.jetty.http:7.6.9.v20130131]
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
[87:org.eclipse.jetty.http:7.6.9.v20130131]
        at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpCo
nnection.java:72)[91:org.eclipse.jetty.server:7.6.9.v20130131]
        at org.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannel
EndPoint.run(BlockingChannelConnector.java:298)[91:org.eclipse.jetty.server:7.6.
9.v20130131]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPoo
l.java:608)[85:org.eclipse.jetty.util:7.6.9.v20130131]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool
.java:543)[85:org.eclipse.jetty.util:7.6.9.v20130131]
        at java.lang.Thread.run(Thread.java:745)[:1.7.0_75]
2015-04-17 16:27:45,201 | INFO  | qtp595150365-205 | LoggingOutInterceptor
      | eptor.AbstractLoggingInterceptor  234 | 74 - org.apache.cxf.cxf-api - 2.
7.2 | Outbound Message
---------------------------
ID: 19
Response-Code: 500
Encoding: UTF-8
Content-Type: text/xml
Headers: {}
Payload: <ns1:XMLFault xmlns:ns1="http://cxf.apache.org/bindings/xformat"><ns1:f
aultstring xmlns:ns1="http://cxf.apache.org/bindings/xformat">java.lang.NullPoin
terException</ns1:faultstring></ns1:XMLFault>

共 (0) 个答案