2014-10-12 2 views
0

Spring MVC 애플리케이션이있다. 문제는 HttpGet을 실행하고 @Component 클래스 내부에서 응답을받을 수 없다는 것입니다. 내 @Component 클래스 함수는 다음과 같습니다.Spring @Component HttpGet execute

private String getSite(String url) throws IOException, InterruptedException { 
    HttpClient httpclient = HttpClients.createDefault(); 
    HttpGet httpget = new HttpGet(url); 
    HttpResponse response = httpclient.execute(httpget); // This line causes the problem 

    BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
    StringBuilder builder = new StringBuilder(); 
    for (String line = null; (line = reader.readLine()) != null;) { 
     builder.append(line).append("\n"); 
    } 
    return builder.toString(); 
} 

콘솔 앱에서 작동하는 것은 완벽합니다.

> HTTP Status 500 - Servlet.init() for servlet mvc-dispatcher threw 
> exception 
type Exception report 
message Servlet.init() for servlet mvc-dispatcher threw exception 
description The server encountered an internal error that prevented it from fulfilling this request. 
exception javax.servlet.ServletException: Servlet.init() for servlet mvc-dispatcher threw exception 

root cause java.lang.NoClassDefFoundError: org/apache/http/HttpEntity 
root cause java.lang.ClassNotFoundException: org.apache.http.HttpEntity 

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) 
    java.lang.Class.getDeclaredConstructors0(Native Method) 
    java.lang.Class.privateGetDeclaredConstructors(Class.java:2532) 
    java.lang.Class.getDeclaredConstructors(Class.java:1901) 
org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:230) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:976) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:949) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:490) 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) 
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607) 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) 
org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:647) 
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:598) 
org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:661) 
org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:517) 
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:458) 
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:138) 
    javax.servlet.GenericServlet.init(GenericServlet.java:158) 
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) 
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) 
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) 
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    java.lang.Thread.run(Thread.java:745) 

답변

1

org.apache.http.HttpEntityhttpcore에 : 여기

 <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpclient</artifactId> 
      <version>4.3.5</version> 
     </dependency> 

은 웹 응용 프로그램을 배포하고 첫 번째 페이지가로드 될 때 나타나는 오류 메시지입니다 : 여기 내 받는다는의 pom.xml (포함 httpComponents)입니다 . 당신에게 의존성도 추가하십시오.