Differenze tra le versioni di "Webservices"

Da wiki.maggioli.it.
Jump to navigation Jump to search
imported>Dtilocca
(ha spostato Webservices a Webservice)
imported>Demos
 
(11 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
#REDIRECT [[Webservice]]
{{MenuGestione}}
[[File:Webservices 0000.png]]
<br>
==Introduzione==
La seguente guida illustra come attivare i Webservices da Sicr@Web senza necessità di accesso al server.
<br>
Al momento di redazione di questo manuale, per poter effettuare le configurazioni dall’applicativo è necessario aver installato la versione '''Autenticazione 3.0.11.0.0''' o superiore.
<br>
<br>
La configurazione di alias e webservices è protetta dai seguenti permessi:
<br>
<i class="fa fa-key" aria-hidden="true" style="color:#FFCC00;"></i> ''Autenticazione -> Gestione dei logon alias''
<br>
<i class="fa fa-key" aria-hidden="true" style="color:#FFCC00;"></i> ''Common -> Configurazione Web Services''
<br>
<br>
__TOC__
<br>
 
==Come si raggiunge un webservice==
Per l’invocazione del Web Service utilizzare la seguente sintassi:
http://<hostname>:<port>/client/services/<webservice>
dove:
<hostname>: è il nome del Web Server in cui viene installato il web service;
<port>: è la porta su cui è in ascolto il web service (porta di Tomcat); se la porta è quella standard HTTP, la 80, allora l’indicazione della porta può essere omessa;
<webservice>: è il Web Service vero e proprio che espone le funzionalità.
Per ottenere il WSDL del web service:
http://<hostname>:<port>/client/services/<webservice>?wsdl
 
/client/services/: è il percorso dell’applicazione web associata al web service.
 
Esempio di URL:
http://sicrawebappserver:50080/client/services/ProWSApi
<br>
<br>
 
==Configurazione di un Alias==
La configurazione degli alias è accessibile tramite la voce di menù '''Gestione -> Configurazione -> Sistema -> Autenticazione -> Configurazione Logon Alias'''.
<br>
[[File:Webservices 001.png|Configurazione Logon Alias]]
<br>
<br>
 
 
Una volta selezionata la voce ''Configurazione logon alias'' si aprirà la seguente griglia che permette di definire gli alias necessari o visualizzare quelli già attualmente presenti, come da immagine che segue:
<br>
[[File:Webservices 002.png|Configurazione Logon Alias]]
<br>
<br>
La prima colonna corrisponde al parametro '' '''Alias''' '' che viene specificato nella chiamata e va comunicato all’utilizzatore del Webservices. E’ univoco a livello di server ed è obbligatorio.
<br>
''Username'' e ''Password'' sono invece facoltativi e devono essere compilati solamente se il webservices richiede la presenza di un utente applicativo specifico. Per sapere se è richiesto l’utente è necessario fare riferimento alla produzione.
<br>
L’utente deve necessariamente essere definito prima di creare l’alias. Evitare di utilizzare utenti di sistema ''(Setup, Administrator, etc…)''. Si consiglia di definire utenti specifici per il Webservice.
<br>
<br>
La maschera permette di creare alias solo per l’ambiente a cui è stato effettuato l’accesso.
<br>
<br>
<br>
 
==Attivare un webservice==
Per attivare il web service è sufficiente aprire la maschera presente in '''Gestione -> Configurazione -> Sistema -> Webservice'''
<br>
Se la voce di menù non è attiva, significa che l’utente che si sta usando è privo del permesso di configurazione dei Webservice:
<br>
<i class="fa fa-key" aria-hidden="true" style="color:#FFCC00;"></i> ''Common -> Configurazione Web Services''
<br>
<br>
La maschera presenta un elenco di tutti i webservices attivabili; se non è possibile individuare il webservice richiesto è necessario richiedere una nuova chiave d’attivazione.
<br>
[[File:Webservices 004.png|Attivazione Webservices]]
<br>
<br>
Per attivare il Webservice desiderato ''(i webservices sono spenti di default)'', evidenziarlo e cliccare il pulsante [[File:Webservices 006.png|Attivazione Webservices|baseline]]
<br>
Un messaggio di conferma chiederà se si desidera effettuare il deploy.
<br>
Al termine del deploy, che di norma impiega qualche istante, l’icona indicherà lo stato attivo [[File:Webservices 005.png|Attivazione Webservices|baseline]]
<br>
Per visualizzare l’URL per la chiamata, è sufficiente effettuare un doppio click sul punto indicato dalla stellina [[File:Webservices 007.png|Attivazione Webservices]] nella immagine di esempio sopra riportata.
<br>
<br>
Nel caso in cui si desideri disattivare il webservices, sarà sufficiente cliccare sulla icona [[File:Webservices 005.png|Attivazione Webservices|baseline]] e dopo qualche istante questo tornerà nello status di disattivato [[File:Webservices 006.png|Attivazione Webservices|baseline]].
<br>
<br>
'''N.B.''' L’attivazione del WS da un qualsiasi ambiente di sicraweb, attiva il WS anche per le altre installazioni; di conseguenza il WS si può attivare indifferentemente loggandosi dall’ambiente di produzione o dall’ambiente di test.
<br>
<br>
 
==Verifica web service attivo==
E' possibile verificare se il web service è attivo aprendo un browser all'indirizzo ''(di esempio)'' http://sicrawebappserver:50080/client/services/
<br>
Si otterrà in questo modo una lista di tutti i webservices attualmente attivi.
<br>
<br>
 
==Risoluzione dei problemi==
Segue un elenco dei problemi più comuni e la loro eventuale risoluzione.
<br>
 
====(401)Unauthorized====
(401)Unauthorized -> abilitare l’amministrazione remota dei Webservice
Quando eseguendo il deploy o l’undeploy di un web service da un errore di autorizzazioni (ad es. (401)Unauthorized), il problema può essere legato al fatto che AXIS non è stato configurato per essere amministrato da remoto.
 
Soluzione: Aprire il file ''$JBOSS_HOME\server\default\deploy\sicraweb.ear\sicraweb.war\WEB-INF\server-config.wsdd''
Nella sezione relative all’AdminService di Axis:
<service name="AdminService" provider="java:MSG">
  <parameter name="allowedMethods" value="AdminService"/>
  <parameter name="enableRemoteAdmin" value="'''false'''"/>
  <parameter name="className" value="org.apache.axis.utils.Admin"/>
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
Modificare il parametro '''enableRemoteAdmin'''  portandolo a ''true''.
<br>
Riavviare JBoss per rendere esecutiva la modifica.
<br>
<br>
 
====(404)NotFound====
(404)NotFound -> La pagina non è stata trovata
 
I motivi possono essere:
<br>1) Axis non è installato
<br>2) La prima porta specificata nel JNLP di lancio non combacia con la porta in cui è in ascolto Tomcat:
 
