小编Fig*_*Out的帖子

Spring重写主bean与非主bean

我试图在使用@Primary在测试配置中声明的测试期间覆盖Spring bean.一个声明位于src/main/java路径中,另一个声明位于src/test/java路径中.

但是,Spring故意用非主bean替换主bean,这是我不想用于测试的bean.如果我只是注释掉生产(src/main/java)配置bean,它会根据需要在测试配置中使用主测试(src/main/test)bean.(显然,每次我想运行测试时都无法注释掉代码.)

从日志:

osbfsDefaultListableBeanFactory - 使用不同的定义覆盖bean'sqsConnectionFactory'的bean定义:replace [Root bean:class [null]; 范围=; 抽象= FALSE; lazyInit = FALSE; autowireMode = 3; dependencyCheck = 0; autowireCandidate = TRUE; 初级= TRUE; factoryBeanName = testJmsConfiguration; factoryMethodName = sqsConnectionFactory; initMethodName = NULL; destroyMethodName =(推断); 在类路径资源[com/foo/configuration/TestJmsConfiguration.class]中定义]

[root bean:class [null]; 范围=; 抽象= FALSE; lazyInit = FALSE; autowireMode = 3; dependencyCheck = 0; autowireCandidate = TRUE; primary = false ; factoryBeanName = jmsConfiguration; factoryMethodName = sqsConnectionFactory; initMethodName = NULL; destroyMethodName =(推断); 在类路径资源[com/foo/configuration/JmsConfiguration.class]中定义]

为什么spring用非主bean替换主bean?如何让Spring使用专门标记为主bean的bean?

编辑:src/main/java配置:

@Configuration
public class JmsConfiguration …
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection spring-test spring-boot

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

允许Lambda的S3策略

我对使用AWS策略生成器创建的S3存储桶具有以下策略,以允许以特定角色运行的lambda访问存储桶中的文件.但是,当我执行Lambda时,我获得403权限被拒绝:

"errorMessage": "Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: <requestId>)",
  "errorType": "com.amazonaws.services.s3.model.AmazonS3Exception",
Run Code Online (Sandbox Code Playgroud)

S3存储桶的策略:

{
"Version": "2012-10-17",
"Id": "Policy<number>",
"Statement": [
    {
        "Sid": "Stmt<number>",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::<account>:role/<roleName>"
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::<bucketName>/*"
    }
]
}
Run Code Online (Sandbox Code Playgroud)

这个政策有什么问题?Lamba正在使用策略中配置的角色运行.

amazon-s3 amazon-web-services aws-sdk aws-lambda

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

XJC 未定义的 'soapenc:Array' (Java)

我的任务是与 3rd 方网络服务集成。在他们的 WSDL 中,他们声明数组如下:

<?xml version="1.0"?>
  <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="ITransEazSvcservice" targetNamespace="http://tempuri.org/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:ns1="urn:LandairSvcIntf">
  <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:LandairSvcIntf">
...
      <complexType name="CustomItemArray">
        <complexContent>
          <restriction base="soapenc:Array">
            <sequence/>
            <attribute xmlns:n1="http://schemas.xmlsoap.org/wsdl/" ref="soapenc:arrayType" n1:arrayType="ns1:CustomItemRecord[]"/>
          </restriction>
        </complexContent>
      </complexType>
...
Run Code Online (Sandbox Code Playgroud)

当我运行 xjc 以生成与 Web 服务集成的代码时,我收到以下错误消息:

[错误] 未定义的简单或复杂类型“soapenc:Array”

[错误] 未定义的属性 'soapenc:arrayType'

为了生成与他们的服务集成的正确代码,我需要做什么?我们使用Java。

java soap wsdl web-services xjc

7
推荐指数
0
解决办法
664
查看次数

从依赖编织的 AspectJ 不适用于项目

我有一个 Java 8 Maven 项目,它定义了一个自定义注释和一个方面。在该项目本身中运行测试代码时,它会将方面应用于带注释的类。我然后打包和安装项目。

然后我将该依赖项引入到一个新项目(非 Spring)中。新项目然后没有将方面应用于它的类,尽管它确实引入了新的注释。

如何使用单个 JAR 来定义注释和方面并将其应用于我所有的 Maven 项目?

java aop aspectj maven aspect

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