请看下面的类,我需要检查变量中是否有有效值.如果在变量中有适当的值而不是,那么一切正常null.当它变为null时,行为不是我所期望的(尽管如果Integer a = null;选中a instanceof Integer,则可能有意义,
有人可以指导我如何从下面的课程中获得正确的结果吗?
package com.mazhar.hassan;
public class ValueChecker {
public static boolean empty(Integer value) {
System.out.println("Integer");
return (value != null && value.intValue() > 0);
}
public static boolean empty(Long value) {
System.out.println("Long");
return (value != null && value.longValue() > 0);
}
public static boolean empty(String value) {
System.out.println("String");
return (value != null && value.length() > 0);
}
public static boolean empty(Object value) {
System.out.println("Object");
return (value != null);
}
public …Run Code Online (Sandbox Code Playgroud) 我试图将文件从S3复制到Ec2实例,这是奇怪的行为以下命令运行完全正常并向我显示s3的内容,我想访问
$aws s3 ls
2016-05-05 07:40:57 folder1
2016-05-07 15:04:42 my-folder
Run Code Online (Sandbox Code Playgroud)
然后我发出以下命令(也成功)
$ aws s3 ls s3://my-folder
2016-05-07 16:44:50 6007 myfile.txt
Run Code Online (Sandbox Code Playgroud)
但是当我尝试复制此文件时,我会发现如下错误
$aws s3 cp s3://my-folder/myfile.txt ./
Run Code Online (Sandbox Code Playgroud)
必须指定区域 - 区域或在配置文件中指定区域或指定环境变量.或者,可以使用--endpoint-url指定端点
我只想将txt文件从s3复制到ec2实例.至少修改上面的命令来复制内容.我不确定区域,如果我从网上访问S3它说
"S3不需要区域选择"
地球上发生了什么?
我正在尝试从上传战争时运行脚本,所以这里是配置的内容
container_commands:
01_setup_apache:
command: "cp .ebextensions/enable_mod_deflate.conf /etc/httpd/conf.d/enable_mod_deflate.conf"
02_setup_script:
command: "sudo su root"
03_setup_script:
command: "sudo mkdir -p /home/dev"
04_setup_script:
command: "sudo chmod 777 /home/dev -R"
05_setup_script:
command: "sudo cp .ebextensions/scripts/setup.sh /home/dev/"
06_setup_script:
command: "sudo chmod +x /home/dev/setup.sh"
07_setup_script:
command: "sudo /home/dev/setup.sh"
08-restart-apache:
command: "sudo /etc/init.d/httpd restart"
Run Code Online (Sandbox Code Playgroud)
我尝试了所有方法,但在执行 setup.sh 时部署总是失败。在上面的示例中,它在07_setup_script上失败
这是日志内容
] : Starting activity...
/Command 01_setup_apache] : Starting activity...
/Command 01_setup_apache] : Completed activity.
/Command 02_setup_script] : Starting activity...
/Command 02_setup_script] : Completed activity.
/Command 03_setup_script] : …Run Code Online (Sandbox Code Playgroud) 我正在从SNS主题接收JSON,我认为这是不正确的
{
"Type":"Notification",
"MessageId":"message-id-is-this",
"TopicArn":"bouncer.topic.name.here",
"Message":"{\"notificationType\":\"Bounce\",\"bounce\":{\"bounceType\":\"Permanent\",\"bounceSubType\":\"General\",\"bouncedRecipients\":[{\"emailAddress\":\"bounce@simulator.amazonses.com\",\"action\":\"failed\",\"status\":\"5.1.1\",\"diagnosticCode\":\"smtp; 550 5.1.1 user unknown\"}],\"timestamp\":\"2017-04-24T12:58:05.716Z\",\"feedbackId\":\"feedback.id.is.here\",\"remoteMtaIp\":\"192.168.10.1\",\"reportingMTA\":\"dsn; smtp.link.here\"},\"mail\":{\"timestamp\":\"2017-04-24T12:58:05.000Z\",\"source\":\"senderEmail@domainname.com\",\"sourceArn\":\"arn:aws:ses:us-east-1:someid:identity/some@domain.org\",\"sourceIp\":\"127.0.0.1\",\"sendingAccountId\":\"sending.account.id.is.this\",\"messageId\":\"message-id-is-this\",\"destination\":[\"bounce@simulator.amazonses.com\"]}}",
"Timestamp":"2017-04-24T12:58:05.757Z",
"SignatureVersion":"1",
"Signature":"signature.link",
"SigningCertURL":"certificate.link.here",
"UnsubscribeURL":"un.subscribe.link"
}
Run Code Online (Sandbox Code Playgroud)
问题出在“消息”属性,而不是持有对象,而是引用对象的字符串
包含
"Message":"{\"key\":\"value\"}"
Run Code Online (Sandbox Code Playgroud)
代替
"Message":{"key":"value"}"
Run Code Online (Sandbox Code Playgroud)
因此没有映射到Message类
我暂时通过接收到字符串变量来解决此问题,然后将其转换
private String Message;
private Message objMessage;
Run Code Online (Sandbox Code Playgroud)
然后
Notification noti = toObject(jsonString, Notification.class);
Message msg = toObject(noti.getMessage(), Message.class);
noti.setObjMessage(msg);
Run Code Online (Sandbox Code Playgroud)
为了进行转换,我正在使用ObjectMapper.readValue(...)
解决此问题的正确方法是什么?
我尝试了所有方法来查找原因,但不确定是什么原因,尝试使用 jProfile,但没有得到任何结果,因为 cpu 已经达到 100%。
我在 Tomcat8 上的 amazon linux 上运行 Spring 应用程序(WAR 文件)。没有数据库操作,但是它访问了一个休息 api,用于在不同环境中运行的不同操作。有3 台服务器在beanstalk 中的负载平衡器后面运行时存在相同的问题。每小时平均518K请求,平均延迟为72.2 毫秒
我觉得代码本身没有太大问题
我刚刚尝试了一个命令 kill -3 pid (java process),并在 catalina.out 文件中得到了一些结果。我可以一次又一次地看到以下错误
"http-nio-8080-exec-13" #42 daemon prio=5 os_prio=0 tid=0x00007f0898005800 nid=0xfb2 waiting on condition [0x00007f0882dec000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000f1694f58> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:85)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:31)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1066)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at …Run Code Online (Sandbox Code Playgroud) java ×3
amazon-ec2 ×1
amazon-s3 ×1
amazon-ses ×1
amazon-sns ×1
aws-cli ×1
casting ×1
json ×1
log-files ×1
objectmapper ×1
overloading ×1
tomcat8 ×1