小编jus*_*tus的帖子

iText版本4.2.1在maven中央存储库中重定向

我们在其中一个项目中使用iText生成PDF报告,正好是版本4.2.1,因为它是最后一个免费版本.

<dependency>
   <groupId>com.lowagie</groupId>
   <artifactId>itext</artifactId>
   <version>4.2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

当我今天早上在新机器上克隆存储库时,我遇到了很多编译器错误,因为maven重定向到版本5.5.6并且导入失败.在我们的研究中,我们发现,maven central的pom文件在上周发生了变化.从现在开始,似乎不可能像以前那样添加jar依赖项.

任何人都可以告诉我,如果还有办法通过maven在4.2.1版本中集成iText?

java itext maven

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

如何检测使用QoS 2发送的mqtt消息传递失败?

我正在尝试实现一个JAVA应用程序,目的是发布到特定的MQTT主题.该消息应与QoS 2一起提供(仅提供一次).

但我似乎忘记了我的实现中的任何内容(下面的JUnit实现的代码),所以尽管没有客户端订阅我的主题,但似乎总是传递消息.有谁知道我的错是什么?

我在Ubuntu 12.04上使用mosquitto MQTT代理,在JAVA端使用Eclipse Paho.

MqttAsyncClient client = new MqttAsyncClient("tcp://localhost:1883", MqttClient.generateClientId(), new MemoryPersistence());

    try {
        client.connect().waitForCompletion();
    } 
    catch (MqttException e) {
        throw new RuntimeException("Failed to connect message-broker. Maybe it has to be started via typing \"sudo mosquitto\" in a new terminal window.");
    }

    client.setCallback(new MqttCallback() {
        @Override
        public void messageArrived(String topic, MqttMessage message) throws Exception {
            // No part of that test
        }

        @Override
        public void deliveryComplete(IMqttDeliveryToken token) {
            throw new RuntimeException("Message with QoS 2 marked as delivered, …
Run Code Online (Sandbox Code Playgroud)

java qos mqtt mosquitto

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

Flyway迁移在H2嵌入式数据库中不是持久的

我实际上是在编写一个带有spring boot的小型Web应用程序,并希望将(嵌入式)H2数据库与Spring Data JPA和Flyway一起用于数据库迁移.

这是我的application.properties:

spring.datasource.url=jdbc:h2:~/database;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1;
spring.datasource.username=admin
spring.datasource.password=admin
spring.datasource.driver-class-name=org.h2.Driver
Run Code Online (Sandbox Code Playgroud)

在我的@SpringBootApplication类的main()方法中,我执行以下操作:

ResourceBundle applicationProperties = ResourceBundle.getBundle("application");
Flyway flyway = new Flyway();
flyway.setDataSource(applicationProperties.getString("spring.datasource.url"), applicationProperties.getString("spring.datasource.username"), applicationProperties.getString("spring.datasource.password"));
flyway.migrate();
Run Code Online (Sandbox Code Playgroud)

我添加了一个脚本,它在数据库中创建了一个表USER,Flyway说它已正确迁移,但如果我连接到数据库,则在模式PUBLIC中只列出了Flyway的schema_versions表.

如果我要添加另一个将基本数据插入USER表的脚本,则迁移会失败,因为重新启动spring boot应用程序后该表不存在.

任何人都可以告诉我我的配置是否丢失了吗?或者如果我的设置中有任何错误的假设......

h2 flyway spring-data-jpa

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

单元测试Spring Cloud Service的策略

给定以下Spring Cloud设置:A data-service可以访问数据库,可以访问eureka-service服务注册表和发现,第3个服务business-service是封装业务案例的各种服务之一.

单元测试data-service没问题,我只是关掉eureka via

eureka.client.enabled=false
Run Code Online (Sandbox Code Playgroud)

并使用内存数据库进行测试.

要访问data-servicefrom business-service,我正在使用一个带@FeignClient("data-service")注释的接口DataClient,这个接口是@Autowired需要的.如果两者都在运行,Eureka会发现该服务.这适用于所有服务运行的类似生产的设置.

但现在我想对我的一些功能进行单元测试business-service.用它来启动测试服务不是问题

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@IntegrationTest("server.port:0")
@SpringApplicationConfiguration(classes = Application.class)
Run Code Online (Sandbox Code Playgroud)

就像我在做的那样data-service.问题是我的Eureka依赖发现FeignClient...所以我的测试类崩溃,因为自动装配我的DataClient实例不起作用.

我能告诉Spring使用伪造的实例来DataClient进行测试吗?或者是让我的测试运行可访问的运行实例data-service和我的Eureka服务器的唯一方法?

spring unit-testing spring-cloud netflix-eureka

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