使用 AWS SimpleDB 从 Java Servlet 创建域

2024-02-09

我是一名大学生,正在从事一个研究项目,该项目涉及将 Web 应用程序迁移到亚马逊云。上学期我一直在研究 servlet,并且能够使用 Tomcat 中运行的 java servlet 来实现应用程序的大部分功能。

我现在正在尝试集成 Amazon Web Services,例如 SimpleDB 和电子邮件服务。我使用 Eclipse Java EE for Web Developers Indigo IDE 进行开发。我安装了 AWS 插件,并且能够运行 Amazon 提供的示例代码来成功调用 SDB 和 SES。

但是,当我尝试直接从 servlet 或通过单独的类调用 simpleDB 等服务时,我收到以下错误:

HTTP 状态 500 -

类型异常报告

message

描述 服务器遇到内部错误 (),导致无法执行 它从满足这个请求。

例外

javax.servlet.ServletException:实例化 servlet 类时出错 org.comtor.cloud.api.APIservlet org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:680)根本原因

java.lang.NoClassDefFoundError:com/amazonaws/auth/AWSCredentials java.lang.Class.getDeclaredConstructors0(本机方法) java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) java.lang.Class.getConstructor0(Class.java:2699) java.lang.Class.newInstance0(Class.java:326) java.lang.Class.newInstance(Class.java:308) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:680)根本原因

java.lang.ClassNotFoundException:com.amazonaws.auth.AWSCredentials org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533) java.lang.Class.getDeclaredConstructors0(本机方法) java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) java.lang.Class.getConstructor0(Class.java:2699) java.lang.Class.newInstance0(Class.java:326) java.lang.Class.newInstance(Class.java:308) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:680) 注意 完整的堆栈跟踪 根本原因可在 Apache Tomcat/7.0.23 日志中找到。

阿帕奇汤姆猫/7.0.23

我的代码如下所示:

package org.comtor.cloud.api;

import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;

import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.simpledb.AmazonSimpleDBClient;
import com.amazonaws.services.simpledb.model.CreateDomainRequest;

import java.io.IOException;

@SuppressWarnings("serial")
public class APIservlet extends HttpServlet {
  public void doGet (HttpServletRequest request,
                     HttpServletResponse response)
    throws ServletException, IOException
  {
      doPost(request, response);
  }
  public void doPost(HttpServletRequest request,
          HttpServletResponse response)
                  throws ServletException, IOException {
        PrintWriter out = response.getWriter();

        // AWS Credentials
        String sAccessKey = "myAccessKey";
        String sSecretKey = "mySecretKey";

        // Authenticate AWS account
        BasicAWSCredentials oAWSCredentials = new BasicAWSCredentials(sAccessKey, sSecretKey);
        AmazonSimpleDBClient awsSimpleDBClient = new AmazonSimpleDBClient(oAWSCredentials);

        // Try to access simpleDB
        try 
        {
            System.out.println("Connecting to Simple Database");
            // Create a domain
            String myDomain = "MyStore";
            System.out.println("Creating domain called " + myDomain + ".\n");
            awsSimpleDBClient.createDomain(new CreateDomainRequest(myDomain));
            System.out.println("Connection Made");

        } 
        // Print Error Stack Trace
        catch (NoSuchAlgorithmException e) 
        {
            e.printStackTrace();
        }

        // Close PrintWriter
        out.close();
  }
}

** 从代码中删除访问权限和密钥 **

SES 也是如此。我也尝试过使用像“typica”这样的 java 库,但仍然收到 NoClassDef 错误。我的构建路径中的库文件夹下有 AWS 库,并且 jar 包/类似乎在那里。所以我不确定为什么我无法使用这些类从我的 servlet 与 simpleDB 交互。

我非常感谢有关此事的任何帮助。我相信我还没有完全理解如何从 Web 环境调用 AWS SDB。

谢谢。


