Newsgroup: it.comp.java
Titolo: WebServices

Buongiorno a tutti.
Ho sviluppato un piccolo e semplice websevrices (Tomcat/Axis) che però 
sembra non funzionare.
La classe in oggetto si chiama SalutoWS (deployata) ed ha un solo metodo 
(saluto) che prende in input una stringa e restituisce un ArrayList.
La classe client (ClientSalutoWS) una volta lanciata manda in crash Tomcat.
La posto per fare più chiarezza:
import java.net.*;
import java.rmi.*;
import javax.xml.namespace.*;
import javax.xml.rpc.*;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import java.util.ArrayList;
public class ClientSalutoWS {
  public static ArrayList mp1 = new ArrayList();
  public static void main(String[] args) {
    String messaggio = "";
    try {
      Call call = (Call) new Service().createCall();
      call.setTargetEndpointAddress(new
                                    URL("
http://localhost:8080/axis/services/
"));
      call.setOperationName(new QName("urn:SalutoWS", "saluto"));
      Object rispostaWS = call.invoke(new Object[]{"sum"});
      mp1 = (ArrayList)rispostaWS;
      for (int riga = 0; riga < mp1.size(); riga++) {
        System.out.println((String) mp1.get(riga));
      }
    }
    catch (MalformedURLException ex) {
      messaggio = "errore: l'url non è esatta";
    }catch (ServiceException ex) {
      messaggio = "errore: la creazione della chiamata è fallita";
    }catch (RemoteException ex) {
      messaggio = "errore: l'invocazione del WS è fallita";
    }catch (Exception ex) {
      System.out.println(ex.getStackTrace());
    }finally{
      messaggio = "Fine WS";
      System.out.println(messaggio);
    }
  }
}
Posto anche il wsdl della classe SalutoWS:
<wsdl:definitions 
targetNamespace="
http://localhost:8080/axis/services/urn:SalutoWS
">
?
 <!--
WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT)
-->
?
 <wsdl:types>
?
 <schema targetNamespace="
http://localhost:8080/axis/services/urn:SalutoWS
">
<import namespace="
http://schemas.xmlsoap.org/soap/encoding/
"/>
?
 <complexType name="ArrayOf_xsd_anyType">
?
 <complexContent>
?
 <restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</wsdl:types>
?
 <wsdl:message name="salutoRequest">
<wsdl:part name="nome" type="xsd:string"/>
</wsdl:message>
?
 <wsdl:message name="salutoResponse">
<wsdl:part name="salutoReturn" type="impl:ArrayOf_xsd_anyType"/>
</wsdl:message>
?
 <wsdl:portType name="SalutoWS">
?
 <wsdl:operation name="saluto" parameterOrder="nome">
<wsdl:input message="impl:salutoRequest" name="salutoRequest"/>
<wsdl:output message="impl:salutoResponse" name="salutoResponse"/>
</wsdl:operation>
</wsdl:portType>
?
 <wsdl:binding name="urn:SalutoWSSoapBinding" type="impl:SalutoWS">
<wsdlsoap:binding style="rpc" 
transport="
http://schemas.xmlsoap.org/soap/http
"/>
?
 <wsdl:operation name="saluto">
<wsdlsoap:operation soapAction=""/>
?
 <wsdl:input name="salutoRequest">
<wsdlsoap:body encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/
" 
namespace="
http://provawebse
" use="encoded"/>
</wsdl:input>
?
 <wsdl:output name="salutoResponse">
<wsdlsoap:body encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/
" 
namespace="
http://localhost:8080/axis/services/urn:SalutoWS
" use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
?
 <wsdl:service name="SalutoWSService">
?
 <wsdl:port binding="impl:urn:SalutoWSSoapBinding" name="urn:SalutoWS">
<wsdlsoap:address 
location="
http://localhost:8080/axis/services/urn:SalutoWS
"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Spero possiate darmi una mano, grazie a tutti
Ciao
Paolo

      messaggio = "errore: l'invocazione del WS č fallita";
