我正在使用Jersey 2和Spring,我正在尝试使用Spring上下文中的参数初始化我的Jersey应用程序(即从ResourceConfig派生的类).
背景:我有一个我构建的Jersey应用程序(即单个WAR),我将它部署在不同服务器上具有不同Spring配置的服务器集群中,以启用或禁用服务器的不同部分,例如,某些服务器已经转换了/search
资源在泽西岛1.0这真的很容易:我只是把,
<context:component-scan base-package="com.mycompany.resources.search"/>
Run Code Online (Sandbox Code Playgroud)
在Spring配置中让Jersey扫描该特定包,并在其中启用JAX-RS资源提供程序.
现在在Jersey 2.0中Spring <context:component-scan ... />
不起作用,因此资源必须以编程方式在从ResourceConfig
以下派生的派生类中注册:
public class MyApplication extends ResourceConfig {
public MyApplication() {
packages("com.mycompany.resources.search");
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,但我需要有条件地扫描该包,我无法弄清楚如何将任何Spring配置放入MyApplication
类中.我认为构造函数注入可能有效:
public class MyApplication extends ResourceConfig {
@Autowired
public MyApplication(@Qualifier("my-config") MyConfiguration myConfiguration) {
if (myConfiguration.isEnabled()) {
packages("com.mycompany.resources.search");
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是HK2抱怨它找不到默认的构造函数......所以这向我表明DI在构造这个类时起作用,但是DI没有使用Spring.
同样,使用Spring bean生命周期不起作用:
public class MyApplication extends ResourceConfig implements InitializingBean {
@Autowired
private MyConfiguration myConfiguration;
public MyApplication() {
}
@Override
public void afterPropertiesSet() throws Exception {
if (myConfiguration.isEnabled()) …
Run Code Online (Sandbox Code Playgroud) 问题:如何在我的服务器产品的安装程序中安全地包含推送通知所需的SSL证书?
背景:Apple推送通知要求在拨打Apple电话的服务器上安装客户端SSL证书.
我的产品具有传统的客户端/服务器架构,即客户在其Intranet中安装服务器,然后从App Store获取iOS客户端,并将客户端连接到其服务器实例.
这里的要点是客户自己安装服务器,而不是我自己管理服务器的云架构.
我的问题是我不知道如何以安全的方式在服务器安装程序中打包推送通知证书.我无法在没有密码的情况下分发.p12文件,因为这会暴露我的私钥,而且我无法使用密码,因为密码必须包含在安装程序中的其他位置,这会破坏目的.我是否需要通过我管理的服务器(具有SSL客户端证书)来中继所有客户的消息?我是否需要手动将SSL证书安装到我的每个客户的网站上?
当然其他人肯定已经遇到过这个问题了吗?或者每个人都搬到了云端?
在尝试解析为 YAML 之前,有没有办法查看 Jinja 阶段的输出?
我试图调试一个 Salt 问题,在那里我收到了这个错误:
local:
Data failed to compile:
----------
Rendering SLS ':test.sls' failed: mapping values are not allowed in this context
Run Code Online (Sandbox Code Playgroud)
不是很有帮助:没有行号?什么是“映射值”?等等。
问题归结为这样的事情:
{%- for x in [1, 2] -%}
Test {{ x }}:
cmd.run:
- name: echo Test {{ x }}
{%- endfor -%}
Run Code Online (Sandbox Code Playgroud)
经验丰富的 Salt 人员会认识到我弄乱了空格,因此 Jinja 产生了以下输出:
Test 1:
cmd.run:
- name: echo Test 1 Test 2:
cmd.run:
- name: echo Test 2
Run Code Online (Sandbox Code Playgroud)
然而,在一组复杂的状态中发现没有关于问题发生在哪里的信息,甚至没有明确描述问题是什么,这令人沮丧。
在调试过程中,我了解到您可以使用 获取 YAML 树slsutil.renderer
,如下所示: …