小编Vik*_*nov的帖子

覆盖CXF错误处理

我正在开发一些基于Web服务的应用程序,我有一个关于Apache CXF解组的问题.在我们的项目中,我们使用CXF 2.4.1版本.

当某些SOAP请求不正确时(例如某些字段是文本而不是数字),CXF会抛出标准的SOAPFaultException,并使用以下标准字段构建SOAP响应:

<soap:Fault>
    <faultcode>soap:Client</faultcode>
    <faultstring>Unmarshalling Error: some field missing</faultstring>
</soap:Fault>
Run Code Online (Sandbox Code Playgroud)

项目要求说,如果出现任何故障,系统需要以其他格式响应,例如:

<soap:body>
    <ResponseState>
        <ErrorCode>2732</ErrorCode>
        <ErrorMessage>Unmarshalling Error: some field missing</ErrorMessage>
        <ErrorDetails> some details </ErrorDetails>
        <some other fields>
        ...
    </ResponseState>
</soap:body>
Run Code Online (Sandbox Code Playgroud)

所以问题是:如何以某种方式覆盖此错误处理并以我的格式响应,而不是默认?

提前致谢.

PS我试图查看一些ValidationEventHandler主体,但它在CXF 2.0及更高版本中以其他方式工作.

java soap cxf

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

Intellij Idea Run/Debug配置和Gradle任务中的SSH隧道

我们的Spring Boot(带Gradle)应用程序具有托管在云中的上游.因此,当我们需要从本地计算机与它们进行通信时,我们使用SSH隧道在本地测试应用程序.

因此,通常,如果我需要测试需要来自受限区域的服务器的东西,我会执行以下操作:
1.使用ssh -N myhostcmd控制台启动SSH隧道
2.使用Soring Boot Run/Debug配置从Intellij Idea运行应用程序.
3.完成后关闭隧道(在命令行窗口中按Ctrl + C).

我的问题:
- 我可以直接从IntelliJ Idea中执行这些步骤,设置一些启动隧道的Run/Debug配置,运行应用程序,并在应用程序停止后关闭它吗?
- 我可以在Gradle中设置相同的内容,为隧道创建一些任务并运行它:
./gradlew startTunnel bootRun

提前致谢.

java ssh intellij-idea gradle spring-boot

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

Java Stream 生成的值多于限制集

出于某种原因,Java Stream 会生成更多的值(调用迭代器的 hasNext() 和 next() 方法。

这是合成示例。

我有一个迭代器形式的生成器:

@RequiredArgsConstructor
static class TestIterator implements Iterator<Integer> {
    private final int bound;
    private final Random rnd = new Random();

    private int current = 0;

    @Override public boolean hasNext() {
        return current < bound;
    }

    @Override public Integer next() {
        current = rnd.nextInt(20);
        System.out.println("Generated: " + current);
        return current;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试创建一个由几个迭代器组成的扁平流

public static void main(String... args) {

    List<Iterator<Integer>> iterators = asList(
        new TestIterator(18),
        new TestIterator(18),
        new TestIterator(18));
    Stream<Integer> streams = iterators.stream()
        .map(iter …
Run Code Online (Sandbox Code Playgroud)

java iterator java-stream

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

标签 统计

java ×3

cxf ×1

gradle ×1

intellij-idea ×1

iterator ×1

java-stream ×1

soap ×1

spring-boot ×1

ssh ×1