Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat7-GoogleOAuth2-ClassNotFoundException-Java-Eclipse_Java_Eclipse_Tomcat - Fatal编程技术网

Tomcat7-GoogleOAuth2-ClassNotFoundException-Java-Eclipse

Tomcat7-GoogleOAuth2-ClassNotFoundException-Java-Eclipse,java,eclipse,tomcat,Java,Eclipse,Tomcat,我正在尝试离线访问我的谷歌日历。 这个问题在这里已经得到了回答: 但由于某些原因,在尝试进行身份验证时,我总是得到一个ClassNotFoundException 我正在ApacheTomcat7服务器上本地运行应用程序,并使用EclipseMars。我通过Google API ManagerPlugin安装了以下API: 谷歌OAuth2API v2 (Google OAuth API v1)插件告诉我,v2是首选 谷歌日历API 通常我会将外部jar文件复制到WEB-INF/lib文件夹

我正在尝试离线访问我的谷歌日历。 这个问题在这里已经得到了回答: 但由于某些原因,在尝试进行身份验证时,我总是得到一个ClassNotFoundException

我正在ApacheTomcat7服务器上本地运行应用程序,并使用EclipseMars。我通过Google API ManagerPlugin安装了以下API:

  • 谷歌OAuth2API v2
  • (Google OAuth API v1)插件告诉我,v2是首选
  • 谷歌日历API
通常我会将外部jar文件复制到WEB-INF/lib文件夹和Tomcat/lib文件夹中,但我想插件会帮我做到这一点,对吗?所有API都列在我的JavaBuildPath上

如果我运行与Java应用程序相同的函数,它就会工作,所以Tomcat设置肯定有问题

以前有没有人遇到过这样的问题,可以帮助我? 提前谢谢

Servlet(已删除凭据):


谢谢你的快速回复。 我将所有jar文件部署到我的WEB-INF/lib中

错误在于,我还将所有jar文件添加到Java构建路径中。
您只需要从构建路径中删除这些jar文件,它就可以工作。

什么插件?您仍然需要将您的应用程序及其依赖项部署到tomcat中。该插件不会起任何作用。war文件中库的常规打包仍然应该完成。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.getWriter().append("Served at: ").append(request.getContextPath());
    this.authenticate(request, response);
}


 public void authenticate(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

        String client_id                = "";
        String redirect_uri             = "";
        String scope                    = "https://www.googleapis.com/auth/calendar";
        String client_secret            = "";
        List <String> scopes;
        HttpTransport transport         = new NetHttpTransport();
        JsonFactory jsonFactory         = new JacksonFactory();

        scopes = new LinkedList<String>();
        scopes.add(scope);
        GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(transport, jsonFactory, client_id, client_secret, scopes).build();
        GoogleAuthorizationCodeRequestUrl url = flow.newAuthorizationUrl();
        url.setRedirectUri(redirect_uri);
        url.setApprovalPrompt("force");
        url.setAccessType("offline");
        String authorize_url = url.build();
        response.sendRedirect(authorize_url);
    }
java.lang.ClassNotFoundException: com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow$Builder
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1854)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1703)
at net.meetme.CalendarServlet.authenticate(CalendarServlet.java:88)
at net.meetme.CalendarServlet.doGet(CalendarServlet.java:42)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)