2

単純なGoogleOAuthトランザクションを実行するのに本当に苦労しています。私はJavaEEを使用しており、JBoss v7.1で実行しており、すべてEclipseIndigoでプログラミングしています。

これがコードです。/ indexにアクセスするときにサーブレットを実行するだけで、AuthorisationCodeFlowを確立する必要があります。そうではありません。コードが(サーバーにアップロードするときに)ハングする

    privateAuthorizationCodeFlow flow;

    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)

正しいjarファイルを適切な場所にアップロードしていないようですが、通常どおりにEclipseにアップロードしたので、満足しているようです。任意の提案をいただければ幸いです!

4

1 に答える 1

2

jar は jboss では利用できません。Eclipse を介して jboss にアプリをデプロイする方法、またはプロジェクトを jar としてエクスポートする方法 (そうであれば、war の作成中に jar を追加する必要があります)。

于 2012-06-13T05:21:19.467 に答える