小编bar*_*ber的帖子

在Spring中是否有相当于CDI的@Default限定符?

在CDI中,我可以这样做:

// Qualifier annotation
@Qualifier
@inteface Specific{}

interface A {}

class DefaultImpl implements A {}

@Specific
class SpecificImpl implements A {}
Run Code Online (Sandbox Code Playgroud)

然后在课堂上:

@Inject
A default;

@Inject
@Specific
A specific;
Run Code Online (Sandbox Code Playgroud)

它的工作原理是由于@Default限定符自动分配给注入点而未指定任何限定符.

但我正在使用Spring并且无法执行该操作.

Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException
Run Code Online (Sandbox Code Playgroud)

问题是"默认"注入(没有限定符)已经在我无法更改的许多代码中使用,我需要A为我的用户提供另一种可能的实现.

我知道我可以通过bean名称注入我的新实现,但我想避免它.

Spring中有什么可以帮助我实现它吗?

java spring dependency-injection

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

JDBC4注释在哪里?

前段时间,jdk 6发布了带有" 基于注释的SQL查询 "的JDBC4 .我正在寻找测试方法,但没有在JDK 6中找到所需的类(如java.sql.BasicQuery).在Google上搜索了一点,我发现java.net上有一个线程告诉这些"用户的易用性" "由于缺乏时间,JDK中最终没有包含这些功能.这里有人告诉我更多关于这些功能的未来可用性吗?

java annotations jdbc

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

如何保持maven原型文件的可执行权限

我正在构建一个原型,我想在其中包含一个带有一些可执行二进制文件的文件夹.问题是,当我从原型创建一个新项目时,创建的可执行二进制文件没有可执行权限.

如何告诉maven保留对这些文件的执行权限?或者也许有一种方法告诉maven在生成时自动添加执行权限?

maven maven-archetype

5
推荐指数
2
解决办法
3856
查看次数

使用嵌入式tomcat 7进行EL工作(使用spring MVC)

我在github上提供了一个例子,它使用tomcat embedded来启动一个简单的spring MVC应用程序.应用程序启动显然没有问题,但在渲染的jsp中,el表达式未被处理.

这是我的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>springtomcatembedded</artifactId>
    <name>SpringMVCTomcatEmbedded</name>
    <packaging>war</packaging>
    <version>1.0.0-BUILD-SNAPSHOT</version>
    <properties>
        <java-version>1.6</java-version>
        <org.springframework-version>3.1.1.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
        <tomcat.version>7.0.50</tomcat.version>
    </properties>
    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version> …
Run Code Online (Sandbox Code Playgroud)

tomcat spring-mvc embedded-tomcat-7

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

用tomcat处理"Xerces hell"

我们有使用tomcat托管的多个java web应用程序.一些应用程序包括xercesImpl jar,其他应用程序不包括xercesImpl.jar.

为简单起见,假设我们只有两个应用程序:

  • xxx.war - >使用xerces
  • yyy.war - >不要使用xerces

两个应用程序在引导时都进行一些xml解析,并且仅使用java.*和javax.*(不直接导入org.apache.xerces).

如果xxx.war首先启动,而yyy.war在尝试解析xml时遇到错误,会发生什么:

Caused by: org.xml.sax.SAXException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
    at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:230)
    at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:191)
    at ca.icod.personne.adressePostale.RecuperateurFormat.createXMLReader(RecuperateurFormat.java:246)
    at ca.icod.personne.adressePostale.RecuperateurFormat.parse(RecuperateurFormat.java:214)
    ... 127 more
Caused by: java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1856)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1705)
    at org.xml.sax.helpers.NewInstance.newInstance(NewInstance.java:82)
    at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:228)
Run Code Online (Sandbox Code Playgroud)

当应用程序以相反的顺序启动时,启动时没有问题.我假设发生的是当xxx.war启动时,找到xercesImpl,因此读取内部的META-INF/services文件夹,因此xerces被标记为要在JVM中使用的xml实现.然后当yyy.war尝试点xml的东西时,JVM仍然认为它应该使用xerces但这次它不在类路径上:ClassNotFoundException

我们希望从我们的应用程序中逐步删除xerces,因为jdk的默认实现似乎可以完成这项工作.

但是我们几乎不能一次性删除xerces,也不能将托管xerces的webcat的tomcat服务器与托管xercesless webapps的托管服务器分开.

我是否想念一些奇怪的事情,或者有人在这里解决了类似问

java tomcat xerces

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

如何在JUnit测试中引导焊接se

我有一个maven项目进行单元测试,并希望使用CDI.我把焊接se依赖放在pom.xml中,如下所示:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
</dependency>
<dependency>
    <groupId>org.jboss.weld.se</groupId>
    <artifactId>weld-se</artifactId>
    <version>1.1.8.Final</version>
