gpt4 book ai didi

cxf - 为 ws-security 获取 CXF 客户端的端点

转载 作者:行者123 更新时间:2023-12-01 04:06:45 25 4
gpt4 key购买 nike

我正在编写一个 CXF 客户端。现在我必须集成安全性。
我正在从 wsdl2java 生成这些类:MyService , MyServiceProxy , MyServiceHttpBindingStub , MyServiceHttpServiceMyServiceHttpServiceLocator .

到目前为止,我一直在使用 MyServiceProxy用于向服务发出请求的类。按照手册,我必须以某种方式获得 Endpoint所以我可以这样做:

endpoint.getOutInterceptors().add(wssOut);

在手册中,它使用 ClientProxy 进行了解释。像这样的助手类:
Client client = ClientProxy.getClient(port);
Endpoint endpoint = client.getEndpoint();

但是如何正确创建 port从我的课?当我做:
MyService port = (new MyServiceHttpServiceLocator()).getMyServiceHttpPort();

并将该端口放入 ClientProxy 方法,我收到一个运行时错误:
 java.lang.IllegalArgumentException: not a proxy instance

那么,如何获取端口以便能够将其传递给 ClientProxy.getClient() ?

最佳答案

您是否尝试过创建服务实例,然后从该实例中检索端口?在下面的 Apache CXF 链接中,有一个关于如何以另一种方式获取端口的示例,在标记为“日志消息 - 用于编程客户端日志记录”的部分中。请注意,根据您使用的 CXF 版本,步骤可能会有所不同。如果可能的话,另一个建议是使用配置文件。请参阅示例目录中的安全示例。
Debugging and Logging

 MyService ws = new MyService();
MyPortType port = ws.getPort();

Client client = ClientProxy.getClient(port);

关于cxf - 为 ws-security 获取 CXF 客户端的端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8834217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com