小编Kas*_*too的帖子

Maven:类型无法解决.它是从所需的.class文件间接引用的

我将一些现有项目从蚂蚁改为了maven项目.到现在为止还挺好.

所有项目都有相同的groupId.这是一个名为"ServerBase"和artifactId"server-base"的项目.在这个项目中有一个抽象类"BaseService",它通过以下方式定义记录器:

import org.jboss.logging.Logger;
[...]
protected Logger log = Logger.getLogger(this.getClass());
Run Code Online (Sandbox Code Playgroud)

另一个名为"Server"和artifactId"server"的项目.在这个项目中,有一个类ConfigurationDAOImpl扩展了上面的BaseService-Class.在ConfigurationDAOImpl中,记录器日志用于创建一些输出.

在"服务器"的POM文件中,我声明了:

    <dependency>
        <groupId>com.tcom.amadeus</groupId>
        <artifactId>server-base</artifactId>
        <version>${project.version}</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

在BuildPath下,依赖关系在MavenDependencies下显示得非常好.我之前从构建路径中删除了旧的dirct/natural/ant-dependency.如果我删除它我会得到很多关于缺少类等的错误.但是虽然我确实有这种依赖,但我在eclipse中得到了followin错误(在制表符标记下):

The type org.apache.commons.logging.Log cannot be resolved. It is indirectly referenced from required .class files

Resource: ConfigurationDAPImpl.java

Path: /Server/src/main/...

Location: Line 24

Type: Java Problem
Run Code Online (Sandbox Code Playgroud)

我尝试删除依赖项并再次添加它,但没有任何运气.这两个项目都参考了JAVA 1.8.这两个项目都是使用目标清理包多次构建的.这两个项目都由Righclick更新或按F5.我正在使用Eclipse版本:Neon.1a版本(4.6.1)我正在使用apache-maven-3.3.9我正在使用m2e插件.

任何进一步的帮助将不胜感激.提前致谢.

maven-3 maven

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

当在sql-string中有注释和参数时,PreparedStatement.getParameterMetaData()抛出ArrayIndexOutOfBoundsException

我试图从java.sql.PreparedStatement对象获取ParameterMetaData.

虽然文档说它在数据库出现问题时抛出了SQLException,但我现在得到一个ArrayIndexOutOfBoundsException.

我正在使用这个JDBC驱动程序URL:oracle.jdbc.driver.OracleDriver我正在使用ojdbc6.jar和64位JDK 1.6.0.45.

我正在做以下事情:

PreparedStatement stmt = myOracleConn.prepareStatement(sql);
preparedStatements.add(stmt);
ParameterMetaData bla2 = stmt.getParameterMetaData(); //this Line throws the Exception
Run Code Online (Sandbox Code Playgroud)

我发现只有当我在sql-String中使用注释时才会发生这种情况.

所以,当我的SQL是:

1)(没有评论但参数)

"SELECT * FROM DUAL WHERE 1 = ?" --> no error occurs
Run Code Online (Sandbox Code Playgroud)

2)(评论和参数)

"/* mySampleComment */ SELECT * FROM DUAL WHERE 1 = ?" --> the indexoutofbounds exception occurs
Run Code Online (Sandbox Code Playgroud)

3)(评论但没有参数)

"/* mySampleComment */ SELECT * FROM DUAL WHERE 1 = 1" --> no error occurs
Run Code Online (Sandbox Code Playgroud)

我想知道这是不是我和我不能在我的sqls中使用评论或者我是否遗漏了某些东西......有人对此有所了解吗?

edit1:使用--comments而不是/**/导致相同的行为.edit2:它似乎根本没有,我有一个包含的大SQL

\n\t\t\t\t--great
Run Code Online (Sandbox Code Playgroud)

得到例外.当将这个包含在样本sqls仍然postet时,它将工作

如果我遗漏了一些信息,只需要求它.提前致谢.

java oracle jdbc

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

c++ 为什么std::multimap比std::priority_queue慢

我实现了一种算法,在其中使用了优先级队列。我受到这个问题的启发Transform a std::multimap into std::priority_queue

我将存储多达 1000 万个具有特定优先级值的元素。

然后我想迭代直到队列为空。每次检索元素时,它也会从队列中删除。

在此之后,我重新计算元素优先级值,因为之前的迭代它可以改变。

如果值确实增加了,我将再次将元素插入队列中。这种情况更常发生,取决于进度。(前 25% 不会发生,接下来的 50% 会发生,最后 25% 会发生多次)。

接收到下一个元素并且不重新插入后,我将对其进行处理。这对于 I 不需要此元素的优先级值,而是此元素的技术 ID。

这就是我直觉地选择 astd::multimap来实现这一点的原因,.begin()用于获取第一个元素,.insert()插入并.erase()删除它。此外,我没有直观地std::priority_queue直接选择,因为本主题的其他问题回答std::priority_queue最有可能仅用于单个值而不是映射值。

阅读上面的链接后,我使用优先级队列类似于链接中的另一个问题重新实现了它。我的运行时间似乎并没有那么不平等(在 10 个 mio 元素上大约一个小时)。现在我想知道为什么std::priority_queue更快。

std::multimap由于多次重新插入,我实际上希望更快。也许问题是multimap的重组太多了?

c++ std priority-queue multimap

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

Spring Boot @WebMvcTest 具有 @MockBean null - 使用 SpringRunner 有效

简而言之: 从 Junit4 迁移到 JUnit5 存在困难。删除后,@RunWith(SpringRunner.class)我的@MockBean注释服务为空,尽管我使用的是“@WebMvcTest”。为什么它不起作用?

long: 几天来我一直在努力解决这个问题。我正在对我的 Spring Boot 应用程序进行一些测试,使用@RunWith(SpringRunner.class)im 与@WebMvcTest.

由于那是 JUnit4,我试图迁移到 Junit5。我从 pom 中删除了 vintage 依赖项,并添加了spring-boot-starter-test. JUnit 5 只剩下依赖项了junit-jupiter

我读了一些关于这方面的帖子和示例。由于我不想加载完整的上下文,SpringBootTest 不是这样的方式(并且根本不起作用),我“认为”我发现这@WebMvcTest已经足够了,因为它已经包含@extendWith与 JUnit5 等效的注释@RunWith(SpringRunner.class)。所以:我只需要删除 springRunner 就可以了。

但是删除那一行后,我的带有 @MockBean 注释的服务从现在开始为空。我可以找到许多仅使用@WebMvcTest和 的示例@MockBean。所以我不明白,为什么我的不起作用。添加@RunWith(SpringRunner.class)使其再次工作。

这就是测试类(没有 springrunner):

package my.package;

import com.fasterxml.jackson.databind.ObjectMapper;
import my.package.controller.SkillTileCommand;
import my.package.controller.SkillTileController;
import my.package.controller.SkillTileResponse;
import my.package.service.SkillTileService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType; …
Run Code Online (Sandbox Code Playgroud)

spring-boot junit5

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

标签 统计

c++ ×1

java ×1

jdbc ×1

junit5 ×1

maven ×1

maven-3 ×1

multimap ×1

oracle ×1

priority-queue ×1

spring-boot ×1

std ×1