我目前正在使用PdfBox作为pdf文件编辑器应用程序的驱动程序.我需要pdf文件(PDDocument)的PdfBox表示的内容作为字节数组.有谁知道如何做到这一点?
问题简短摘要:
我编写了一个简单的REST HTTP接口,使用Spring Boot构建,在调用时返回一个简单的文本响应GET /app,基于其实现ClientInterface,其中有2个.REST功能是使用JAX-RS实现的,由resteasy通过RestEasy-SpringBoot库.
我还编写了3个测试,其中第3个失败,因为响应来自第二个实现,ClientInterface而不是第一个实现,因为(我假设)Resteasy混合了应用程序实例,因此错误的Spring Application上下文是使用错误的bean加载.
注意:您可以在此处找到示例应用程序,其中还包括文档
请查看源代码以获得清晰的图片.它也会占用太多空间来粘贴代码.
更多细节:
有两个实现ClientInterface提供REST资源给出的响应.使用client-impl-two配置文件切换它们.如果配置文件不存在,则使用第一个实现,如果存在,则使用第二个实现.
第一个和第三个测试期望第一个实现的响应,第二个测试期望秒实现的响应,因为它正在使用client-two-impl配置文件.
当我使用IntelliJ的JUnit集成运行测试时,第三个失败:

您会注意到测试被命名为强制执行某个执行顺序,这是相关的,因为第三个测试仅在第二个测试执行后才会失败.并且它失败了,因为它得到了第二个ClientInterface实现的响应,即使第三个测试不使用client-impl-two配置文件.
到目前为止我做了/发现了什么:
./mvnw clean test也有相同的错误结果,但我无法提供可重现的示例beanFactory对资源bean进行querynig ,并调用beanFactory.getBean(ClientInterface.class)以查看哪个实现出现了,并且对于第三个测试它是不正确的jersey-instead-of-resteasy其中Jersey被用作JAX-RS实现,并且无论是使用IntelliJ还是使用Maven运行测试都是成功的DebugFilter与我检查Spring应用程序上下文的样子是由RestEasy的servlet的接管请求之前,它始终是正确的(正确执行的ClientInterface加载),无论测试如何执行 …我有以下部署了MySQL实例:
kind: Deployment
apiVersion: apps/v1beta1
metadata:
name: mysql
spec:
replicas: 1
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:8
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-root-password
key: password
Run Code Online (Sandbox Code Playgroud)
密码是root:
kind: Secret
apiVersion: v1
metadata:
name: mysql-root-password
type: Opaque
data:
password: cm9vdA==
Run Code Online (Sandbox Code Playgroud)
问题是我按照此处的指示尝试在端口转发MySQL端口后连接到实例,但出现错误:
$ kubectl port-forward mysql-824284009-rpbpk 3306
Forwarding from 127.0.0.1:3306 -> 3306
Forwarding from [::1]:3306 -> 3306
# from another terminal
$ mysql -u root -p
Enter …Run Code Online (Sandbox Code Playgroud)