java.lang.NoClassDefFoundError: Не удалось инициализировать класс com.sun.xml.ws.security.opt.impl.incoming.SecurityRecipient
Я работаю над реализацией WS-Security с Metro и glassfish. Но получение java.lang.NoClassDefFoundError: Не удалось инициализировать исключение класса com.sun.xml.ws.security.opt.impl.incoming.SecurityRecipient. Пожалуйста помоги!!
EchoService.java: -
package com.username.token;
import javax.jws.WebService;
@WebService
public class EchoService {
public String makeEcho(String text) {
return"Hello"+" " + text;
}
}
EchoPasswordValidator.java
package com.username.token;
import com.sun.xml.wss.impl.callback.PasswordValidationCallback;
public class EchoPasswordValidator implements PasswordValidationCallback.PasswordValidator {
public boolean validate(Request request) throws PasswordValidationException {
PasswordValidationCallback.PlainTextPasswordRequest plainTextRequest = (PasswordValidationCallback.PlainTextPasswordRequest) request;
if ("shahana".equals(plainTextRequest.getUsername()) && "shahana91".equals(plainTextRequest.getPassword())) {
return true;
} else {
throw new PasswordValidationCallback.PasswordValidationException(
"Invalid credentials provided. Authentication failed");
}
}
}
WSIT-com.username.token.EchoService.xml
<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI (http://jax-ws.java.net).
RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832
JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521
svn-revision#unknown. --><!-- Generated by JAX-WS RI (http://jax-ws.java.net).
RI's version is Metro/2.3.2-b608 (trunk-7979; 2015-01-21T12:50:19+0000) JAXWS-RI/2.2.11-b150120.1832
JAXWS-API/2.2.12 JAXB-RI/2.2.12-b141219.1637 JAXB-API/2.2.13-b141020.1521
svn-revision#unknown. -->
<wsp:PolicyReference
URI="#EchoServicePortBinding_MTOM_Policy-EchoServicePortBinding_MTOM_Policy" />
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<operation name="makeEcho">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="EchoServiceService">
<port name="EchoServicePort" binding="tns:EchoServicePortBinding">
<soap:address location="http://sadikpc:8080/usernametoken/soapapi" />
</port>
</service>
<!-- Policy for Username Token with plaintext password, sent from client
to server only -->
<wsp:Policy wsu:Id="MyWebServicePortBindingPolicy">
<wsp:ExactlyOne>
<wsp:All>
<wsaws:UsingAddressing xmlns:wsaws="http://www.w3.org/2006/05/addressing/wsdl" />
<sp:SupportingTokens>
<wsp:Policy>
<sp:UsernameToken
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssUsernameToken10 />
</wsp:Policy>
</sp:UsernameToken>
</wsp:Policy>
</sp:SupportingTokens>
<wsss:ValidatorConfiguration
wspp:visibility="private" xmlns:wsss="http://schemas.sun.com/2006/03/wss/server"
xmlns:wspp="http://java.sun.com/xml/ns/wsit/policy">
<wsss:Validator name="usernameValidator"
classname="com.username.token.EchoPasswordValidator" />
</wsss:ValidatorConfiguration>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>