11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
non ho ricevuto l'email. Può darsi che sia stata filtrata dal sistema di messaggistica di Aspitalia. Non so, poi chiedo a Daniele.

Comunque, non potendo verificare col tuo webservice, ne ho pubblicato uno io. Eccolo:
https://samplewcfservice20190606100625.azurewebsites.net/Ping.svc

Contiene un'operazione chiamata "echo" che si limita a ripetere quello che gli mandi come parametro.
Ho verificato che non ho nessun problema nell'invocare questo servizio da Java.

I passi operativi per consumarlo da java sono:

1. Creare una directory vuota e posizionarsi in essa da riga di comando
2. Crearsi le classi proxy con wsimport passando il percorso del wsdl
wsimport -keep https://samplewcfservice20190606100625.azurewebsites.net/Ping.svc?wsdl


3. Creare un file SampleClient.java come il seguente
import org.tempuri.Ping;
import org.tempuri.IPing;

public class SampleClient{
  
  public static void main(String[] args) {
     
    IPing sampleService = (new Ping()).getBasicHttpBindingIPing();
    System.out.println("Webservice replied: " + sampleService.echo("Ciao"));
    
    }

}


4. Compilare il file
javac SampleClient.java


5. Eseguire l'applicazione
java SampleClient


In output si vedrà appunto la stringa "Ciao Ciao", a riprova che il servizio ha risposto correttamente.

ciao,
Moreno

PS. Dì allo sviluppatore Java che questo è un pegno. Per ripagarlo dovrà provare C# almeno una volta.

Enjoy learning and just keep making
19 messaggi dal 13 maggio 2017
Ancora grazie.
Proverò a mandare a LazioCrea il suggerimento via mail.
Ho un contatto telefonico che però non è sempre attivo.
Per il pegno ... mi sa che devo pagarlo io, imparando un po' di java!!!
Grazie per il supporto, sei stato molto gentile
Ciao
Vincenzo
19 messaggi dal 13 maggio 2017
Ho mandato il suggerimento, ma mi hanno risposto che non possono fare modifiche al loro sw. Le chiamate che fanno, prevedono il passaggio del solo nome del servizio, senza estensioni.
Nella risposta, hanno detto che altri hanno avuto lo stesso problema, e che, sembra, hanno risolto con una indicazione di qualche pagina Microsoft.
Cioè, da qualche parte, nella galassia Microsoft c'è spiegato come pubblicare un servizio senza estensione, o meglio, come consumarlo senza la necessità di specificare il .svc
Ne sai qualcosa?
Grazie
V.
P.S. I nomi dei servizi li decidono loro, se questo può essere di ulteriore chiarimento.
Modificato da gottinga il 06 giugno 2019 12:39 -
11.886 messaggi dal 09 febbraio 2002
Contributi

che non possono fare modifiche al loro sw

Non è che non possono, è che non vogliono.


Nella risposta, hanno detto che altri hanno avuto lo stesso problema,

No. È la loro scelta di design ad aver causato il problema agli altri. Un URL è un URL, non c'è un motivo su questa Terra per cui debba essere discriminato in base ai caratteri presenti al suo interno.

Comunque, per risolvere la questione aggiungi una regola di URL rewriting al web.config. Questa richiede che il modulo URL Rewrite sia stato installato da Aruba sul server. Se non dovesse funzionare, chiedi alla loro assistenza.

Metti questo dentro il nodo <configuration>. Ovviamente se hai già il nodo <system.webServer>, integralo.
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="EliminaEstensioneSvc" stopProcessing="true">
          <match url="^TryPingService(.*)" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="TryPingService.svc{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>


ciao,
Moreno

Enjoy learning and just keep making
19 messaggi dal 13 maggio 2017
Grazie Moreno, sei impareggiabile!
Ho posto il quesito ad Aruba e vediamo cosa rispondono.
Se ho capito bene, se ci sono più servizi, dovrebbe essere così:
...
<rules>
<rule name="EliminaEstensioneSvc" stopProcessing="true">
<match url="^TryPingService(.*)" />
<match url="^GetUpdatedWorkingRangesService(.*)" />
<match url="^AskForAvailableListService(.*)" />
...
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="TryPingService.svc{R:1}" />
<action type="Rewrite" url="GetUpdatedWorkingRangesService.svc{R:1}" />
<action type="Rewrite" url="AskForAvailableListService.svc{R:1}" />
...
</rule>
</rules>
...
Oppure ho capito male?
ciao
V.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, prego!

Devi fare tre regole separate.
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="EliminaEstensioneSvcDaTryPingService" stopProcessing="true">
          <match url="^TryPingService(.*)" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="TryPingService.svc{R:1}" />
        </rule>
        <rule name="EliminaEstensioneSvcDaGetUpdatedWorkingRangesService" stopProcessing="true">
          <match url="^GetUpdatedWorkingRangesService(.*)" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="GetUpdatedWorkingRangesService.svc{R:1}" />
        </rule>
        <rule name="EliminaEstensioneSvcDaAskForAvailableListService" stopProcessing="true">
          <match url="^AskForAvailableListService(.*)" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="AskForAvailableListService.svc{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>


Prima mi sono dimenticato di linkarti di nuovo il servizio. Ora, per effetto della regola di riscrittura, è raggiungibile anche senza estensione .svc. Eccolo:
https://samplewcfservice20190606100625.azurewebsites.net/Ping

ciao,
Moreno
Modificato da BrightSoul il 06 giugno 2019 22:02 -

Enjoy learning and just keep making
11.886 messaggi dal 09 febbraio 2002
Contributi
Oppure... grazie al potere delle regexp, ne fai una sola in grado di catturare tutti e 3 i casi.
Eccola, però non l'ho testata.
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="EliminaEstensioneSvc" stopProcessing="true">
          <match url="^(TryPingService|GetUpdatedWorkingRangesService|AskForAvailableListService)(.*)" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="{R:1}.svc{R:2}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>


ciao,
Moreno

Enjoy learning and just keep making
19 messaggi dal 13 maggio 2017
Salve,
ho rifatto la prova con LazioCrea, è stato risolto il problema dell'estensione .svc, ma la chiamata da parte del client Java, dà errore:
javax.xml.ws.soap.SOAPFaultException: The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).
Lo stesso errore ricevo sul mio computer, se chiamo il servizio con Postman, mentre se lo chiamo con Wizdler tutto va bene (naturalmente va bene anche se lo chiamo con un client .Net sviluppato sul mio computer).
Purtroppo sono alle prime armi con i web service e in più non conosco Java.
Questo è il mio web.config:
<system.web>
<compilation debug="true" targetFramework="4.7" />
<httpRuntime targetFramework="4.7"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="True"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpBinding" scheme="http" />
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
<rewrite>
<rules>
<rule name="EliminaEstensioneSvcDaTryPingService" stopProcessing="true">
<match url="^TryPingService(.*)" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="TryPingService.svc{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
Qualche suggerimento?
Grazie
Vincenzo

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.