</dependency>
<dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>1.0-SP3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我在JUnit测试运行器中启动焊接:

public class WeldJUnit4Runner extends BlockJUnit4ClassRunner {
   private final Class klass;
   private final Weld weld;
   private final WeldContainer container;

   public WeldJUnit4Runner(final Class klass) throws InitializationError {
       super(klass);
       this.klass = klass;
       this.weld = new Weld();
       this.container = weld.initialize();
   }

   @Override
   protected Object createTest() throws Exception {
       final Object test = container.instance().select(klass).get();

       return test;
   }
}
Run Code Online (Sandbox Code Playgroud)

以及使用此跑步者的单元测试.测试是注入一个应用程序范围的bean.问题是焊接不能初始化,因为对唯一的注入点有"不满意的依赖",好像我的应用程序作用域bean完全不知道焊接.但是那个bean在我的测试中是在src/test/java/...中(但是在另一个java包中).

我在src/test/resources中有一个空的beans.xml.

我注意到焊接在启动时会发出警告,但我不认为这些是我的问题的原因:

604 [main] WARN org.jboss.weld.interceptor.util.InterceptionTypeRegistry - Class 'javax.ejb.PostActivate' …
Run Code Online (Sandbox Code Playgroud)

java junit cdi weld

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

如何从谷歌开发者控制台删除firebase-demo-project

我知道这个问题已在堆栈溢出中得到解答,但就我而言,我在google开发人员控制台中有一个名为"firebase-demo-project"的项目.在同一个控制台中,我无法删除项目:似乎我没有权限这样做(删除选项是灰色的).

另一方面,在同一用户的firebase控制台中,我根本没有任何项目.所以我不能从firebase中删除该项目,因为它不在那里.

任何人都可以帮忙吗?

firebase-console google-developers-console

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

Native-base不能使用react-native 0.57.1​​?

使用:

  • react-native-cli:2.0.1
  • 反应原生:0.57.1
  • 原生基地:^ 2.9.2

我做了什么:

1:expo-cli init测试

出现提示时,我选择创建一个空白项目.

2:cd测试

3:npm install --save native-base

4:npm install --save @ expo/vector-icons

然后我在App.js中导入并使用基于本地的Text组件

以下是构建应用时出现的错误:

无法从"node_modules/native-base/dist/src/basic/IconNB.js"解析"@ expo/vector-icons/FontAwesome5"

有任何建议或是否是已知问题?我做错了吗?

react-native native-base

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

分段阅读_第 403 章

我有与这里完全相同的问题:Spring Boot - KeyCloakdirected to 403禁止\n但是,该问题的答案表明角色可能没有在keycloak服务器中配置或分配,这就是我的情况。

\n\n

一个有角度的前端应用程序,使用 keycloak 服务器对用户进行身份验证。

\n\n

然后,使用 keycloak-spring-boot-2-starter 将收到的令牌传递给使用 spring-boot 开发的 Rest 服务。

\n\n

这就是问题所在:我的服务获取令牌,使用 keycloak 对其进行身份验证,没有问题,但向客户端应用程序返回 403。

\n\n

我确实调试了 keycloak 适配器,发现在请求中找到的主体 (GenericPrincipal) 中没有角色信息(和空列表)。

\n\n

在keycloak服务器上,我在领域设置中添加了角色,并将该角色分配给用户(只有一个用户)。也尝试过客户端角色(使用 use-resource-role-mappings: true )但同样的问题。

\n\n

这是我在 application.yaml 中的 keycloak 配置:

\n\n
keycloak:\n  auth-server-url: http://localhost:8084/auth\n  ssl-required: external\n  realm: soccer-system\n  resource: league-service\n  bearer-only: true\n  cors: true\n  use-resource-role-mappings: false\n  enabled: true\n  credentials:\n    secret: myClientKey\n  security-constraints:\n    0:\n      auth-roles:\n      - user\n      security-collections:\n        0:\n          patterns:\n          - /*\n
Run Code Online (Sandbox Code Playgroud)\n\n

Keycloak服务器版本是3.4.3.Final

\n\n

我已经为此苦苦挣扎了两天。希望有人能带我上路:)

\n\n

Maven 依赖项: …

java spring-boot keycloak

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

JHipster:是否有.yo-rc.json文件的参考文档?

在项目创建的某个时候,我们不会选择一些选项,之后我们会想要使用它们.我读过它是可能的,如果我们编辑.yo-rc.json文件并重新执行jhipster,如此处所述.

这就是为什么我问这个问题:有没有我可以联系的参考文献,所以我能感觉到我知道我在做什么?

现在我用来创建另一个项目,其中包含我想要添加的选项以及生成的文件中的选择.

jhipster

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