Ein einfacher Apache CXF Client mit Basic Authentication lässt sich mit ein paar Zeilen Java Code umsetzen.
Via maven lassen wir uns aus einer WSDL Datei einen Client generieren:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.7.4</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<!-- hier eine valide WSDL Url angeben -->
<wsdl>https://www.denniswilmsmann.de/ws/soap/dummyservice?wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
Und die dazugehörige Implementierung mit Basic Authentication (leicht gekürzt):
import javax.xml.ws.BindingProvider;
public class Client {
public static void main(String[] args) {
MyWebServiceImpl ws = new MyWebServiceImpl();
MyWebServiceService client = ws.getMyWebServiceImplPort();
BindingProvider portBP = (BindingProvider) client;
portBP.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username");
portBP.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");
List<Result> results = client.getResult(true, 5.0, 1);
System.out.println(results.size());
}
}