Jakarta ee 谷歌API授权代码流

Jakarta ee 谷歌API授权代码流,jakarta-ee,jboss,google-api,jboss7.x,Jakarta Ee,Jboss,Google Api,Jboss7.x,我真的很难实现一个简单的GoogleOAuth交易。我正在使用JavaEE,在JBossV7.1上运行,并在EclipseIndigo中编程 这是密码。它所做的只是在访问/索引时运行servlet,它应该建立授权代码流。事实并非如此;代码挂起(上载到服务器时)在 以下是异常日志的简短版本: EXCEPTION javax.servlet.ServletException: Servlet execution threw an exception ROOT CAUSE

我真的很难实现一个简单的GoogleOAuth交易。我正在使用JavaEE,在JBossV7.1上运行,并在EclipseIndigo中编程

这是密码。它所做的只是在访问/索引时运行servlet,它应该建立授权代码流。事实并非如此;代码挂起(上载到服务器时)在

以下是异常日志的简短版本:

    EXCEPTION

    javax.servlet.ServletException: Servlet execution threw an exception

    ROOT CAUSE

    java.lang.NoClassDefFoundError: com/google/api/client/auth/oauth2/AuthorizationCodeFlow
    com.pjm.servlets.IndexController.doGet(IndexController.java:30)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

    ROOT CAUSE

    java.lang.ClassNotFoundException: com.google.api.client.auth.oauth2.AuthorizationCodeFlow from [Module "deployment.PmWebProjectB.war:main" from Service Module Loader]
    org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
    org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
    org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
    org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
    org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)           org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    com.pjm.servlets.IndexController.doGet(IndexController.java:30)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

看起来我没有将正确的jar文件上传到正确的位置,但我已经做了通常的事情,并在Eclipse中上传了它们,这似乎很高兴。如有任何建议,将不胜感激

您的JAR在jboss上不可用。您是如何通过eclipse将应用程序部署到jboss的,还是将项目导出为jar(如果是,那么您需要在创建war时添加jar)?

Hi sudmong,感谢您的回复!我正在通过eclipse进行部署。在部署应用程序的服务器部署目录中,您能看到google authflow JAR和应用程序代码吗?我怀疑它不在那里。这意味着您已经从外部位置在构建路径上添加了这些JAR,并且您能够编译代码。要让这些jar在运行时运行,请将这些jar添加到应用程序的WEB-INF/lib文件夹中,eclipse将使用应用程序推送这些jar。同时更新构建路径以从新位置获取这些内容。再次感谢您的持续帮助!相关的jar已经添加到构建路径中。在完成了您的建议之后(将jar也添加到WEB-INF/lib目录),jboss现在开始大惊小怪,说了类似这样的话:“WARN[org.jboss.as.server.deployment](MSC服务线程1-3)“/C:/jboss-as-7.1.1.Final/standalone/dep-loyments/WebProjectB.war/WEB-INF/lib/google-api-client-1.9.0-beta.jar”中的类路径条目gson-2.1.jar“没有指向类路径引用的有效jar”,但该应用程序已部署(并给出与前面引用的错误相同)。jboss 7可能存在一些问题。导出项目的war并在其他服务器上(tomcat或jboss6)上试用,或者直接在JBoss7上试用,而不是从eclipse上试用。然后看看问题是什么。
    package com.pjm.servlets;

    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import com.google.api.client.auth.oauth2.AuthorizationCodeFlow;

    @WebServlet("/index")
    public class IndexController extends HttpServlet {          
        private static final String clientId = "1234.apps.googleusercontent.com";
        private static final String clientSecret = "12345abcde";
        private static final String callbackUrl = "http://localhost:8080/ProjectA/callback";
        private AuthorizationCodeFlow flow;

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {       
            String url =        flow.newAuthorizationUrl().setState("xyz").setRedirectUri("https://client.example.com/rd").build();
        }
    EXCEPTION

    javax.servlet.ServletException: Servlet execution threw an exception

    ROOT CAUSE

    java.lang.NoClassDefFoundError: com/google/api/client/auth/oauth2/AuthorizationCodeFlow
    com.pjm.servlets.IndexController.doGet(IndexController.java:30)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

    ROOT CAUSE

    java.lang.ClassNotFoundException: com.google.api.client.auth.oauth2.AuthorizationCodeFlow from [Module "deployment.PmWebProjectB.war:main" from Service Module Loader]
    org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
    org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
    org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
    org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
    org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)           org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    com.pjm.servlets.IndexController.doGet(IndexController.java:30)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)