Applicazioni di servizi Web (confronto tra C# e Java)

Aggiornamento: novembre 2007

In .NET Framework viene fornito un supporto esteso per l'interoperabilità tramite i servizi Web. In C#, utilizzando .NET Framework, Visual Studio e ASP.NET, è possibile creare un servizio Web con la stessa facilità con cui si crea un progetto di servizio Web e si aggiunge un attributo WebMethod a qualsiasi metodo pubblico da esporre.

Java

In Java è possibile utilizzare il package di un servizio Web per implementare un'applicazione quale Java Web Services Developer Pack o Apache SOAP. Ad esempio, in Java è possibile creare un servizio Web e Apache SOAP effettuando le operazioni riportate di seguito.

Per creare un servizio Web in Java utilizzando Apache SOAP

  1. Scrivere un metodo di servizio Web, come illustrato di seguito:

    public class HelloWorld 
    {
    
        public String sayHelloWorld()
        {
            return "HelloWorld ";
        }
    }
    
  2. Creare il descrittore di distribuzione di Apache SOAP. Potrebbe essere analogo al descrittore seguente:

    <dd:service xmlns:dd="http://xml.apache.org/xml-soap/deployment"
               id="urn:HelloWorld">
    
       <dd:provider type="java"
                   scope="Application"
                   methods="sayHelloWorld">
    
        <dd:java class="HelloWorld" static="false" />
    
      </dd:provider>
    
    <dd:faultListener>org.apache.soap.server.DOMFaultListener</dd:faultListener>
    
      <dd:mappings />
    
    </dd:service>
    
  3. Compilare la classe HelloWorld e spostarla nel classpath del server Web.

  4. Distribuire il servizio Web utilizzando lo strumento della riga di comando.

C#

La creazione di un servizio Web risulta più semplice in C# se si utilizzano le classi di .NET Framework e l'IDE di Visual Studio.

Per creare un servizio Web in C# utilizzando .NET Framework e Visual Studio

  1. Creare un'applicazione servizio Web in Visual Studio. Per ulteriori informazioni, vedere Tipi di applicazioni C# per sviluppatori Java. Viene generato il codice di errore seguente.

    using System;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    public class Service : System.Web.Services.WebService
    {
        public Service () {
    
        }
    
        [WebMethod]
        public string HelloWorld() {
            return "Hello World";
        }
    
    }
    
  2. Individuare la riga [WebService(Namespace = "http://tempuri.org/")] e modificare "http://tempuri.org/" in "http://tempuri.org/".

Per eseguire il servizio Web C#

  1. Compilare ed eseguire il servizio. Digitare http://hostlocale/WebSite1/Service.asmx nel browser Web, dove hostlocale è il nome del server Web IIS e Service è il nome del servizio, in questo caso Service.

  2. L'output è il seguente:

    The following operations are supported. For a formal definition, please review the Service Description.
    HelloWorld
    
  3. Fare clic sul collegamento HelloWorld per chiamare il metodo HelloWorld di Service1. L'output è il seguente:

    Click here for a complete list of operations.
    HelloWorld
    Test
    To test the operation using the HTTP POST protocol, click the 'Invoke' button. 
    
    SOAP 1.1
    ...
    SOAP 1.2
    ...
    HTTP POST
    ...
    
  4. Scegliere il pulsante Richiama per chiamare il metodo HelloWorld di Service1. L'output è il seguente:

    <?xml version="1.0" encoding="utf-8" ?> 
      <string xmlns="http://HowToDevelopWebServicesTest/">Hello World</string>
    

Per ulteriori informazioni sui servizi Web vedere:

Vedere anche

Concetti

Guida per programmatori C#

Altre risorse

C# per sviluppatori Java