小编yng*_*ger的帖子

如何使用 Feign.Builder 实现侦探追踪?

我正在尝试将 Sleuth 集成到我们的系统中。如果我使用带注释的接口@FeignClient,则一切正常。这些接口会自动检测,并且 Sleuth 标头会通过 REST 调用传播。

但是,我们有一些现有代码直接使用 Feign.Builder 和 Feign 注释接口(只是没有用 注释@FeignClient)。这段代码添加了一些自定义的请求拦截器、编码器、代理等。

例如:

// Feign REST interface
public interface MyService {

    @RequestMapping(method = RequestMethod.GET, value = "/version")
    String getVersion();
}

// Creating the builder
Feign.Builder builder = Feign.builder();
builder.requestInterceptor(new MyCustomInterceptor());
// + adding proxy, encoder, decoder, etc

// Using the builder
MyService myService = builder.target(MyService.class, "http://localhost:8080/myservice");
myService.getVersion();
Run Code Online (Sandbox Code Playgroud)

我希望这个旧代码传播 Sleuth 标头。有什么简单的方法来连接它吗?

(我想一种选择是重新设计我们的 Feign 接口以使用 @FeignClient 并重新设计所有自定义拦截器、编码器等的应用方式,但最终这可能需要大量工作并有很大风险。)

我是否需要做一个特殊的请求拦截器来手动注入这些(例如从自动装配的 Tracer)?有没有一种干净的方法(或现有的类)来做到这一点?

spring-boot spring-cloud feign spring-cloud-netflix spring-cloud-sleuth

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

飞碟 - HTML到PDF和许可(iText)

我正在编写代码将HTML转换为PDF,其中包括以下2个依赖项:

    <dependency>
        <groupId>org.xhtmlrenderer</groupId>
        <artifactId>flying-saucer-core</artifactId>
        <version>9.1.6</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.xhtmlrenderer</groupId>
        <artifactId>flying-saucer-pdf-itext5</artifactId>
        <version>9.1.6</version>
        <scope>compile</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我有它的工作.我能看到的唯一方法就是使用ITextRenderer.不幸的是,看起来这是iText 5,它需要AGPL许可证,或支付大量许可费.

基于此许可证,我似乎很清楚:https://github.com/flyingsaucerproject/flyingsaucer/blob/master/LICENSE

它是否正确?

有没有其他方法可以做到这一点,不需要iText(或许可软件)?

我已经尝试过Apache PDFBox,但它的级别太低了,我不确定它是否可行.我知道这并不容易.HTML - > PDF肯定是不可能的.

OpenPDF看起来有点弱.

有什么想法/建议?

这是我们项目(启动)的一小部分,因此许可软件不是首选.

谢谢.

java pdf-generation itext flying-saucer pdfbox

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