Aache-CXF WS客户端与Eclipse MOXY JAXBContextFactory不发送安全头
创始人
2024-07-21 17:00:29
0

要解决"Aache-CXF WS客户端与Eclipse MOXY JAXBContextFactory不发送安全头"的问题,您可以尝试以下解决方法。

  1. 创建一个CustomJAXBContextFactory类,继承自Eclipse MOXY的JAXBContextFactory类,并重写createJAXBContext方法。在方法中添加代码以发送安全头。
import org.eclipse.persistence.jaxb.JAXBContextFactory;

public class CustomJAXBContextFactory extends JAXBContextFactory {

    public static JAXBContext createJAXBContext(String contextPath, ClassLoader classLoader, Map properties) throws JAXBException {
        // 调用父类方法创建JAXBContext
        JAXBContext context = super.createJAXBContext(contextPath, classLoader, properties);

        // 添加发送安全头的代码
        Client client = ClientProxy.getClient(context);
        HTTPConduit conduit = (HTTPConduit) client.getConduit();
        HTTPClientPolicy policy = conduit.getClient();
        policy.setAllowChunking(false); // 禁用分块传输
        // 设置其他安全相关的参数

        return context;
    }
}
  1. 在您的CXF客户端代码中,使用CustomJAXBContextFactory替代默认的JAXBContextFactory。
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;

public class MyClient {

    public static void main(String[] args) {
        // 创建JAXRSClientFactoryBean
        JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
        bean.setAddress("http://localhost:8080/api");  // 设置服务端地址
        bean.setResourceClass(MyService.class);  // 设置服务类

        // 设置CustomJAXBContextFactory
        Map properties = new HashMap<>();
        properties.put(JAXBContextFactory.CUSTOM_CONTEXT_FACTORY, new CustomJAXBContextFactory());
        bean.setProperties(properties);

        // 创建WebClient
        WebClient client = bean.createWebClient();

        // 发送请求
        Response response = client.get();
        System.out.println(response.readEntity(String.class));

        // 关闭客户端
        client.close();
    }
}

这样,您的Aache-CXF WS客户端就会使用CustomJAXBContextFactory发送安全头了。请根据您的需求添加适当的安全头参数。

相关内容

热门资讯

安装了Anaconda之后找不... 在安装Anaconda后,如果找不到Jupyter Notebook,可以尝试以下解决方法:检查环境...
安卓系统怎么连不上carlif... 安卓系统无法连接CarLife的原因及解决方法随着智能手机的普及,CarLife这一车载互联功能为驾...
iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
oppo手机安卓系统换成苹果系... OPPO手机安卓系统换成苹果系统:现实吗?如何操作?随着智能手机市场的不断发展,用户对于手机系统的需...
避免在粘贴双引号时向VS 20... 在粘贴双引号时向VS 2022添加反斜杠的问题通常是由于编辑器的自动转义功能引起的。为了避免这个问题...
安装安卓应用时出现“Play ... 在安装安卓应用时出现“Play Protect 警告弹窗”的原因是Google Play Prote...
安卓平板改windows 系统... 你有没有想过,你的安卓平板电脑是不是也能变身成Windows系统的超级英雄呢?想象在同一个设备上,你...
vivo安卓系统取消更新系统,... 亲爱的vivo手机用户们,你们是不是也遇到了这样的烦恼:手机里突然冒出一个更新提示,点开一看,哇,新...
安卓系统连接耳机模式,蓝牙、有... 亲爱的手机控们,你们有没有遇到过这种情况:手机突然变成了“耳机模式”,明明耳机没插,声音却只从耳机孔...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...