小编cof*_*ine的帖子

Jersey ExceptionMapper和继承

假设我有3个异常类,我想"抓住":

  • 泽西岛的WebApplicationException
  • MyException扩展了RuntimeException
  • 例外

我希望WebApplicationException仍然由Jersey自动映射,MyException将由MyMapper映射,并确保MyFallbackMapper也映射任何其他异常.

因为任何异常(我想控制)最终都会扩展Exception,是否可以保证MyMapper(而不是MyFallbackMapper)将用于MyException?

exception jersey

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

重启程序无法使用

出于某种原因,我的C#程序需要使用提升的权限重新启动.我使用以下代码来实现它:

private static void RestartForPermissionsFix()
{
    ProcessStartInfo processInfo = new ProcessStartInfo();
    processInfo.Verb = "runas";
    processInfo.FileName = Assembly.GetExecutingAssembly().Location;

    Process.Start(processInfo);
}
Run Code Online (Sandbox Code Playgroud)

这非常有效.

之后,我"解决我的特权",我要重新启动程序unelevated.没有"runas",我尝试了与上面相同,但它不起作用.我假设从提升的进程启动的进程自动升高.任何的想法?

c# uac elevation elevated-privileges

7
推荐指数
1
解决办法
1459
查看次数

Jetty Embedded,Jersey 2,Weld

我正在使用Jetty 9.1和Jersey 2.5.1.Jersey内置了对Jetty的支持,所以我就像这样启动我的服务器:

public static void main(String[] args) {

    URI baseUri = UriBuilder.fromUri("http://localhost/").port(8080).build();
    ResourceConfig config = ResourceConfig.forApplicationClass(MyApplication.class);

    Server server = JettyHttpContainerFactory.createServer(baseUri, config);
}
Run Code Online (Sandbox Code Playgroud)

MyApplication只是调用this.packages(...)查找我的REST api类.

但是,REST api类包含一个带@Inject注释的字段,应由WELD注入.显然WELD没有启动(CDI支持未启用),而且更奇怪,看起来HK2(泽西2使用)正在尝试执行注入.

(我有一个org.glassfish.hk2.api.UnsatisfiedDependencyException什么时候点击REST端点).

如何正确设置WELD(最好以编程方式)?

java jetty weld jersey-2.0

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

允许 AWS 用户创建自己的第一个访问密钥

我希望属于特定组的 AWS IAM 用户能够管理自己的凭证,包括创建他们的第一个访问密钥。要求他们不得获得其他权限,例如列出帐户的用户。

控制台访问似乎不是一个选项,因为它需要我不想授予的权限(例如 ListUsers)。

因此,我尝试了 AWS CLI 选项并按照 AWS 文档中的建议添加了以下策略。

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "iam:*LoginProfile",
      "iam:*AccessKey*",
      "iam:*SSHPublicKey*"
    ],
    "Resource": "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
  }
}
Run Code Online (Sandbox Code Playgroud)

这很有效,只是 AWS CLI 似乎需要访问密钥才能登录(我的用户还没有,我希望他们自己创建访问密钥)。

作为解决方法,我为他们创建访问密钥,然后要求他们更改它,但这非常麻烦。

有没有办法使用用户名和密码登录AWS CLI?还有其他方法可以实现我的用例吗?

amazon-web-services amazon-iam

4
推荐指数
1
解决办法
3847
查看次数

请求过滤器在Embedded Jetty上的Jersey 2中不起作用

我无法触发我的请求过滤器.我将jetty 9.1作为嵌入式服务器运行.

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.ext.Provider;

@Provider
public class MyFilter implements ContainerRequestFilter {

    @Override
    public void filter(ContainerRequestContext arg0) throws IOException {
        System.out.println("HEY HO");
    }
}
Run Code Online (Sandbox Code Playgroud)

我在ResourceConfig中注册了这个类,也尝试注册该包.它被忽略了.这是一个错误,还是我错过了什么?

这就是我开始Jetty的方式:

Weld weld = new Weld();
WeldContainer container = weld.initialize();

URI baseUri = UriBuilder.fromUri("http://localhost/").port(8080).build();
ResourceConfig config = ResourceConfig.forApplicationClass(MyApplication.class);

Server server = JettyHttpContainerFactory.createServer(baseUri, config);
Run Code Online (Sandbox Code Playgroud)

(所有MyApplication扩展ResourceConfig和电话this.package(...),并this.register(MyFilter.class)在构造函数中.

java jetty jersey-2.0

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

RabbitListener 多队列行为

使用以下构造(Spring 的最新版本)时的行为是什么?我无法在文档中找到它。

@RabbitListener(queues = {"q1", "q2", "q3"})
public class MyListener {
Run Code Online (Sandbox Code Playgroud)

3 个队列中的消息按什么顺序处理?

java spring rabbitmq spring-rabbit spring-amqp

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

replaceAll和行首(java)

我想使用String的replaceAll函数来删除任何不在给定集合中的char.我试过了

x = x.replaceAll("^[A-Za-z]", "");
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,因为当放置在表达式的开头时,^字符具有另一种含义(匹配行的开头).

我怎样才能得到我想要的行为?我在正确的语法上找不到任何帮助.

谢谢

java regex replaceall

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