Soluzione punto 2:
Verifcare nel JNLP che la porta in grassetto sia quella in cui Tomcat è in ascolto:
  <application-desc main-class="it.saga.pubblici.menu.MnuCFGMain">
    <argument>jboss:sicrawebapplocalserver:'''50080''':50002</argument>
    <argument>nomeDatabase</argument>
    <argument>nomeDatabase</argument>
  </application-desc>
 
Nel caso, correggerla
<br>
<br>
 
====namingException o null locale looking for (namingException)====
Nel logon descriptor è stato specificato un utente J2EE errato.
<br>
<br>
 
====Password Incorrect/Password Required====
Nel logon descriptor è stato specificato un utente sicraweb errato oppure la password è errata.
<br>
<br>
 
====Qual è la porta in cui è in ascolto Tomcat?====
Aprire il file ''$JBOSS_HOME \server\default\deploy\jbossweb-tomcat50.sar\server.xml''
  <Connector port="8080" address="${jboss.bind.address}"
        maxThreads="200" minSpareThreads="25" maxSpareThreads="45"
        enableLookups="false" redirectPort="8443" acceptCount="40"
        connectionTimeout="2000" disableUploadTimeout="true"/>
 
<br>
oppure si può cercare nel log di JBoss la seguente riga:
 
'''Starting Coyote HTTP'''
  10:39:30,601 INFO  [Tomcat5] Saw org.jboss.system.server.started notification, starting connectors
  10:39:30,618 INFO  [Http11Protocol] Starting Coyote HTTP/1.1 on http-0.0.0.0-8080