java.lang.ClassNotFoundException: com.amazonaws.auth.AWSCredentials 指示此类不在您的类路径中。确保包含 com.amazonaws.auth.AWSCredentials 类的 jar 包含在您的 Web 应用程序的 WEB-INF/lib 文件夹中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 AWS SimpleDB 从 Java Servlet 创建域 的相关文章

  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • 查询CloudSearch中字段是否存在

    假设我在 CloudSearch 中索引的文档列表中有一个名为 xyz 的可选字段 如何查询 CloudSearch 以使其仅返回包含 xyz 的文档 如果我预先知道它是一个正整数 我可能可以这样做来获取所需的列表 q xyz 0 q pa
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • 使用随机目录结构重命名传入的 S3 文件

    我有一个可以将文件发送到 s3 存储桶的应用程序 不幸的是 我无法更改它在 s3 中发送到的路径 因此我必须找到一种方法来获取该文件 mys3bucket apps region 020 07 14T22 24 34Z details cs
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 当初始状态和最终状态相同时,不会触发transitionend

    在下面的例子中我正在做background color使用 CSS 进行过渡并尝试处理transitionend两个 div 的事件 很遗憾 transitionend没有被解雇div2因为初始和最终背景颜色相同 var div1 div1
  • ASP.NET WebAPI 默认登陆页面

    我已经使用 ASP NET WebApi v2 创建了一个 RESTful Web 服务 并且正在使用虚张声势 https github com domaindrivendev Swashbuckle为 API 文档生成 swagger U
  • 使用 C# 反射从字典生成动态对象

    我一直在研究 C 中的反射 想知道我是否使用带有键值的字典可以创建一个带有变量的对象 该变量包含字典中每个键的名称及其值 该字典的键值 我有一个相反的方法 它从字典中提取一个对象 该字典包含键和类属性及其值 即属性的值 我想知道如果可能的话
  • Julia 中加载/导入的包列表

    如何获取 Julia 会话导入 使用的包的列表 Pkg status 列出所有已安装的软件包 我对通过以下方式导入 加载的内容感兴趣using or import 看起来whos 包含相关信息 名称以及是否是模块 可以输出whos 被捕获在
  • jQuery every 循环重命名 ID 的每个实例

    我有一个页面正在表中创建动态创建的行 其输入的 ID 为 fixedRate 我正在尝试重命名fixedRate id 的每个实例 这仅适用于我当前代码的 id 的第一个实例 这是代码 var amountRows billTasks gt
  • 析构函数永远不会被调用[重复]

    这个问题在这里已经有答案了 我有课Class这创造了一个Thread在它的构造函数中 该线程运行一个while true 循环正在读取非关键数据NetStream 该线程将被析构函数中止 Class thread Abort thread
  • 进程是否在远程计算机上运行?

    我有三台远程连接的远程电脑 我正在尝试编写一个简单的 Windows 应用程序 该应用程序将在单个窗口中显示特定进程是否在任意一台机器上运行 例如 Server1 Chrome 未运行 Server2 Chrome 正在运行 Server3
  • 为 Android 创建 PDU

    我目前正在编写和应用程序 即发送 接收短信 出于单元测试的目的 我需要以编程方式创建 PDU 解码非常简单 Bundle bundle intent getExtras if bundle null Get all messages con
  • 有人尝试过用Z3本身来证明Z3吗?

    有没有人尝试证明Z3 http research microsoft com en us um redmond projects z3 与Z3本身 是否有可能使用 Z3 来证明 Z3 是正确的 更理论化的是 是否有可能使用 X 本身来证明工
  • 模型不会在 ng-if 内更新

    我在角度应用程序中遇到了奇怪的行为 我不知道这是一个错误还是已知的限制 use strict var ctrl function scope scope foo false div foo foo div style background
  • 使用另一个表中的数据创建 SQL 表

    如何使用另一个表 表的副本 中已存在的数据创建表 复制表的最便携方法是 使用 CREATE TABLE 语句创建新表 基于旧表中的 SELECT 使用 INSERT INSERT INTO new table SELECT FROM old
  • 以类似于 Windows 的 MessageBox() 的方式使用 UIAlertView?

    我是 iPhone 新手 我希望能够以类似于 Windows 的方式使用 UIAlertViewMessageBox or the MessageDlg in Delphi 例如 我有一个方法需要询问用户对某件事的确认 并根据他们的响应继续
  • 仅返回与 Solr 匹配足够 NGram 的结果

    为了使用 Solr 实现某种程度的容错 我开始使用NGramFilterFactory 以下是来自schema xml
  • RegAsm.exe 和 regsvr32 有什么区别?如何使用regsvr32生成tlb文件?

    谁能告诉我 regsvr32 和 RegAsm 之间有什么区别 我的 Dll 是 C 语言 那么如何将类导入到 C 中 regsvr32将加载库并尝试调用DllRegisterServer 从那个图书馆 它不在乎什么DllRegisterS
  • PostgreSQL 与 SQL Server NVARCHAR 等效的是什么?

    如果 Microsoft SQL Server 数据库中有 NVARCHAR 或 NTEXT 数据类型的字段 那么 PostgreSQL 数据库中的等效数据类型是什么 我很确定 postgres varchar 与 Oracle Sybas
  • 基本字符串输入

    我刚刚遇到了这段代码 它允许用户在命令提示符中输入字符串 我知道他们所做的一切 这一切都很棒 但我有一个关于 cin 和 getline 函数的问题 string name cout lt lt Please enter your full
  • 如何创建这样的渐变进度指示器?

    我注意到基本的CircularProgressIndicator小部件有很少的参数来定制它 我想要达到像 gif 上那样的结果 不幸的是 我的知识不足以从头开始创建这样一个指标 在 pub dev 上搜索没有带来任何结果 Make a Cu
  • PHP 返回错误 500,但没有记录任何内容

    当我有一个 php 应用程序返回内部服务器错误 500 但错误日志中没有显示任何内容时 我遇到了问题 现在我知道我正在尝试运行的内容有错误 我知道我丢失了一些文件以及什么没有 但是 apache 错误日志中应该显示一些内容 否则我应该如何确
  • 使用 opencv 3.0 的 cv2 中的 KNN train()

    我正在尝试使用 cv2 python 2 7 和 opencv 3 0 运行 k 最近邻 我使用类似的代码复制了相同的错误消息http docs opencv org 3 0 beta doc py tutorials py ml py k
  • 使用 AWS SimpleDB 从 Java Servlet 创建域

    我是一名大学生 正在从事一个研究项目 该项目涉及将 Web 应用程序迁移到亚马逊云 上学期我一直在研究 servlet 并且能够使用 Tomcat 中运行的 java servlet 来实现应用程序的大部分功能 我现在正在尝试集成 Amaz