java - 在 Web 服务中使用 OAuth 时出现异常

标签 java android web-services oauth-2.0 axis

我有一个为管理我们的应用内计费而开发的网络服务。现在我想对其进行更改以包括对 Android Subscription API 的支持。所以我必须使用 OAuth 来查询 Google 的服务器。
我的代码完美地作为基于控制台的应用程序工作。但是,当我尝试将其发布为 Web 服务时,我得到以下异常。是某种错误还是我做错了什么?如果我错了,请指导我。

IWAB0398E Error in generating WSDL from Java:  java.lang.NoClassDefFoundError: com/google/api/client/http/HttpRequestInitializer
    java.lang.NoClassDefFoundError: com/google/api/client/http/HttpRequestInitializer
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.getDeclaredMethod(Unknown Source)
    at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospection(JavaServiceDesc.java:874)
    at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospection(JavaServiceDesc.java:846)
    at org.apache.axis.description.JavaServiceDesc.getOperations(JavaServiceDesc.java:410)
    at org.apache.axis.wsdl.fromJava.Emitter.writePortType(Emitter.java:1016)
    at org.apache.axis.wsdl.fromJava.Emitter.getWSDL(Emitter.java:484)
    at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:331)
    at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:430)
    at org.apache.axis.tools.ant.wsdl.Java2WsdlAntTask.execute(Java2WsdlAntTask.java:243)
    at org.eclipse.jst.ws.internal.axis.consumption.core.command.Java2WSDLCommand.executeAntTask(Java2WSDLCommand.java:180)
    at org.eclipse.jst.ws.internal.axis.consumption.core.command.Java2WSDLCommand.execute(Java2WSDLCommand.java:95)
    at org.eclipse.jst.ws.internal.axis.creation.ui.command.BUCodeGenOperation$BottomUpWSModifyOperation.execute(BUCodeGenOperation.java:122)
    at org.eclipse.jst.ws.internal.axis.creation.ui.command.BUCodeGenOperation.execute(BUCodeGenOperation.java:86)
    at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.runCommand(CommandFragmentEngine.java:419)
    at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.visitTop(CommandFragmentEngine.java:359)
    at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.moveForwardToNextStop(CommandFragmentEngine.java:254)
    at org.eclipse.wst.command.internal.env.ui.widgets.SimpleCommandEngineManager$6.run(SimpleCommandEngineManager.java:294)
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
    at org.eclipse.wst.command.internal.env.ui.widgets.SimpleCommandEngineManager.runForwardToNextStop(SimpleCommandEngineManager.java:264)
    at org.eclipse.wst.command.internal.env.ui.widgets.popup.DynamicPopupWizard.runHeadLess(DynamicPopupWizard.java:188)
    at org.eclipse.wst.command.internal.env.ui.widgets.popup.DynamicPopupWizard$1.run(DynamicPopupWizard.java:143)
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
    at org.eclipse.wst.command.internal.env.ui.widgets.popup.DynamicPopupWizard.run(DynamicPopupWizard.java:139)
    at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1408)

以下是我用过的 jar 。
  • google-api-services-androidpublisher-v1-rev2-1.8.0-beta.jar
  • google-http-client-jackson-1.11.0-beta
  • jackson 核心asl-1.9.9
  • Guava -11.0.1
  • google-oauth-client-1.11.0-beta
  • google-http-client-1.11.0-beta
  • google-api-services-calendar-v3-rev16-1.8.0-beta
  • google-api-client-1.11.0-beta
  • google-http-client-jackson2-1.11.0-beta
  • 最佳答案

    java.lang.NoClassDefFoundError: com/google/api/client/http/HttpRequestInitializer
    

    这表示。
    This runtime error is thrown by the JVM when there is an attempt by a
    ClassLoader to load the definition of a Class (Class referenced in your 
    application code etc.) and when such Class definition could not be found
    within the current ClassLoader tree.
    

    可能是类路径设置不正确。

    关于java - 在 Web 服务中使用 OAuth 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12614371/

    相关文章:

    java - 通过套接字传输时出现随机错误

    java - 将大 JSON 文件转换为 XML

    android - NDK OpenSL ES,使用 URI(非缓冲)播放器的无缝循环声音

    java - 如何在android中执行智能字符串检查

    java - 泽西编码成员名单问题

    java - Soap Web 服务中多部分请求的内容类型

    java - 在客户端代码中使用 RequestContext 接口(interface)时,GWT 应用程序在运行时崩溃

    java - 由于 java.lang.ArrayIndexOutOfBoundsException 无法打开图像

    android - 设备和模拟器的布局不匹配(phonegap + jquery mobile)

    c# - 什么是最好的?轮询套接字或等待 Web 服务超时?