小编okw*_*wap的帖子

在应用AWS IAM策略有效之前,我应该等待多长时间?

我正在以编程方式添加和删除AWS IAM用户策略,并且我从这些策略的应用程序中获得了不一致的结果.

例如,这可能成功也可能不成功(我正在使用Java 1.6.6 SDK):

  1. 从可以从特定存储桶读取的用户开始
  2. 清除用户策略(列表策略然后为每个策略调用"deleteUserPolicy")
  3. 等到用户没有用户策略(调用"listUserPolicies"直到它返回一个空集)
  4. 尝试从桶读取(这应该失败)

如果我在#3和#4之间插入断点并等待几秒钟,则用户无法从桶中读取,这正是我所期望的.如果我删除断点,用户可以从桶中读取,这是错误的.

(当我添加策略然后访问资源时,这也是不一致的)

我想知道策略更改何时对组件(S3,SQS等)产生影响,而不仅仅是在IAM系统上.有没有办法从中获得收据或确认?或者可能有一定的时间等待?

是否有关于政策申请内部的文件?

(仅供参考我从https://forums.aws.amazon.com/thread.jspa?threadID=140383&tstart=0复制了我的问题)

policy amazon-s3 amazon-web-services user-permissions amazon-iam

48
推荐指数
2
解决办法
2万
查看次数

如何使用JAXB使用Jersey 1.6生成JSON输出

@XmlRootElement
public class Todo {
    private String s = "test";

    public String getS() {
        return s;
    }

    public void setS(String s) {
        this.s = s;
    }

}
Run Code Online (Sandbox Code Playgroud)

和服务:

@Path("/test")
public class Service {

    @GET
    @Produces({MediaType.APPLICATION_JSON })
    public List<Todo> getAllGadgets() {
        return Arrays.asList(new Todo[] { new Todo() });
    }

}
Run Code Online (Sandbox Code Playgroud)

我的web.xml:

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.test</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

如果我将MediaType.APPLICATION_XML设置为生成注释,则所有这些都有效.但对于JSON,我得到以下异常:

严重:映射异常响应:500(内部服务器错误)javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:Java类java.util.Arrays $ ArrayList和Java类型java的消息体编写器找不到.util.List和MIME媒体类型application/json

我使用Jersey 1.6,根据教程,JSON格式应该可以在没有任何额外编程的情况下使用JAXB.怎么了?

java rest json jax-rs jackson

27
推荐指数
4
解决办法
4万
查看次数

使用try-with-resources时需要flush()调用

会隐含地try-with-resources打个电话flush()吗?

如果是,请在以下代码段bw.flush()中安全删除?

static void printToFile1(String text, File file) {
    try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
        bw.write(text);
        bw.flush();
    } catch (IOException ex) {
        // handle ex
    }
}
Run Code Online (Sandbox Code Playgroud)

PS.我在官方文件中没有看到任何关于它的描述:

https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html https://docs.oracle.com/javase/8/docs/api/java/lang/Au​​toCloseable.html

java try-with-resources

20
推荐指数
3
解决办法
7189
查看次数

Java HttpURLConnection InputStream.close()挂起(或工作时间太长?)

首先,一些背景.有一个工作人员扩展/解决了一堆短URL:

http://t.co/example -> http://example.com
Run Code Online (Sandbox Code Playgroud)

所以,我们只是按照重定向.而已.我们不会从连接中读取任何数据.在我们得到200之后,我们返回最终的URL并关闭InputStream.

现在,问题本身.在生产服务器上,其中一个解析程序线程挂起在InputStream.close()调用内:

"ProcessShortUrlTask" prio=10 tid=0x00007f8810119000 nid=0x402b runnable [0x00007f882b044000]
   java.lang.Thread.State: RUNNABLE
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.skip(BufferedInputStream.java:352)
        - locked <0x0000000561293aa0> (a java.io.BufferedInputStream)
        at sun.net.www.MeteredStream.skip(MeteredStream.java:134)
        - locked <0x0000000561293a70> (a sun.net.www.http.KeepAliveStream)
        at sun.net.www.http.KeepAliveStream.close(KeepAliveStream.java:76)
        at java.io.FilterInputStream.close(FilterInputStream.java:155)
        at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(HttpURLConnection.java:2735)
        at ru.twitter.times.http.URLProcessor.resolve(URLProcessor.java:131)
        at ru.twitter.times.http.URLProcessor.resolve(URLProcessor.java:55)
        at ...
