Servus.
Ich soll ein Anmeldesystem für Studenten mit SOAP entwickeln. Bisher lief es ganz gut, doch nun treffe ich auf zwei Probleme, denn die anwedung soll in der lage sein ein Array von Studenten zu empfangen und es dann auszugeben, sowie einzelne Studenten zu suchen. Beides klappt leider noch nicht und ich finde den Fehler nicht, irgendwie.
Hier der Quellcode, was ich bisher habe (Das Ganze wird mittels Swing und AWT programmiert)
Edit: Die Klasse ArrayOfnsStudent ist folgendermaßen definiert:
Und hier der Quellcode des dazugehörigen WSDL Files.
Ich soll ein Anmeldesystem für Studenten mit SOAP entwickeln. Bisher lief es ganz gut, doch nun treffe ich auf zwei Probleme, denn die anwedung soll in der lage sein ein Array von Studenten zu empfangen und es dann auszugeben, sowie einzelne Studenten zu suchen. Beides klappt leider noch nicht und ich finde den Fehler nicht, irgendwie.
Hier der Quellcode, was ich bisher habe (Das Ganze wird mittels Swing und AWT programmiert)
Java:
private void seekStudentActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try { // Call Web Service Operation
bhtvs2.AnmeldeServer service = new bhtvs2.AnmeldeServer();
bhtvs2.AnmeldeServerPortType port = service.getAnmeldeServer();
// TODO initialize WS operation arguments here
java.lang.String id = "";
javax.xml.ws.Holder<java.lang.String> name = new javax.xml.ws.Holder<java.lang.String>();
javax.xml.ws.Holder<java.lang.String> matrikelNummer = new javax.xml.ws.Holder<java.lang.String>();
javax.xml.ws.Holder<byte[]> image = new javax.xml.ws.Holder<byte[]>();
javax.xml.ws.Holder<Integer> group = new javax.xml.ws.Holder<Integer>();
javax.xml.ws.Holder<Integer> status = new javax.xml.ws.Holder<Integer>();
port.getStudent(id, name, matrikelNummer, image, group, status);
System.out.println("Test: " + name);
} catch (Exception ex) {
// TODO handle custom exceptions here
ex.printStackTrace();
}
}
private void showAllActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try { // Call Web Service Operation
bhtvs2.AnmeldeServer service = new bhtvs2.AnmeldeServer();
bhtvs2.AnmeldeServerPortType port = service.getAnmeldeServer();
// TODO process result here
bhtvs2.ArrayOfnsStudent result = port.listStudents();
//bhtvs2.
System.out.println("Result = " + result.getAny().size());
System.out.println("Result = " + result.getArrayType().toString());
System.out.println("Result = " + result.getClass());
System.out.println("Result = " + result);
} catch (Exception ex) {
// TODO handle custom exceptions here
ex.printStackTrace();
}
Edit: Die Klasse ArrayOfnsStudent ist folgendermaßen definiert:
Java:
public class ArrayOfnsStudent extends Array
Java class for ArrayOfns__Student complex type.
The following schema fragment specifies the expected content contained within this class.
<complexType name="ArrayOfns__Student">
<complexContent>
<restriction base="{http://schemas.xmlsoap.org/soap/encoding/}Array">
<attribute ref="{http://schemas.xmlsoap.org/soap/encoding/}arrayType"/>
</restriction>
</complexContent>
</complexType>
Und hier der Quellcode des dazugehörigen WSDL Files.
Java:
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="anmeldeServer"
targetNamespace="urn:bhtvs2"
xmlns:tns="urn:bhtvs2"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns="urn:bhtvs2"
xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"
xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<schema targetNamespace="urn:bhtvs2"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns="urn:bhtvs2"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" schemaLocation="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ArrayOfns__Student">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" WSDL:arrayType="ns:Student[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="Student">
<sequence>
<element name="name" type="string"/>
<element name="matrikelNummer" type="string"/>
<element name="image" type="xsd:base64Binary"/>
<element name="group" type="xsd:int"/>
<element name="status" type="int"/>
</sequence>
</complexType>
</schema>
</types>
<message name="getVersionRequest"/>
<message name="getVersionResponse">
<part name="result" type="xsd:string"/>
</message>
<message name="addStudentRequest">
<part name="student" type="ns:Student"/>
</message>
<message name="addStudentResponse">
<part name="result" type="xsd:int"/>
</message>
<message name="getStudent">
<part name="id" type="xsd:string"/>
</message>
<message name="Student">
<part name="name" type="xsd:string"/>
<part name="matrikelNummer" type="xsd:string"/>
<part name="image" type="xsd:base64Binary"/>
<part name="group" type="xsd:int"/>
<part name="status" type="xsd:int"/>
</message>
<message name="listStudentsRequest"/>
<message name="listStudentsResponse">
<part name="result" type="ns:ArrayOfns__Student"/>
</message>
<portType name="anmeldeServerPortType">
<operation name="getVersion">
<documentation>returns the <i>version</i> as string like 00.01.01</documentation>
<input message="tns:getVersionRequest"/>
<output message="tns:getVersionResponse"/>
</operation>
<operation name="addStudent">
<documentation>adds student to one of two groups (1,2) and returns a <i>Status</i> 1,2 or -1 if failed.</documentation>
<input message="tns:addStudentRequest"/>
<output message="tns:addStudentResponse"/>
</operation>
<operation name="getStudent">
<documentation>Service definition of function ns__getStudent</documentation>
<input message="tns:getStudent"/>
<output message="tns:Student"/>
</operation>
<operation name="listStudents">
<documentation>Service definition of function ns__listStudents</documentation>
<input message="tns:listStudentsRequest"/>
<output message="tns:listStudentsResponse"/>
</operation>
</portType>
<binding name="anmeldeServer" type="tns:anmeldeServerPortType">
<SOAP:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getVersion">
<SOAP:operation style="rpc" soapAction=""/>
<input>
<SOAP:body use="encoded" namespace="urn:bhtvs2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<SOAP:body use="encoded" namespace="urn:bhtvs2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="addStudent">
<SOAP:operation style="rpc" soapAction=""/>
<input>
<SOAP:body use="encoded" namespace="urn:bhtvs2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<SOAP:body use="encoded" namespace="urn:bhtvs2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="getStudent">
<SOAP:operation style="rpc" soapAction=""/>
<input>
<SOAP:body use="encoded" namespace="urn:bhtvs2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<SOAP:body use="encoded" namespace="urn:bhtvs2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="listStudents">
<SOAP:operation style="rpc" soapAction=""/>
<input>
<SOAP:body use="encoded" namespace="urn:bhtvs2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<SOAP:body use="encoded" namespace="urn:bhtvs2" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="anmeldeServer">
<documentation>fuer BHT VS2 Studenten </documentation>
<port name="anmeldeServer" binding="tns:anmeldeServer">
<SOAP:address location="http://www.jnks.de:80"/>
</port>
</service>
</definitions>
Zuletzt bearbeitet: