축 1.4 웹 서비스 클라이언트가 있습니다. 비누 메시지 헤더에 사용자 이름과 암호를 추가해야합니다. 나는 그것을했지만, 나는 또한 바람직하지 않은 속성들을 생성한다.축 1.4 비누 머리글 추가 사용자 이름 및 암호
<soapenv:Header>
<wsse:Security
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<wsse:UsernameToken
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0"
xmlns:wsse="">
<wsse:Username
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0"
xmlns:wsse="">testuser</wsse:Username>
<wsse:Password
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0"
xmlns:wsse="">testpass</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
:
<soapenv:Header>
<wsse:Security
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>testuser</wsse:Username>
<wsse:Password>testpass</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
이 생성 된 헤더 인이 내가 생성 할 SOAP 헤더가
SOAPHeaderElement sec = new SOAPHeaderElement(
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
"wsse:Security");
SOAPHeaderElement token = new SOAPHeaderElement("",
"wsse:UsernameToken");
SOAPHeaderElement username = new SOAPHeaderElement("", "wsse:Username");
SOAPHeaderElement password = new SOAPHeaderElement("", "wsse:Password");
username.addTextNode("testuser");
password.addTextNode("testpass");
token.addChildElement(username);
token.addChildElement(password);
sec.addChildElement(token);
입니다 :
이
내 코드입니다다른 네임 스페이스 및 특성은 문제가 없지만 비어 있습니다. xmlns : wsse = "" 특성으로 인해 클라이언트가 웹 서비스에서 오류를 발생시킵니다. 비누 -ui에서이 빈 특성을 throw 할 때 성공적인 응답을 얻습니다. 자바 코드에서 웹 서비스에서 구문 분석 오류가 발생합니다.
이러한 속성이없는 헤더를 생성 할 수 없습니다. 헤더 요소에 "wsse"접두어를 추가하면이 요소에 xmlns : wsse = "" 속성도 추가됩니다. wsse 프리픽스가 없으면 웹 서비스에서 오류가 발생합니다.
wsse 접두사가있는 헤더를 xmlns : wsse = "" 축없이 생성하는 방법은 무엇입니까? 네임 스페이스 URI에 대한에 빈 문자열을 전달하기보다는
시도가'= 토큰 새로운 SOAPHeaderElement에를 SOAPHeaderElement에 (NULL, "WSSE : UsernameToken이") ; – Shloim
@ Shloim - 모호한 메소드 호출 오류가 발생하지 않습니까? 그것은 두 생성자의 서명과 일치합니다. – rmlan
그래서 cast :'(String) null' – Shloim