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).

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...