Run Code Online (Sandbox Code Playgroud)

经过简单的研究,我明白skip()在将数据流发送回连接池之前会调用它来清理流(如果设置了keep-alive?).我仍然不明白如何避免这种情况.此外,我怀疑代码中是否存在一些不良设计或JDK中存在问题.

所以,问题是:

  1. 是否可以避免挂close()?例如,保证一些合理的超时.
  2. 是否可以避免从连接中读取数据?记住我只想要最终的URL.实际上,我想,我根本不想 skip()被召唤......

更新:

KeepAliveStream,第79行,close()方法:

    // Skip past the data that's left in the Inputstream because
    // some sort of error may have occurred. …
Run Code Online (Sandbox Code Playgroud)

java tcp http httpurlconnection

9
推荐指数
1
解决办法
2954
查看次数

通过em.clear()重用实体管理器或创建新的实体管理器?

在我的应用程序管理事务的情况下,我要选择:

  1. 在每次新交易之前使用一个单一EntityManager并调用clear().分享EntityManager使用a ThreadLocal.
  2. EntityManager为每个事务创建一个新的.

我对JPA没有多少经验.我的问题是哪一个在性能方面更好?

jpa entitymanager jpa-2.0

8
推荐指数
1
解决办法
3278
查看次数

UDF导致警告:CachedKafkaConsumer未在UninterruptibleThread中运行(KAFKA-1894)

在通常的structured_kafka_wordcount.py代码中,

当我将线条分成udf如下所示的单词时,

my_split = udf(lambda x: x.split(' '), ArrayType(StringType()))

words = lines.select(
    explode(
        my_split(lines.value)
    )
)
Run Code Online (Sandbox Code Playgroud)

警告将继续显示:

WARN CachedKafkaConsumer:CachedKafkaConsumer未在UninterruptibleThread中运行.当CachedKafkaConsumer的方法由于KAFKA-1894而中断时,它可能会挂起

另一方面,当我将线条分成单词时pyspark.sql.functions.split,一切都运行良好.

words = lines.select(
    explode(
        split(lines.value, ' ') 
    ) 
)
Run Code Online (Sandbox Code Playgroud)

为什么会这样,以及如何修复警告?

这是我试图在实践中执行的代码:

pattern = "(.+) message repeated (\\d) times: \\[ (.+)\\]"
prog = re.compile(pattern)


def _unfold(x):
    ret = []
    result = prog.match(x)
    if result:
        log = " ".join((result.group(1), result.group(3)))
        times = result.group(2)
        for _ in range(int(times)):
            ret.append(log)
    else:
        ret.append(x)

    return ret

_udf = udf(lambda x: …
Run Code Online (Sandbox Code Playgroud)

apache-kafka apache-spark spark-streaming apache-spark-sql pyspark

8
推荐指数
1
解决办法
1144
查看次数

为什么 @HeadMapping 在 Spring MVC 中不可用?

Spring 框架中包含以下注解。@GetMapping、@PostMapping、@PutMapping、@DeleteMapping 和 @PatchMapping,用于标准 Spring MVC 控制器方法,但 @HeadMapping 不是。这有什么意义?

java spring spring-mvc spring-boot

7
推荐指数
2
解决办法
2618
查看次数

如何在新的Spark会话中再次读取Spark Table?

我可以在创建表后立即读取它,但是如何在另一个Spark会话中再次读取它呢?

给定代码:

spark = SparkSession \
    .builder \
    .getOrCreate()

df = spark.read.parquet("examples/src/main/resources/users.parquet")
(df
 .write
 .saveAsTable("people_partitioned_bucketed"))

# retrieve rows from table as expected
spark.sql("select * from people_partitioned_bucketed").show()

spark.stop()

# open spark session again
spark = SparkSession \
    .builder \
    .getOrCreate()

# table not exist this time
spark.sql("select * from people_partitioned_bucketed").show()

```
Run Code Online (Sandbox Code Playgroud)

执行结果:

+------+----------------+--------------+
|  name|favorite_numbers|favorite_color|
+------+----------------+--------------+
|Alyssa|  [3, 9, 15, 20]|          null|
|   Ben|              []|           red|
+------+----------------+--------------+

Traceback (most recent call last):
  File "/home//workspace/spark/examples/src/main/python/sql/datasource.py", line 246, in <module>
    spark.sql("select * from …
Run Code Online (Sandbox Code Playgroud)

python apache-spark apache-spark-sql pyspark

5
推荐指数
1
解决办法
598
查看次数