<br>
<br>
 
==Axis è configurato?==
Per verificare se Axis è configurato prire il file:
 
%JBOSS_HOME%\server\default\deploy\sicraweb.ear\sicraweb.war\WEB-INF\web.xml
 
Dovrebbe esserci una sezione in cui è dichiarato il servlet di AXIS: AxisServlet
  <servlet>
    <servlet-name>AxisServlet</servlet-name>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  </servlet>
 
Per verificare se il servlet che gestisce i web service è funzionante collegarsi all’indirizzo:
 
http://hostname:port/client/services
 
dove port=porta di tomcat
Ad esempio: http://sicrawebappserver:50080/client/services
<br>
 
 
 
[[Categoria:Gestione]]
[[Categoria:WebServices]]

Versione attuale delle 13:23, 4 lug 2017

Gestione Bonifiche Callback CDT Classloader Diagnostici Import/Export Indice Generale Messaggi Repository Utenti Versioni Web Services Come fare per...


Webservices 0000.png

Introduzione

La seguente guida illustra come attivare i Webservices da Sicr@Web senza necessità di accesso al server.
Al momento di redazione di questo manuale, per poter effettuare le configurazioni dall’applicativo è necessario aver installato la versione Autenticazione 3.0.11.0.0 o superiore.

La configurazione di alias e webservices è protetta dai seguenti permessi:
Autenticazione -> Gestione dei logon alias
Common -> Configurazione Web Services


Come si raggiunge un webservice

Per l’invocazione del Web Service utilizzare la seguente sintassi: http://<hostname>:<port>/client/services/<webservice> dove: <hostname>: è il nome del Web Server in cui viene installato il web service; <port>: è la porta su cui è in ascolto il web service (porta di Tomcat); se la porta è quella standard HTTP, la 80, allora l’indicazione della porta può essere omessa; <webservice>: è il Web Service vero e proprio che espone le funzionalità. Per ottenere il WSDL del web service: http://<hostname>:<port>/client/services/<webservice>?wsdl

/client/services/: è il percorso dell’applicazione web associata al web service.

Esempio di URL: http://sicrawebappserver:50080/client/services/ProWSApi

Configurazione di un Alias

La configurazione degli alias è accessibile tramite la voce di menù Gestione -> Configurazione -> Sistema -> Autenticazione -> Configurazione Logon Alias.
Configurazione Logon Alias


Una volta selezionata la voce Configurazione logon alias si aprirà la seguente griglia che permette di definire gli alias necessari o visualizzare quelli già attualmente presenti, come da immagine che segue:
Configurazione Logon Alias

La prima colonna corrisponde al parametro Alias che viene specificato nella chiamata e va comunicato all’utilizzatore del Webservices. E’ univoco a livello di server ed è obbligatorio.
Username e Password sono invece facoltativi e devono essere compilati solamente se il webservices richiede la presenza di un utente applicativo specifico. Per sapere se è richiesto l’utente è necessario fare riferimento alla produzione.
L’utente deve necessariamente essere definito prima di creare l’alias. Evitare di utilizzare utenti di sistema (Setup, Administrator, etc…). Si consiglia di definire utenti specifici per il Webservice.

La maschera permette di creare alias solo per l’ambiente a cui è stato effettuato l’accesso.


Attivare un webservice

Per attivare il web service è sufficiente aprire la maschera presente in Gestione -> Configurazione -> Sistema -> Webservice
Se la voce di menù non è attiva, significa che l’utente che si sta usando è privo del permesso di configurazione dei Webservice:
Common -> Configurazione Web Services

La maschera presenta un elenco di tutti i webservices attivabili; se non è possibile individuare il webservice richiesto è necessario richiedere una nuova chiave d’attivazione.
Attivazione Webservices

Per attivare il Webservice desiderato (i webservices sono spenti di default), evidenziarlo e cliccare il pulsante Attivazione Webservices
Un messaggio di conferma chiederà se si desidera effettuare il deploy.
Al termine del deploy, che di norma impiega qualche istante, l’icona indicherà lo stato attivo Attivazione Webservices
Per visualizzare l’URL per la chiamata, è sufficiente effettuare un doppio click sul punto indicato dalla stellina Attivazione Webservices nella immagine di esempio sopra riportata.

