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

Cosa sono gli OSGi Remote µServicesOSGi Framework come alternativa ai Microservices

In questo articolo ho voluto dimostrare come il framework OSGi con i suoi veri µServices sia in grado di favorire lo sviluppo di sistemi distribuiti leggeri, affidabili e puliti.