SOAP und Synonym-Wortschatz Leipzig

Häcki.

Mitglied
Hallo Leute,

ich möchte gern via Java und SOAP den Webservice der Uni-Leipzig ansprechen und mir Synonyme ausgeben lassen.
Nun komme ich an einem bestimmten Punkt nicht mehr weiter.

WSDL-Datei hier: http://wortschatz.uni-leipzig.de/axis/services/Synonyms?wsdl

Java:
package berater;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.Constants;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;

public class SoapRequest
{
	public static void main(String [] args)
	{
		try
		{
			String endpoint = "http://wortschatz.uni-leipzig.de:8100/axis/services/Synonyms";
			Service service = new Service();
			Call call = (Call) service.createCall();
			
			call.setTargetEndpointAddress(new java.net.URL(endpoint));
			call.setOperationName(new QName("http://datatypes.webservice.wortschatz.uni_leipzig.de", "execute"));
			call.setUsername("anonymous");
			call.setPassword("anonymous");
			call.addParameter("corpus", Constants.XSD_STRING, ParameterMode.IN);
			call.setReturnType(Constants.XSD_STRING);
			
			String ret = (String) call.invoke(new Object[] {"de"});
			System.out.println(ret);
		} 
		catch (Exception e)
		{
			System.err.println(e.toString());
		}
	}
}
Fehler:
org.xml.sax.SAXException: Bad types (class java.lang.String -> class de.uni_leipzig.wortschatz.webservice.datatypes.RequestParameter)

Setze ich statt "de" ein anderes Wort ein (de dürfte wohl die Bezeichnung für die Sprache sein), so bekomme ich einen "is not in use"-Fehler.

Kann mir jemand weiterhelfen, wie ich an diesen Webservice ein Wort senden kann und entsprechende Synonyme zurück bekomme?
Wäre klasse! Danke!
 
Wird wohl an Zeile 24 liegen. Nicht, dass ich sicher wäre… 🙂 Du behauptest, der ReturnType sei String. Ist aber laut WSDL kein String sondern ein ComplexType: [XML]<element name="executeResponse">
<complexType>
<sequence>
<element name="executeReturn" type="impl:ResponseParameter"/>
</sequence>
</complexType>
</element>
<complexType name="ResponseParameter">
<sequence>
<element name="executionTime" nillable="true" type="xsd:string"/>
<element name="result" nillable="true" type="impl😀ataMatrix"/>
<element name="serviceMagnitude" type="xsd:int"/>
<element name="userAmount" type="xsd:int"/>
<element name="userMaxLimit" type="xsd:int"/>
</sequence>
</complexType>[/XML]
Ebenius
 
Dann frage ich mal ganz doof:
Wie sage ich ihm denn, dass es sich um einen Complex-Type handelt?

Ein IMPL_DataMatrix kennt die Entwicklungsumgebung zumindest nicht.
 
[c]wsimport[/c] (im JDK enthalten) generiert aus dem WSDL automatisch einen JAX-WS-Client. Wenn Du nicht auf Axis angewiesen bist, probier das mal.
 

Zurück
Oben