PDA

View Full Version : Errore soapUI


sprax_87
12-06-2011, 21:44
Salve a tutti!

Ho un servizio web scritto in Java, ospitato su un Axis2 / Tomcat / server Apache. Client e Server sono scritti in JAVA.

La richiesta effettuata dal client è simulata tramite soapUI.

Nel mio WSDL ho dichiarato il seguente elemento:

<xsd:element name="getIdResponseMsg">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="infoRete" nillable="false" type="tns1:InfoRete"/>
<xsd:element name="exitCode" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="InfoRete">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="location" type="xsd:string"/>
<xsd:element name="ip_address_N" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="role" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

Nello Skeleton di java ho definito che se vengono rispettate certe condizioni alla richiesta del client di un elemento di rete il server risponde inviandogli l'InfoRete richiesto, altrimenti InfoRete è vuoto.

Ora, quando simulo lo richiesta con SOAPUI ottengo il seguente errore:

infoRete cannot be null!!

nonostante il fatto abbia dichiarato:

<xsd:element name="infoRete" nillable="false" type="tns1:InfoRete"/>

Quale potrebbe essere il problema????

tomminno
13-06-2011, 10:11
Appunto: nillable="false" vuol dire che non può essere nullo. Sicuro che ritorni un oggetto vuoto e non un oggetto null?

sprax_87
13-06-2011, 13:16
Ah :doh: !!!allora avevo capito male io, facendo varie ricerche mi sarò confusa è vero deve essere nillable="true".
Grazie tanto per avermi fatto accorgere di qst errore
ciao ciao :)

sprax_87
14-06-2011, 13:20
Sapevo che la programmazione era particolare..ma fino a questo punto. Risolvo un problema e se ne presenta subito uno nuovo :muro:
Questa volta si tratta di getIdResponseMsg.

Il metodo getId (creato nello skeleton) riceve in ingresso:

1)name_EM: stringa di lunghezza max 255 i cui valori sono [a-zA-Z0-9]*;
2)Indirizzo_IP: xxx.xxx.xxx.xxx
3)name_ELM: stringa di lunghezza max 255 i cui valori sono [a-zA-Z0-9]*;

e restituisce in uscita un elenco di inforete.

Questo metodo, inoltre, deve verificare se i parametri ricevuti in ingresso rispettano la sintassi specifica.

Ora, il mio problema è il seguente: ho usato il seguente metodo per effettuare la verifica dell'indirizzo IP

public boolean checkIP(String IP){
boolean c;
Pattern p = Pattern.compile("^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])");
Matcher m = p.matcher(IP);
c = m.matches();
return c;
}

Quando simulo la richiesta con soapUI e inserisco un IP del tipo 120.25.9.85 mi compare il seguente errore:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>unknown</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>

Quale potrebbe essere l'errore?????????