我对AWS SQS服务比较陌生.我已经编写了一些代码来包装Amazon SQS api.
我能够使用创建的队列执行基本功能,但尽管如此(事实上我一直在使用这段代码没有问题,而且我正在创建JUnit测试作为形式),我因为一个错误导致我的JUnit测试失败对我来说没什么意义.
我使用AWS管理控制台创建了一个名为SerenaQForTest的队列.当我查看AWS控制台时,我可以看到列出了我创建的队列.我已将队列的权限设置为为所有人打开.我在Java编码.
当我尝试与队列交互时,我得到一个带有错误代码AWS.SimpleQueueService.NonExistentQueueerror的AmazonServiceException.
这是我的代码.
在Junit类中:
/**
* Prefix for queues used to run junit tests.
*/
private static final String TESTQ = "SerenaForTest";
/**
* Ensures that the queue exists.
*/
@Test
public void testExists() {
System.out.println("JUnit Test EXISTS.");
CloudSQS cloudsqs = new CloudSQS();
// this queue does exist and i can see it through the aws management console in sqs
assertTrue(cloudsqs.exists(TESTQ));
// this queue does not exist.
assertTrue(cloudsqs.exists("thisQDoesNotExist") == false);
}
Run Code Online (Sandbox Code Playgroud)
而exists()的定义如下:
/**
* Determines …Run Code Online (Sandbox Code Playgroud) 我得到了一个目录目录,每个目录都包含我必须解析的.sqlite和.sqback文件的集合.
问题是我相信其中一些文件在收到时会损坏,因为我收到错误:错误:[SQLITE_CORRUPT]当我尝试处理它们时,我的控制台上的数据库磁盘映像格式错误(数据库磁盘映像格式错误) .这只发生在某些文件中.我已经隔离了一些,并尝试单独运行我的程序在这些坏文件的新副本上,它们会导致错误.大多数文件虽然很好:)
我意识到我有可能确实会被给予损坏的文件,所以在尝试解析它们之前,我想要一种方法来确定哪些文件是好的,哪些文件不是.
我是用Java写的.我只对sqlite和sqback验证感兴趣,因为我知道我的解析器工作.我正在重复使用之前的项目.
暗示?建议?答案?
非常感谢知识转移.
我的目标最终目标是通过SNS向iOS应用发送推送通知.我正在逐步完成本教程:http://docs.aws.amazon.com/sns/latest/dg/mobile-push-apns.html.
我已在我的AWS凭据中添加,并添加了相应的apns凭据,用于我的应用程序的开发密钥,证书,私钥和当前推送令牌.当我运行教程时,我得到:
Exception in thread "main" java.lang.NullPointerException
at com.amazonaws.sns.samples.tools.AmazonSNSClientWrapper.getValidNotificationAttributes(AmazonSNSClientWrapper.java:162)
at com.amazonaws.sns.samples.tools.AmazonSNSClientWrapper.publish(AmazonSNSClientWrapper.java:80)
at com.amazonaws.sns.samples.tools.AmazonSNSClientWrapper.demoNotification(AmazonSNSClientWrapper.java:131)
at com.amazonaws.sns.samples.mobilepush.SNSMobilePush.demoAppleSandboxAppNotification(SNSMobilePush.java:438)
at com.amazonaws.sns.samples.mobilepush.SNSMobilePush.main(SNSMobilePush.java:68)
Run Code Online (Sandbox Code Playgroud)
在SNSMobilePush.java的顶部有一个名为attributesMap的Map.对于密钥Platform.APNS和Platform.APNS_SANDBOX,它最初的值设置为null.在代码期间,这些值永远不会改变,并且负责导致空指针异常.本教程未指示更改这些值.
我没有做任何超出教程说明的内容.
我知道我的凭据是正确的,因为我通过Amazon Management Console使用这些相同的凭据向我的iOS应用程序发送消息.
任何人都可以表示
更新我在null检查中添加了getValidNotificationAttributes(),现在我可以使用本教程使用sns和apns发送推送通知.
push-notification amazon-web-services apple-push-notifications amazon-sns javaapns
我是Maven的新手.如果这是一个愚蠢的问题,我道歉.我有一个带有pom文件的Maven Eclipse项目,该文件使用shade插件创建一个可运行的jar.我的计划是包括一个在建几个属性文件(请纠正我,如果我的术语不正确.我真的是绿色的).我有多个属性文件位于src/main/resources中.
我想找到一种方法在runnable jar中只包含适用的属性文件.具体来说,我的项目中有两个属性文件(config1.properties,config2.properties),每个构建只使用其中一个文件,具体取决于生成的jar的所需功能.属性文件将被重新分配一个通用名称,特别是"defaultconfig.properties",以便它可以很好地与代码一起使用.
生成的jar文件(每个不同属性文件的不同文件)将作为单独的cron作业运行.我想我将使用不同的Jenkins项目根据属性文件配置项目的任务将可运行的jar部署到特定的服务器(我想我已经得到了这个部分).cron作业将在这些服务器上运行.
我的问题是:
1)逻辑在哪里确定哪些属性文件包含在可运行的jar中?
例如,假设我有config1.properties(指定使用var1 = blah和var2 = blip和var3 = boink)和config2.properties(指定使用var1 = duh var2 = dip和var3 = doink).我在哪里告诉Maven这两个文件中的哪一个用于特定版本?
2)我应该传递一个参数,告诉Maven使用哪个属性文件?如果是这样,我也会传递这个参数?这是可以在Jenkins项目中配置的吗?(即使只是一些基本的阅读会在这里帮助我,因为我不确定这是一个maven问题还是jenkins问题.我两个都是绿色的.)
这是我的pom.xml文件的相关部分:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.foo.dashboard.bar.Runner</mainClass>
</transformer>
</transformers>
<finalName>FooBar</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我已尝试使用IncludeResourceTransformer重命名属性文件,但不确定如何根据所需的jar文件功能包含切换属性文件的逻辑.
谢谢.
问题: Jackson ObjectMapper 反序列化器正在将 Double 字段的空值转换为 0。我需要将它反序列化为 null 或 Double.NaN。我怎样才能做到这一点?
我是否需要编写一个将 null 映射到 Double.NaN 的自定义 Double 反序列化器?
已经尝试过:我已经搜索了 DeserializationFeature Enum,但我认为不适用。(http://fasterxml.github.io/jackson-databind/javadoc/2.0.0/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_NULL_FOR_PRIMITIVES)
动机:我正在将一个 json 对象反序列化为一个自定义对象 (Thing),其代码类似于以下内容。我需要解串器将值保持为 null 或将其更改为 Double.NaN,因为我需要能够区分 0 情况(位于纬度/经度/高度 = 0)和 null/Double.NaN 情况(当这些值不可用)。
杰克逊反序列化
try {
ObjectMapper mapper = new ObjectMapper();
Thing t = mapper.readValue(new File("foobar/json.txt"), Thing.class);
} catch (JsonParseException e) {
...do stuff..
}
Run Code Online (Sandbox Code Playgroud)
json.txt 的内容。请注意,值 null 实际写入文件中。它不会留空。它不是空字符串。它实际上是空这个词。
{
"thing" : {
"longitude" : null,
"latitude" : null,
"altitude" : null
}
}
Run Code Online (Sandbox Code Playgroud)
事物的代码
import …Run Code Online (Sandbox Code Playgroud) 我对Amazon Cloud Auto Scaling(以及所有AWS)都很陌生.
我目前正在尝试编写一个自动创建启动配置然后自动缩放器的.bat脚本.目的是为了一个大约一周前由同事建立的图像.
我遇到的问题是,当我运行脚本时,不执行任何超过启动配置命令的命令.
代码在这里:
echo Beginning Auto Scale Up Process
REM Create a launch config
as-create-launch-config --image-id ami-xxxxxxx --instance-type t1.micro --user-data "Created by Launch Config reportingServerScaleUp-lc" --launch-config reportingServerScaleUp-lc
echo Timer Complete
Run Code Online (Sandbox Code Playgroud)
我正在寻找帮助我调试此问题的建议.或者如何解决它的建议.在"echo Timer Complete"之后,我有一个命令来创建一个自动缩放器.但是,甚至没有执行"echo Timer Complete".控制台确实返回,表明虽然创建了启动配置:)
此外,当我按顺序将每个命令输入命令行时,每个命令都完美地执行.与自动缩放组一样创建启动配置.
如果我有多个Maven插件的执行并且他们共享至少一个相同的配置值,我是否有办法在插件的所有执行之间共享此配置.
考虑具有两个执行的构建插件的简单情况:
<plugin>
<!-- ID, version... -->
<executions>
<execution>
<id>ID1</id>
<configuration>
<myConfig>foo</myConfig>
...
</configuration>
</execution>
<execution>
<id>ID2</id>
<configuration>
<myConfig>foo</myConfig>
...
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我怎样才能重写这个,以便执行ID1和ID2执行都使用相同的myConfig配置值?
java ×4
maven ×2
amazon-sns ×1
amazon-sqs ×1
android ×1
autoscaling ×1
batch-file ×1
corruption ×1
eclipse ×1
jackson ×1
jar ×1
javaapns ×1
jenkins ×1
sqlite ×1