小编Cri*_*bie的帖子

如何在Jersey中获取上传文件的MIME类型

我在泽西岛有一个标准的上传端点:

@POST
@Secure
@Consumes("multipart/form-data")
public Response upload( @Context final HttpHeaders hh,
            @FormDataParam("fileaaa") final FormDataContentDisposition disposition,
            @FormDataParam("fileaaa") final InputStream input,
Run Code Online (Sandbox Code Playgroud)

如何获取上传文件的MIME类型?

如果我这样做,请disposition.getType获取表单的MIME类型; 在这种情况下form-data.

我知道信息在某处; HTTP消息应该是这样的:

-----------------------------7d01ecf406a6
Content-Disposition: form-data; name="input_text"

mytext

-----------------------------7d01ecf406a6
Content-Disposition: form-data; name="fileaaa";
filename="C:\Inetpub\wwwroot\Upload\pic.gif"
Content-Type: image/gif

(binary content)
-----------------------------7d01ecf406a6--
Run Code Online (Sandbox Code Playgroud)

java upload file-upload jersey mime-types

17
推荐指数
1
解决办法
1万
查看次数

java.util.Scanner是慢吗?

在Android应用程序中,我想使用Scanner类从文本文件中读取浮动列表(它是OpenGL的顶点坐标列表).确切的代码是:

Scanner in = new Scanner(new BufferedInputStream(getAssets().open("vertexes.off")));
final float[] vertexes = new float[nrVertexes];
for(int i=0;i<nrVertexFloats;i++){
    vertexes[i] = in.nextFloat();
}
Run Code Online (Sandbox Code Playgroud)

然而,似乎这是非常慢的(读取10,000个花车需要30分钟!) - 在2.1仿真器上进行测试.这是怎么回事?当我在PC上使用它时,我不记得Scanner是那么慢(事实上,我之前从未读过100多个值).或者是其他东西,比如从资产输入流中读取?

谢谢您的帮助!

java android

16
推荐指数
2
解决办法
7257
查看次数

Akka演员成为关闭不可变状态的方法是否安全?

这里的目的是为需要调用外部服务(或一些昂贵但高度可缓存的操作)的actor实现一个非常简单的缓存,而不使用可变状态.

class A extends Actor{
  def receive = {
    case GetCommand => 
      val response = callExternalService()
      context.become(receiveWithCache(response))
      context.system.scheduler.schedule(1 day, 1 day, self, InvalidateCache)
      sender ! response
  }
  def receiveWithCache(cachedResponse:R): PartialFunction[Any,Unit] = {
    case GetCommand => sender ! cachedResponse
    case InvalidateCache => context.unbecome
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道有更多高级方法可以实现这一点,其中包括可以在Akka模式页面中找到的完全成熟的CacheSystem,但在某些情况下确实不需要.

另外,如果使用变得像这样安全,知道答案是有趣的.

scala actor akka

11
推荐指数
1
解决办法
1789
查看次数

使用RabbitMq锁定和批量获取消息

我试图以更加非常规的方式使用RabbitMq(尽管此时我可以选择任何其他消息队列实现,如果需要).消费者不是将Rabbit推送消息留给我的消费者,而是连接到队列并获取一批N个消息(在此期间消耗一些消息并且可能拒绝一些消息),然后它跳转到另一个队列,依此类推.这样做是为了冗余.如果某些消费者崩溃,则保证所有消息都被其他消费者消费.

问题是我有多个消费者,我不希望他们在同一个队列中竞争.有没有办法保证队列锁定?如果没有,我是否至少可以确保如果2个消费者连接到同一个队列,他们不会读取相同的消息?交易可能在某种程度上帮助了我,但我听说他们将从RabbitMQ中删除.

其他建筑建议也受到欢迎.

谢谢!

编辑: 正如评论中所指出的那样,我需要如何处理消息.它们只在组中有意义,并且相关消息很可能在队列中聚集在一起.例如,如果我拉了一批100条消息,那么很有可能我会对1-3,4-5,6-10等消息做一些事情.如果我找不到某些消息的组,我将他们重新提交到队列中.WorkQueue不起作用,因为它会将来自同一组的消息传播给不知道如何处理它们的多个工作人员.

message-queue amqp rabbitmq

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

如何在节点AWS SDK代码中使用AWS ECS任务角色

使用AWS Node SDK的代码似乎无法获得ECS任务的角色权限.

如果我在EC2 ECS实例上运行代码,代码似乎继承了实例上的角色,而不是任务.

如果我在Fargate上运行代码,则代码不会获得任何权限.

相比之下,在实例中运行的任何bash脚本似乎都具有适当的权限.

实际上,文档没有提到这是节点sdk的一个选项,只是:

  1. 从Amazon EC2的IAM角色加载(如果在EC2上运行),
  2. 从共享凭证文件(〜/ .aws/credentials)加载,
  3. 从环境变量加载,
  4. 从磁盘上的JSON文件加载,
  5. 在您的应用程序中硬编码

有没有办法让您的节点代码获得ECS任务的权限?

这似乎是将权限传递给代码的合理方式.它与在实例上运行的代码完美配合.

我能想到的唯一解决方法是为每个ECS服务创建一个IAM用户,并将API Key/Secret作为环境变量传递给任务定义.但是,这似乎不太安全,因为对于有权访问任务定义的任何人来说,它都可以以纯文本形式显示.

amazon-web-services amazon-ecs amazon-iam aws-sdk-js

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

Akka actor查找或依赖注入

我刚刚开始使用Akka,我无法决定是否应该使用依赖注入(如蛋糕模式)或actor查找,以便将actor与其他人分离.什么是首选方法?

actor akka

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

Spring p命名空间用于构造函数args?

Spring中的构造函数args 是否有等效的p命名空间?我想缩短那个XML :)

java spring

6
推荐指数
1
解决办法
2526
查看次数

scala隐式提取模式匹配中的值?

我们经常需要传递代码上下文信息,例如执行操作的用户.我们将此上下文用于授权检查等各种事务.在这些情况下,隐含值可以证明对减少锅炉板代码非常有用.

假设我们传递了一个简单的执行上下文: case class EC(initiatingUser:User)

我们可以有方便的守卫:

def onlyAdmins(f: => T)(implicit context:EC) = context match{
  case EC(u) if(u.roles.contain(Role.ADMIN)) => f
  case _ => throw new UnauthorizedException("Only admins can perform this action")
}

val result = onlyAdmins{
  //do something adminy 
}
Run Code Online (Sandbox Code Playgroud)

我最近发现自己需要在与Akka演员合作时这样做,但他们使用模式匹配,我还没有找到一个很好的方法来使implicits与提取器一起工作.

首先,您需要使用每个命令传递上下文,但这很简单:

case class DeleteCommand(entityId:Long)(implicit executionContext:EC)
//note that you need to overwrite unapply to extract that context
Run Code Online (Sandbox Code Playgroud)

但是接收函数看起来像这样:

class MyActor extends Actor{
  def receive = {
     case DeleteCommand(entityId, context) => {
       implicit val c = context
       sender ! onlyAdmins{
         //do something …
Run Code Online (Sandbox Code Playgroud)

scala implicit pattern-matching akka

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

sbt-rjs:从uglification中排除文件

我正在使用sbt-rjssbt-web管道在构建过程中缩小和连接我的javascripts.部分原因是使用默认的uglify2优化器来解析由rjs处理的文件.

我的任务是,如果我可以从uglification中排除文件,但仍然将它们包含在连接模块中?特别是我想跳过已经缩小的文件,以缩短构建时间.

sbt requirejs uglifyjs sbt-web

5
推荐指数
0
解决办法
466
查看次数

删除OverlayItem后,仍会触发tap事件

我有一个简单的Google地图叠加层:http://pastebin.com/Rg8miMSh,我根据缩放级别添加/删除项目.删除/添加后,我在覆盖上填充填充并在地图视图上无效.一切正常,除了1个小问题:删除项目后,如果我点击其位置onTap仍然被触发,因为OverlayItem不再存在,我在com.google.android.maps.ItemizedOverlay中得到java.lang.ArrayIndexOutOfBoundsException . maskHelper(ItemizedOverlay.java:562)(完整堆栈跟踪 - http://pastebin.com/KThn4ZLE)

谁知道为什么会这样?最初我打电话给clear并再次添加所有项目,这似乎不会导致这个问题.然而,有许多项目这成为一个性能问题.仅添加/删除差异的速度要快得多,我想保留这种方法.谢谢!

android google-maps overlay

3
推荐指数
1
解决办法
768
查看次数

如何将数据从Filter传递到Jersey中的端点

你可以在不使用ThreadLocal或HttpSession的情况下将一些数据从javax.servlet.Filter传递给Jersey端点吗?

而且因为第一个问题是"你为什么要这样做?":大多是好奇的.在实践中,我认为我可以使用它将身份验证期间生成的一些数据传递给端点.不使用ThreadLocal消除了在链中使用它的诱惑(希望没有必要解释为什么那是邪恶的)并且不使用HttpSession更像是一个怪癖:)

java servlets jersey servlet-filters

3
推荐指数
1
解决办法
3707
查看次数

Scala选项和flatMap

我正试图抓住"Scala方式"的工作,所以我想知道下面的代码是不是在这种情况下应该怎么做.

所以我有实体User和Company(用LiftWeb映射器映射).用户具有包含选项[用户]的currentUser,而公司具有当前公司,其是选项[公司].为了比较当前用户是否是当前公司的所有者,我正在做以下事情:

Company.currentCompany.map{_.owner.get == User.currentUser.map{_.id.get}.openOr(-1) }.openOr(false)
Run Code Online (Sandbox Code Playgroud)

它工作但不知何故感觉有点冗长.好吗?不是吗?有更好的想法吗?谢谢!

monads scala

1
推荐指数
2
解决办法
5448
查看次数