gpt4 book ai didi

java - Java 客户端代码中的 Webwervice 安全 header

转载 作者:行者123 更新时间:2023-12-02 11:24:58 25 4
gpt4 key购买 nike

<soapenv:Header>
<UsernameToken xmlns="http://siebel.com/webservices">uname</UsernameToken>
<PasswordText xmlns="http://siebel.com/webservices">pass</PasswordText>
<SessionType xmlns="http://siebel.com/webservices">None</SessionType>
</soapenv:Header>

我已经使用轴运行时生成了客户端代码,但收到此异常:无法在匿名 session 池中执行没有身份验证的操作“QueryByExample”。请将身份验证类型与 Web 服务操作相关联。(SBL-EAI-04552)。

我在 stackoverflow 上查看了其他人的答案几个小时,但没有任何结果。请指导我......

服务代码:

SOAPHeaderElement wsseSecurity = new SOAPHeaderElement(new PrefixedQName("http://schemas.xmlsoap.org/ws/2002/04/secext","Security", "wsse"));
MessageElement username = new MessageElement("uname", "UsernameToken");
MessageElement password = new MessageElement("pass", "PasswordText");
username.setObjectValue("username");
password.setObjectValue("password");
wsseSecurity.addChild(username);
wsseSecurity.addChild(password);
stub.setHeader(wsseSecurity);

最佳答案

您需要添加更多内容,主要问题是您如何定义和使用密码。您走在正确的道路上,但以下是创建 SOAP Axis 1.4 客户端的方法:

InputStream inConfig = BaseTestCase.class.getClassLoader().getResourceAsStream("axis_client_config.xml");
EngineConfiguration config = new FileProvider(inConfig);
PartnerAPILocator locator = new PartnerAPILocator(config);
inConfig.close();

stub = locator.getSoap();

Stub axisPort = (Stub) stub;
axisPort._setProperty(UsernameToken.PASSWORD_TYPE, WSConstants.PASSWORD_TEXT);
axisPort._setProperty(WSHandlerConstants.USER, "ET USERNAME");
axisPort._setProperty(WSHandlerConstants.PW_CALLBACK_REF, new PasswordTokenHandler());

这是我的source并尝试按照教程进行操作,您甚至可以下载代码。希望这对您有帮助。

关于java - Java 客户端代码中的 Webwervice 安全 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17683032/

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