I have CXF/SOAP services deployed within OSGi enRoute, and can successfully
connect via SoapUI. Next is to build a simple OSGi gogo command to invoke these
services, then migrate this to Liferay for end-to-end demo.
To this end, am using the following for guidance (but disregarding Liferay
components until the shell command works):
http://www.dontesta.it/blog/blog-2/liferay-7-come-realizzare-un-client-soap-apache-cxf-osgi-style/
The instructions given above state I would need the following runtime bundles
with my OSGi Command Line Tools bundle:
• Apache XmlSchema Core (v. 2.2.1)
• Apache CXF Core
• Apache CXF Runtime JAXB DataBinding
• Apache CXF Runtime XML Binding
• Apache CXF Runtime SOAP Binding
• Apache CXF Runtime Core for WSDL
• Apache CXF Runtime Simple Frontend
• Apache CXF Runtime JAX-WS Frontend
• Apache CXF Runtime HTTP Transport
It seems quite straightforward, but am getting the following exception when
running the OSGi gogo command:
interface com.sun.xml.internal.ws.developer.WSBindingProvider is not
visible from class loader
My gogo command code appears as follows:
@Component(service = InvolvedPartyFetchCommand.class, property = {
Debug.COMMAND_SCOPE + "=party", Debug.COMMAND_FUNCTION + "=fetch" })
public class InvolvedPartyFetchCommand
{
public void fetch()
{
try {
InvolvedPartyService service = new
InvolvedPartyService(InvolvedPartyService.WSDL_LOCATION,
InvolvedPartyService.SERVICE);
InvolvedPartyPortType port =
service.getInvolvedPartySoap12Endpoint();
System.out.println("Invoking involvedPartyFetch...");
InvolvedPartyFetchRequest request = new
InvolvedPartyFetchRequest();
InvolvedPartyFetchResponse response =
port.involvedPartyFetch(request);
System.out.println("involvedPartyFetch.result=" +
response);
} catch (Throwable e) {
e.printStackTrace();
}
}
}
And my bndrun file for the OSGi command project is as follows:
#
# LAUNCH SPECIFICATION
#
Bundle-Version: 1.0.0.${tstamp}
Bundle-SymbolicName: com.rps.masterdata.party.soapClient.launch
JPM-Command: sopclnt
-runrequires: \
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
osgi.identity;filter:='(osgi.identity=org.apache.cxf.cxf-core)',\
osgi.identity;filter:='(osgi.identity=org.apache.cxf.cxf-rt-bindings-soap)',\
osgi.identity;filter:='(osgi.identity=org.apache.cxf.cxf-rt-bindings-xml)',\
osgi.identity;filter:='(osgi.identity=org.apache.cxf.cxf-rt-databinding-jaxb)',\
osgi.identity;filter:='(osgi.identity=org.apache.cxf.cxf-rt-frontend-simple)',\
osgi.identity;filter:='(osgi.identity=org.apache.cxf.cxf-rt-frontend-jaxws)',\
osgi.identity;filter:='(osgi.identity=org.apache.cxf.cxf-rt-transports-http)',\
osgi.identity;filter:='(osgi.identity=org.apache.cxf.cxf-rt-wsdl)',\
osgi.identity;filter:='(osgi.identity=org.apache.ws.xmlschema.core)',\
osgi.identity;filter:='(osgi.identity=com.rps.masterdata.party.soapClient.provider)',\
osgi.identity;filter:='(osgi.identity=com.rps.masterdata.party.soapClient.command)'
-runbundles: \
com.rps.foundation.soapClient.provider;version=snapshot,\
com.rps.masterdata.party.soapClient.command;version=snapshot,\
com.rps.masterdata.party.soapClient.provider;version=snapshot,\
org.apache.cxf.cxf-core;version='[3.1.6,3.1.7)',\
org.apache.cxf.cxf-rt-bindings-soap;version='[3.1.6,3.1.7)',\
org.apache.cxf.cxf-rt-bindings-xml;version='[3.1.6,3.1.7)',\
org.apache.cxf.cxf-rt-databinding-jaxb;version='[3.1.6,3.1.7)',\
org.apache.cxf.cxf-rt-frontend-jaxws;version='[3.1.6,3.1.7)',\
org.apache.cxf.cxf-rt-frontend-simple;version='[3.1.6,3.1.7)',\
org.apache.cxf.cxf-rt-transports-http;version='[3.1.6,3.1.7)',\
org.apache.cxf.cxf-rt-wsdl;version='[3.1.6,3.1.7)',\
org.apache.felix.configadmin;version='[1.8.6,1.8.7)',\
org.apache.felix.gogo.runtime;version='[0.16.2,0.16.3)',\
org.apache.felix.gogo.shell;version='[0.10.0,0.10.1)',\
org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\
org.apache.felix.log;version='[1.0.1,1.0.2)',\
org.apache.felix.scr;version='[2.0.0,2.0.1)',\
org.apache.servicemix.bundles.wsdl4j;version='[1.6.3,1.6.4)',\
org.apache.ws.xmlschema.core;version='[2.2.1,2.2.2)',\
org.eclipse.equinox.metatype;version='[1.4.100,1.4.101)',\
org.osgi.service.metatype;version='[1.3.0,1.3.1)'
I've seen a number of posts on this issue, but I have such a vanilla setup that
solutions provided elsewhere don't seem applicable here. Suggestions are
certainly appreciated.
Thanks, Randy
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev