Abraxas
This is version . It is not the current version, and thus it cannot be edited.
Back to current version   Restore this version

Intersult Abraxas ist ein Werkzeug zur Kommunikation mit SOAP und anderen Protokollen. Abraxas besteht im wesentlichen aus folgenden Bestandteilen:

Was macht Abraxas?#

ist das Produkt der Intersult für den Umgang mit Remote-Verbindungen und -Services im Bereich XML und Java. Abraxas ist ein jahrelang entwickeltes und erprobtes Produkt, auf das mehrere renommierte Unternehmen setzen, weil es eines der führenden XML- und SOAP-Werkzeuge darstellt.

Das XML-Paket kann unter Maven 2 direkt aus dem Intersult Maven Repository bezogen werden. Für Rechte und Einsatz in kommerziellen Anwendungen nehmen Sie bitte Kontakt zu uns auf.

Maven2/3#

The XML Tools are accessible using the following ids:

group-idcom.intersult
artifact-idabraxas
version1.3-SNAPSHOT

The Maven Plugin is accessible under:

group-idcom.intersult
artifact-idabraxas-maven
version1.3-SNAPSHOT

The Remote-Service:

group-idcom.intersult
artifact-idabraxas-service
version1.3-SNAPSHOT

Simply add the plugin repository to your pom.xml to allow Maven download the plugin:

<project>
    ...
    <pluginRepositories>
        ...
	<pluginRepository>
            <id>intersult-repository</id>
	    <name>Intersult Repository</name>
	    <url>https://intersult.com/svn/public/maven</url>
	</pluginRepository>
	...
    </pluginRepositories>
    ...
</project>

Marshalling und Unmarshalling#

Der XmlMarshaller ist ein sehr flexibles Werkzeug, das über die Klasse com.intersult.xml.Xml angesprochen wird. Diese Klasse stellt statische Methoden für das Umwandeln von Java-Objekten in XML (marshal) und von XML in Java-Objekte (unmarshal) zur Verfügung. Die Klasse ist dafür ausgelegt, sehr einfach genutzt zu werden.

Anwendung#

Es braucht sich um keine speziellen Objekte handeln, sogenannte Pojos (Plain Old Java Objects) sind ausreichend, also keine besondere Superklasse oder Interface notwendig.

Das Marshalling und Unmarshalling stellt ein Default-Verhalten zur Verfügung, das einen sehr weiten Bereich von denkbaren Java-Objekten abdeckt. Darüber hinaus besteht die Möglichkeit durch einige Annotations das Marshalling zu steuern.

Datentypen#

Neben primitiven Datentypen und verschachtelten Typen serialisiert der Marshaller auch Arrays, Lists und Maps.

Folgendes Code-Beispiel zeigt einen Unmarshal-Marshal-Roundtrip:

    Foo objectInput = new Foo();
    objectInput.setValue("Test-Wert");
    String xml = Xml.marshall(objectInput);
    System.out.println(xml);
    Foo objectOutput = (Foo)Xml.unmarshall(xml);
    System.out.println(objectOutput.getValue());

Mit Foo.java:

public class Foo {
	private String value;

	public String getValue() {
		return value;
	}
	public void setValue(String value) {
		this.value = value;
	}
}

Ein weiteres Beispiel für Unmarshalling:

    String input = "Test";
    String xml = "<java.lang.String>" + input + "</java.lang.String>";
    String output = (String)MarshalUtils.unmarshall(xml);

Web Service (SOAP)#

Der Client-Generator für SOAP-Service verwendet intern den Intersult Xsd-Generator, der auch eigenständig nutzbar ist. Damit ist es möglich, Remote-Aufrufe über Intra- und Internet abzuwickeln. Eine große Zahl von Services, die auf unterschiedlichsten Technologien (auch nicht-Java) basieren, verwenden SOAP. Damit steht eine sehr große Menge an Services und Providern zur Verfügung.

Um einen Web-Service auf SOAP-Basis anzusprechen, braucht man zunächst Java-Klassen, die die entsprechenden Daten übertragen. Diese werden aus der sogenannten WSDL (Web Service Description Language) generiert, die der SOAP-Service zur Verfügung stellt. Darin ist beschrieben, welche Methoden der Service anbietet und welche Objekte für die Kommunikation verwendet werden.

Die Generierung von Web Services aus WSDL-Dateien baut zum Teil auf der Generierung von XML-Schemata aus XSD-Dateien auf. Durch folgende Konfiguration kann ein Web Service Client generiert werden:

<project>
    ...
    <build>
        ...
        <plugins>
            ...
        	<plugin>
	            <groupId>com.intersult</groupId>
		    <artifactId>com.intersult.maven</artifactId>
		    <version>1.3-SNAPSHOT</version>
		    <executions>
			<execution>
		            <goals>
				<goal>generate-ws</goal>
			    </goals>
			    <configuration>
				<services>
			    	    <service>
				        <outputPath>${project.build.directory}/generated/weather</outputPath>
				        <wsdl>http://www.webservicex.net/globalweather.asmx?WSDL</wsdl>
				        <packageName>net.webservicex.globalweather</packageName>
				    </service>
			        </services>
			    </configuration>
			</execution>
		    </executions>
	        </plugin>
	    ...
	</plugin>
	...
    </build>
    ...
</project>

Der Global Weather Service generiert einen Service, der durch folgenden Code ansprechbar ist:

    GlobalWeatherSoap soap = new GlobalWeatherSoap();
    GetWeatherResponse weather = soap.getWeather("nuernberg", "germany");
    System.out.println(weather.getGetWeatherResult());