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()); } }