将身份验证标头添加到客户端存根轴2



我基于xmlbeans构建了wsdl-client-stub。现在,我被卡住了,因为XMLBEANS Stubs缺少必要的类(?)

,使用XMLBEAN添加了用于使用XMLBEAN的身份验证的定制标头。

实际上,标头应该看起来像:

<SOAP-ENV:Header> 
        <ns2:verifyingToken> 
            <UserID>9</UserID>
            <Token>29438094lkjslfkjlsdkjf</Token>
        </ns2:verifyingToken>
     </SOAP-ENV:Header>

因此,我尝试在存根和服务之间进行后退:

ServiceClient sc = stub._getServiceClient();
OMFactory  omFactory     = OMAbstractFactory.getOMFactory();
        OMElement  omElement     = omFactory.createOMElement(new QName("SOAP-ENV", "Header", "ver"), null);
        OMElement  omElementVeri = omFactory.createOMElement(new QName("", "verifyingToken", ""), omElement);
        OMElement  omElementUser = omFactory.createOMElement(new QName("", "UserID", ""), omElementVeri);
                   omElementUser.setText(""+userid);
        OMElement  omElementPass   =   omFactory.createOMElement(new QName("", "Token", ""), omElementVeri);
                   omElementPass.setText(""+token);
        sc.addHeader(omElement);

eclipse正在提出错误:类型omfactory中的方法createoMelement(字符串,Omnamespace)不适用于参数(qname,null) - 构造函数qname(字符串,字符串,字符串)是未定义的

任何人都有提示,我应该解决的问题,以使其正常工作。非常感谢您的帮助,

Alex

ServiceClient client = stub._getServiceClient();
SOAP11Factory factory = new SOAP11Factory();
OMNamespace SecurityElementNamespace = factory.createOMNamespace("http://schemas.xmlsoap.org/ws/2002/12/secext", "wss");
OMElement usernameTokenEl = factory.createOMElement("UsernameToken", SecurityElementNamespace);
OMElement usernameEl = factory.createOMElement("Username", SecurityElementNamespace);
usernameEl.setText("123");
usernameTokenEl.addChild(usernameEl);
OMElement passwordEl = factory.createOMElement("Password", SecurityElementNamespace);
passwordEl.setText("123");
usernameTokenEl.addChild(passwordEl);
SOAPHeaderBlockImpl block = new SOAP11HeaderBlockImpl("Security", SecurityElementNamespace, factory);
block.addChild(usernameTokenEl);
client.addHeader(block);

最新更新