我有一个带Tomcat和Servlets的Jave EE Web应用程序。 我用Jax-WS开发了一个Web服务。
如果我使用Basic Authentificion部署我的Java EE,它可以正常工作。 但是,如果我使用Form Authentification部署我的Java EE项目,我将成为错误消息(无法访问WSDL)
所以我不知道如何使用Form Authentification进行身份验证。
我的WebService代码是这样的:
public static void main(String[] args) throws Exception {
final String PASSWORD = "password";
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
"username",
PASSWORD.toCharArray());
}
});
URL wsdlUrl = new URL("https://.../.../sayhello?wsdl");
QName qname = new QName("http://webservice.src/", "WebServiceImplService");
Service service = Service.create(wsdlUrl, qname);
WebServiceInterface helloWorldInterface = service.getPort(WebServiceInterface.class);
System.out.println(helloWorldInterface.authentification());
}
错误讯息:
Exception in thread "main" javax.xml.ws.WebServiceException: Failed to access the WSDL at: https://.../.../sayhello?wsdl.
此错误的存在是因为验证未成功。 使用Basic Authenticntfication,它可以正常工作。
我不知道区别在哪里。