Java Org.Apache.Axis设置HTTPHeader
目前我面临的问题是,我需要向Java Org.Apache.Axis设置HTTPHeader,java,soap,axis,Java,Soap,Axis,目前我面临的问题是,我需要向org.apache.axis.client.Call添加一个自定义HTTP头。但是我所能找到的关于如何做到这一点的东西就是添加SOAP头,但这不是我想要的 添加一个简单的SOAPHeader会很容易: SOAPHeaderElement header = new SOAPHeaderElement(new javax.xml.namespace.QName("SessionID"), sessionId); _call.addHeader(heade
org.apache.axis.client.Call
添加一个自定义HTTP头。但是我所能找到的关于如何做到这一点的东西就是添加SOAP头,但这不是我想要的
添加一个简单的SOAPHeader
会很容易:
SOAPHeaderElement header = new SOAPHeaderElement(new javax.xml.namespace.QName("SessionID"), sessionId);
_call.addHeader(header);
但是我可以为HTTPHeaders
做一些类似的事情吗
非常感谢。下面的url已经解释过了:
我使用eclipse向导生成我的客户机,所以我解决了我的问题,在我的服务定位器上扩展了该方法
@Override
public Call createCall() throws ServiceException {
_call = new org.apache.axis.client.Call(this) {
@Override
public void setRequestMessage(Message msg) {
super.setRequestMessage(msg);
MimeHeaders mimeHeaders = msg.getMimeHeaders();
mimeHeaders.addHeader("SessionID", SessionID);
}
};
return _call;
}
我只是想补充一下。这对我很有用:
((Stub) service)._setProperty(Call.SESSION_MAINTAIN_PROPERTY, new Boolean(true));
((Stub) service)._setProperty(HTTPConstants.HEADER_COOKIE, "AuthToken=abc123");
这个实现的问题是我没有SOAPMessage,所以我不能使用这个。您是否有其他只使用org.apache.axis.client.Stub的解决方案?我明白了,然后尝试查看处理程序?根据上面的链接,我找到了另一种方法。我将编辑您的答案:)谢谢它帮助我获得了在任何地方发表评论的特权:)谢谢,这是唯一对我有效的解决方案。
((Stub) service)._setProperty(Call.SESSION_MAINTAIN_PROPERTY, new Boolean(true));
((Stub) service)._setProperty(HTTPConstants.HEADER_COOKIE, "AuthToken=abc123");