Liferay 7 GA4: Quali sono le novità su Apache CXF?

Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style
Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style

L’ultimo rilascio di Liferay Portal 7 CE GA4 del 28 giugno 2017 è stato molto significativo riguardo il framework Apache CXF che Liferay ha adottato per lo stack JAX-WS/JAX-RS. La modifica più rilevante è l’aggiornamento dalla versione 3.0.3 alla 3.1.9 (di dicembre 2016). I moduli OSGi interessati alla modifica fanno parte del gruppo apps:foundation:portal-remote:

Chi di voi abbia letto l’articolo Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style, ricorderà che era basato sulla GA2 di Liferay e sui bundle Apache CXF 3.1.6 necessari per lo sviluppo del client SOAP.

Sulla GA4 di Liferay, lo sviluppo di un client SOAP non richiede più l’installazione di tutti i bundle Apache CXF indicati su Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style ma è più che sufficiente l’installazione dei seguenti bundle:

I primi tre bundle della lista sono utilizzati dal modulo portal-remote-soap-extender ma non sono esportati, è necessario quindi eseguire l’installazione affinché il client SOAP funzioni correttamente. L’ultimo bundle della lista è richiesto da Apache CXF Runtime Simple Frontend, quello esportato da Liferay è la versione 2.1.0 non compatibile (e tal proposito ieri ho fatto una pull-request sul repository di Liferay). In Figura 1 sono mostrati i bundle Apache CXF e il client SOAP di esempio installati sull’istanza Liferay 7 CE GA4.

Liferay 7 CE GA4 Apache CXF & SOAP Client OSGi Bundle

Figura 1 – Liferay 7 CE GA4 Apache CXF & SOAP Client OSGi Bundle

Qualora la vostra installazione Liferay risieda su JBoss EAP o Wildfly, consiglio di procedere con la disattivazione del modulo org.jboss.as.webservices onde evitare comuni errori (come quelli a seguire), causati da versioni diverse del framework Apache CXF caricate dal Class Loader.

  • java.lang.ClassCastException: Cannot cast org.apache.cxf.wsdl11.WSDLManagerImpl to org.apache.cxf.wsdl.WSDLManager
  • java.lang.IllegalAccessError: tried to access class org.apache.cxf.BusFactory$BusHolder from class org.apache.cxf.BusFactory

Il servizio SOAP che ho in più occasioni utilizzato come esempio, (anche nell’articolo Liferay 7: Come realizzare un client SOAP con Apache CXF in OSGi Style) non è più disponibile, approfitterò quindi per pubblicare a breve un esempio di client SOAP con lo scopo d’integrare Liferay con il sistema di CRM Salesforce.

Per approfondimenti sul supporto JAX-WS e JAX-RS potreste seguire il mio intervento all’ultimo Symposium LIferay Italy 2016 (video + slide).

1 Condivisioni

Antonio Musarra

I began my journey into the world of computing from an Olivetti M24 PC (http://it.wikipedia.org/wiki/Olivetti_M24) bought by my father for his work. Day after day, quickly taking control until … Now doing business consulting for projects in the enterprise application development using web-oriented technologies such as J2EE, Web Services, ESB, TIBCO, PHP.

Potrebbero interessarti anche...

Cos'è il progetto CIE/CNS Apache Docker - Developers Italia

In questo video https://youtu.be/TcAzn1POhsM introdurrò il progetto CIE/CNS Apache Docker di Developers Italia (https://developers.italia.it/it/cie/#resourcecontent-3) nato circa due anni fa.

L'obiettivo di questo progetto è quello di fornire un template pronto all'uso che realizza un sistema di autenticazione tramite la Smart Card TS-CNS (o CNS) e la CIE (Carta d'Identità Elettronica) basato su Apache HTTP. Ognuno può poi modificare o specializzare questo progetto sulla base delle proprie esigenze Si tratta di un progetto docker per la creazione di un container che implementa un sistema di mutua autenticazione o autenticazione bilaterale SSL/TLS.

Questo meccanismo di autenticazione richiede anche il certificato digitale da parte del client, certificato che in questo caso risiede all'interno della TS-CNS o della CIE. La particolarità del sistema implementato (attraverso questo container) è quella di consentire l'autenticazione tramite:

  • La TS-CNS (Tessera Sanitaria - Carta Nazionale Servizi), rilasciata dalla regione di appartenenza;
  • La CIE (Carta d'Identità Elettronica), rilasciata dal comune di residenza.

Nella versione 2.0.0 il progetto è stato aggiornato per essere uniforme alle linee guida di Bootstrap Italia. A seguire alcune risorse che possono essere utili.

  • Cos’è il progetto CIE/CNS Apache Docker (http://bit.ly/3aJ5Gbl)
  • CIE Carta d'Identità Elettronica (https://developers.italia.it/it/cie/)
  • Carta Nazionale dei Servizi (https://www.agid.gov.it/it/piattaforme/carta-nazionale-servizi)
  • Raspberry Pi – Un esempio di applicazione della TS-CNS (https://bit.ly/3hkJ8Aj)
  • Pubblicare il servizio CIE/CNS Apache Docker su Azure Cloud (http://bit.ly/3aPoq8V)
  • Come accedere al portale VETINFO tramite TS-CNS e Mac OS (http://bit.ly/2VFMKq7)