Nel caso in cui si desideri disattivare il webservices, sarà sufficiente cliccare sulla icona Attivazione Webservices e dopo qualche istante questo tornerà nello status di disattivato Attivazione Webservices.

N.B. L’attivazione del WS da un qualsiasi ambiente di sicraweb, attiva il WS anche per le altre installazioni; di conseguenza il WS si può attivare indifferentemente loggandosi dall’ambiente di produzione o dall’ambiente di test.

Verifica web service attivo

E' possibile verificare se il web service è attivo aprendo un browser all'indirizzo (di esempio) http://sicrawebappserver:50080/client/services/
Si otterrà in questo modo una lista di tutti i webservices attualmente attivi.

Risoluzione dei problemi

Segue un elenco dei problemi più comuni e la loro eventuale risoluzione.

(401)Unauthorized

(401)Unauthorized -> abilitare l’amministrazione remota dei Webservice Quando eseguendo il deploy o l’undeploy di un web service da un errore di autorizzazioni (ad es. (401)Unauthorized), il problema può essere legato al fatto che AXIS non è stato configurato per essere amministrato da remoto.

Soluzione: Aprire il file $JBOSS_HOME\server\default\deploy\sicraweb.ear\sicraweb.war\WEB-INF\server-config.wsdd Nella sezione relative all’AdminService di Axis:

<service name="AdminService" provider="java:MSG">
 <parameter name="allowedMethods" value="AdminService"/>
 <parameter name="enableRemoteAdmin" value="false"/>
 <parameter name="className" value="org.apache.axis.utils.Admin"/>
 <namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>

Modificare il parametro enableRemoteAdmin portandolo a true.
Riavviare JBoss per rendere esecutiva la modifica.

(404)NotFound

(404)NotFound -> La pagina non è stata trovata

I motivi possono essere:
1) Axis non è installato
2) La prima porta specificata nel JNLP di lancio non combacia con la porta in cui è in ascolto Tomcat:

Soluzione punto 2: Verifcare nel JNLP che la porta in grassetto sia quella in cui Tomcat è in ascolto:

 <application-desc main-class="it.saga.pubblici.menu.MnuCFGMain">
   <argument>jboss:sicrawebapplocalserver:50080:50002</argument>
   <argument>nomeDatabase</argument>
   <argument>nomeDatabase</argument>
 </application-desc>

Nel caso, correggerla

namingException o null locale looking for (namingException)

Nel logon descriptor è stato specificato un utente J2EE errato.

Password Incorrect/Password Required

Nel logon descriptor è stato specificato un utente sicraweb errato oppure la password è errata.

Qual è la porta in cui è in ascolto Tomcat?

Aprire il file $JBOSS_HOME \server\default\deploy\jbossweb-tomcat50.sar\server.xml

 <Connector port="8080" address="${jboss.bind.address}"
        maxThreads="200" minSpareThreads="25" maxSpareThreads="45"
        enableLookups="false" redirectPort="8443" acceptCount="40"
        connectionTimeout="2000" disableUploadTimeout="true"/>


oppure si può cercare nel log di JBoss la seguente riga:

Starting Coyote HTTP
 10:39:30,601 INFO  [Tomcat5] Saw org.jboss.system.server.started notification, starting connectors
 10:39:30,618 INFO  [Http11Protocol] Starting Coyote HTTP/1.1 on http-0.0.0.0-8080



Axis è configurato?

Per verificare se Axis è configurato prire il file:

%JBOSS_HOME%\server\default\deploy\sicraweb.ear\sicraweb.war\WEB-INF\web.xml

Dovrebbe esserci una sezione in cui è dichiarato il servlet di AXIS: AxisServlet

 <servlet>
   <servlet-name>AxisServlet</servlet-name>
   <display-name>Apache-Axis Servlet</display-name>
   <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
 </servlet>

Per verificare se il servlet che gestisce i web service è funzionante collegarsi all’indirizzo:

http://hostname:port/client/services

dove port=porta di tomcat Ad esempio: http://sicrawebappserver:50080/client/services