【发布时间】:2018-09-14 07:18:01
【问题描述】:
我需要从此标头中删除soapAction:
Headers: {Accept=[*/*], SOAPAction ["http://www.ya.ru/mybank/method/getDollars"]}
我的配置如下:
@PostConstruct
public void initialization(){
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(MyClass.class);
factory.setAddress(myWsdlUrl);
service = (MyClass) factory.create();
Client client = ClientProxy.getClient(service);
}
@Bean
public SAAJMetaFactory messageFactory(){
return new SAAJMetaFactoryImpl();
}
在服务等级中我提出这样的要求:
@Service
public class MyIntegrationImpl implements MyIntegration {
private MyClass service;
public MyIntegrationImpl(MyClass service) {
this.service = service;
}
@Override
public Info getVpc(ReqClass req, String clientPhone) {
return service.getInfo(req, clientPhone);
}
}
我找到了这段代码,但我不知道如何应用它:
public class RemoveActionHandler implements SOAPHandler<SOAPMessageContext> {
@Override
public Set<QName> getHeaders() {
System.out.println("Server : getHeaders()");
return null;
}
@Override
public boolean handleMessage(SOAPMessageContext context) {
if ("".equals(context.get(BindingProvider.SOAPACTION_URI_PROPERTY)))
context.put(BindingProvider.SOAPACTION_URI_PROPERTY, null);
return true;
}
@Override
public boolean handleFault(SOAPMessageContext context) {
System.out.println("Server : handleFault()");
return true;
}
@Override
public void close(MessageContext context) {
System.out.println("Server : close()");
}
}
此代码可以删除所需的标头
【问题讨论】: