0

Diese Klasse funktioniert perfekt, wenn ich esWarum funktioniert Google Drive API nicht, wenn es vom Java-Servlet aufgerufen wird?

public class MyDrive { 

    private static String CLIENT_ID = ""; 
    private static String CLIENT_SECRET = ""; 
    private Drive service; 

    public MyDrive() throws IOException { 

     HttpTransport httpTransport = new NetHttpTransport(); 
     JsonFactory jsonFactory = new JacksonFactory(); 

     GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
      httpTransport, jsonFactory, CLIENT_ID, CLIENT_SECRET, 
      Arrays.asList(new String[] { DriveScopes.DRIVE })) 
      .setAccessType("online").setApprovalPrompt("auto").build(); 

     Credential credential = new AuthorizationCodeInstalledApp(
      flow, new LocalServerReceiver()).authorize(""); 

     // Create a new authorized API client 
     Drive service = new Drive.Builder(httpTransport, jsonFactory, 
       credential).build(); 

     this.service = service; 
    } 

    public Drive getDrive() { 
     return service; 
    } 

    public static void main(String[] args) throws IOException { 
     MyDrive drv = new MyDrive(); 
    } 
} 

separat laufen, aber wenn ich versuche, Objekt dieser Klasse von Java-Servlet erstellen ich folgende Fehler

java.lang.ClassNotFoundException: com.google.api.client.json.JsonFactory 
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285) 
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119) 
at WorkingServlets.CreateClassroomServlet.doPost(CreateClassroomServlet.java:60) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) 
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) 
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) 
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) 
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) 
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Unknown Source) 

ich es nicht denken, bekommen ist Problem von jar, da diese Klasse separat korrekt ausgeführt wird. Was kann das Problem sein?

+0

Fügen Sie die Google-Gläser zu Classpath Ihre Servlets, wahrscheinlich unter '.../WEB-INF/lib' – Bohemian

Antwort

0

diese Abhängigkeiten verwenden, und versuchen Projekt zu aktualisieren:

<dependency> 
    <groupId>com.google.http-client</groupId> 
    <artifactId>google-http-client</artifactId> 
    <version>1.22.0</version> 
</dependency> 

<dependency> 
    <groupId>com.google.api-client</groupId> 
    <artifactId>google-api-client</artifactId> 
    <version>1.22.0</version> 
</dependency> 


<dependency> 
    <groupId>com.google.oauth-client</groupId> 
    <artifactId>google-oauth-client</artifactId> 
    <version>1.22.0</version> 

+0

Wie kann ich TU das? Es ist kein Maven-Projekt. Ich benutze Eclipse IDE – Iraklius

Verwandte Themen